Troubleshooting
Il documento non si chiude — Perdita di memoria
Document implementa AutoCloseable. Usa sempre un blocco try-with-resources:
try (Document doc = new Document("input.pdf")) {
// operations
} // doc.close() called automaticallyOutOfMemoryError con file di grandi dimensioni
Per i documenti di grandi dimensioni, abilita il buffering su disco in PdfFileEditor:
PdfFileEditor editor = new PdfFileEditor();
editor.setUseDiskBuffer(true);
editor.concatenate(inputFiles, "output.pdf");PdfFileSecurity: Password errata
decryptFile(password) restituisce false se la password fornita è errata. Controlla sempre il valore di ritorno e gestisci il caso di errore:
try (PdfFileSecurity security = new PdfFileSecurity()) {
security.setInputFile("encrypted.pdf");
security.setOutputFile("decrypted.pdf");
boolean ok = security.decryptFile("ownerPassword");
if (!ok) {
System.err.println("Decryption failed — verify the owner password.");
}
}PdfFileEditor: Argomenti nulli
PdfFileEditor.resizeContents() ignora silenziosamente gli argomenti nulli invece di lanciare un’eccezione. Se il documento di output sembra invariato dopo resizeContents(), verifica che l’argomento ContentsResizeParameters non sia nullo e che i valori percentuali sommino esattamente a 100.
AESCipher: Lunghezza Chiave Errata
AES richiede chiavi di esattamente 16, 24 o 32 byte (128, 192 o 256 bit). Passare una chiave di lunghezza errata genera un’eccezione dal provider crittografico Java sottostante.
Annotazione Non Visibile
Se un’annotazione è stata aggiunta ma non appare nel visualizzatore, controlla:
- Il rettangolo dell’annotazione è all’interno del
MediaBoxdella pagina page.getAnnotations().add(annotation)è stato chiamato dopo aver configurato tutte le proprietà- Il documento è stato salvato dopo aver aggiunto l’annotazione