Java in der Nähe von PDF-Fehler
Habe ich diese java-code:
try {
PDFTextStripper pdfs = new PDFTextStripper();
String textOfPDF = pdfs.getText(PDDocument.load("doc"));
doc.add(new Field(campo.getDestino(),
textOfPDF,
Field.Store.NO,
Field.Index.ANALYZED));
} catch (Exception exep) {
System.out.println(exep);
System.out.println("PDF fail");
}
Und wirft diese:
11:45:07,017 WARN [COSDocument] Warning: You did not close a PDF Document
Und ich weiß nicht warum, aber das werfen mit 1, 2, 3, oder mehr.
Ich finde, dass COSDocument ist eine Klasse und haben close () - Methode, aber ich glaube nicht, verwenden Sie diese Klasse nirgends.
Habe ich diese importiert:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.util.PDFTextStripper;
Dank 🙂
- Wenn es nicht gelöst ist, dann markiere die Antwort als akzeptiert.
- Die Ressource Typ
PDDocument
nicht implementiertjava.lang.AutoCloseable
so können wir nicht gehen, versuchen Sie, mit der Ressource für aktuelle Szenario. - Vielleicht hast du eine alte version von PDFBox. In am Arbeitsplatz 2.0.13 es ist Verschließbar erstreckt AutoCloseable. Btw das ist nicht die Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sie laden, eine
PDDocument
aber nicht schließen. Ich vermute, dass Sie tun müssen:Nur hatte dieses Problem auch. Mit Java 7, können Sie dies tun:
Weil
PDDocument implements Closeable
, dietry
block wird automatisch durch den Aufruf desclose()
- Methode am Ende.Diese Warnung wird ausgegeben, wenn das pdf-Dokument ist fertig gestellt und wurde noch nicht geschlossen.
Hier ist die
finalize
Methode von COSDocument:Um loszuwerden, diese Warnung, sollte man ausdrücklich nennen
close
auf dem Dokument, wenn Sie fertig sind.PDDocument.load
Methode erstellt einePDDocument
hat eine zugrunde liegendeCOSDocument
. Sie sind also implizit durch eineCOSDocument
die geschlossen werden muss. Wenn Sie in der Nähe derPDDocument
, die zugrunde liegendenCOSDocument
ist auch geschlossen.