Im davvero in difficoltà con la documentazione per PDFBox. Per informazioni così popolari, la libreria sembra essere un po 'sottile (per me!).Protezione del PDF con PDFBox
In ogni caso il problema che mi riguarda riguarda la protezione del PDF. Al momento tutto ciò che voglio è controllare i permessi di accesso degli utenti. nello specifico voglio impedire all'utente di essere in grado di modificare il PDF.
Se ometto il codice di accesso, tutto funziona perfettamente. Sto leggendo in un PDF da una risorsa esterna. Sto quindi leggendo e popolando i campi, aggiungendo alcune immagini prima di salvare il nuovo PDF. Tutto funziona perfettamente.
Il problema nasce quando aggiungo il seguente codice per gestire l'accesso:
/* Secure the PDF so that it cannot be edited */
try {
String ownerPassword = "DSTE$gewRges43";
String userPassword = "";
AccessPermission ap = new AccessPermission();
ap.setCanModify(false);
StandardProtectionPolicy spp = new StandardProtectionPolicy(ownerPassword, userPassword, ap);
pdf.protect(spp);
} catch (BadSecurityHandlerException ex) {
Logger.getLogger(PDFManager.class.getName()).log(Level.SEVERE, null, ex);
}
Quando aggiungo questo codice, tutto il testo e le immagini sono a strisce dal pdf in uscita. I campi sono ancora presenti nel documento ma sono tutti vuoti e tutto il testo e le immagini che contengono parte del PDF originale e che sono stati aggiunti dinamicamente nel codice sono scomparsi.
AGGIORNAMENTO: Ok, come meglio posso dire che il problema deriva da un bug relativo ai campi del modulo. Ho intenzione di provare un approccio diverso senza i campi del modulo e vedere cosa dà.
Sto riscontrando lo stesso problema con i PDF casuali che restituiscono spazi vuoti. Qualche idea? – NightWolf
Non sono mai arrivato in fondo a questo problema. Alla fine ho dovuto usare una libreria diversa! – tarka
Grazie. Ho trovato una soluzione per te. – NightWolf