Troubleshooting

Troubleshooting

Dokument nie zamyka się — wyciek pamięci

Document implements AutoCloseable. Zawsze używaj bloku try-with-resources:

try (Document doc = new Document("input.pdf")) {
    // operations
} // doc.close() called automatically

OutOfMemoryError przy dużych plikach

Dla dużych dokumentów włącz buforowanie na dysku w PdfFileEditor:

PdfFileEditor editor = new PdfFileEditor();
editor.setUseDiskBuffer(true);
editor.concatenate(inputFiles, "output.pdf");

PdfFileSecurity: Nieprawidłowe hasło

decryptFile(password) zwraca false, jeśli podane hasło jest nieprawidłowe. Zawsze sprawdzaj wartość zwracaną i obsługuj przypadek niepowodzenia:

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: Argumenty null

PdfFileEditor.resizeContents() cicho ignoruje argumenty null zamiast rzucać wyjątek. Jeśli dokument wyjściowy wydaje się niezmieniony po resizeContents(), sprawdź, czy argument ContentsResizeParameters nie jest null oraz czy wartości procentowe sumują się dokładnie do 100.

AESCipher: Nieprawidłowa długość klucza

AES wymaga kluczy dokładnie 16, 24 lub 32 bajtów (128, 192 lub 256 bitów). Przekazanie klucza o nieprawidłowej długości powoduje wyjątek z warstwy Java dostawcy kryptograficznego.

Adnotacja niewidoczna

Jeśli adnotacja została dodana, ale nie pojawia się w przeglądarce, sprawdź:

  1. Prostokąt adnotacji znajduje się w obrębie MediaBox strony
  2. page.getAnnotations().add(annotation) zostało wywołane po skonfigurowaniu wszystkich właściwości
  3. Dokument został zapisany po dodaniu adnotacji

Zobacz także

 Polski