Ciao!
Con gli aiuti che mi hai dato in passato ci mancherebbe che non ti posto il codice..!
Questo metodo (utilizzo PDFBOX e non iText perchè con quest'ultimo non ci sono riuscito) rimuove TUTTE le immagini dal pdf.
La mia necessità sarebbe quella di rimuoverne solo alcune ma per ora non ci sono riuscito.
Per quanto riguarda la rimozione di alcune pagine credo che la cosa possa esser più semplice. Penserei a creare un nuovo PDDocument a cui aggiungo solo le pagine che mi interessano.
codice:
public static void strip(String pdfFile, String pdfFileOut) throws Exception {
PDDocument doc = PDDocument.load(pdfFile);
List pages = doc.getDocumentCatalog().getAllPages();
for( int i=0; i<pages.size(); i++ ) {
PDPage page = (PDPage)pages.get( i );
PDFStreamParser parser = new PDFStreamParser(page.getContents());
parser.parse();
List tokens = parser.getTokens();
List newTokens = new ArrayList();
for(int j=0; j<tokens.size(); j++) {
Object token = tokens.get( j );
if( token instanceof PDFOperator ) {
PDFOperator op = (PDFOperator)token;
if( op.getOperation().equals( "Do") ) {
newTokens.remove( newTokens.size() -1 );
continue;
}
}
newTokens.add( token );
}
PDStream newContents = new PDStream( doc );
ContentStreamWriter writer = new ContentStreamWriter( newContents.createOutputStream() );
writer.writeTokens( newTokens );
newContents.addCompression();
page.setContents( newContents );
}
doc.save(pdfFileOut);
doc.close();
}