Leistung iText vs. PdfBox

Ich versuche ein pdf (mein Lieblings-Buch-Effektiv Java, wenn seine Materie), um text -, überprüfte ich die beiden iText und Apache PdfBox. Ich sehe einen wirklich großen Unterschied in der Leistung: Mit iText dauerte es 2:521, und mit PdfBox: 6:117.
Dies, wenn mein code für PdfBOx

PDFTextStripper stripper = new PDFTextStripper();
BUFFER.append(stripper.getText(PDDocument.load(pdf)));

- Und dies ist für iText

PdfReader reader = new PdfReader(pdf);
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
  BUFFER.append(PdfTextExtractor.getTextFromPage(reader, i));
}

Meine Frage ist, was die Leistung abhängig ist, ist es eine Möglichkeit, wie PdfBox schneller? Oder ausschließlich für die Verwendung von iText? Und können Sie erklären, mehr darüber, wie Strategien auf die Leistung auswirken?

Während sicherlich eine interessante Beobachtung, wie können wir Ihnen helfen?
Ich Stimme mit Elliott-Frisch: ich sehe keine Frage in deinem post. Beachten Sie auch, dass Sie müssen sicher sein, dass Sie Sie nicht vergleichen äpfel mit Birnen: PDF-Dateien erstellt werden können, in vielen verschiedene weisen. Ich bin kein PDFBox-Experte, aber ich schrieb iText und iText hat verschiedene Strategien zum analysieren von PDF. Einige Strategien sind schnell, andere langsam. Der resultierende text kann auch anders sein. In einer meiner Aufgaben für die Regierung, schrieb ich einen benchmark mit iText und nur der Unterschied in der Geschwindigkeit zwischen den Strategien war mehr als einen Faktor 100.
Meine Frage ist, was die Leistung abhängig ist, ist es eine Möglichkeit, wie PdfBox schneller? Oder ausschließlich für die Verwendung von iText? Und können Sie erklären, mehr darüber, wie Strategien auf die Leistung auswirken? Dank
In einer einzigen Datei benchmark fand ich, dass die folgenden Schnitte Extraktion-Zeit um die Hälfte (2sec->1sek). PDFTextStripper.setSuppressDuplicateOverlappingText(false); ich bin noch nicht sicher über die Auswirkungen auf die Genauigkeit.

InformationsquelleAutor meilechh | 2014-03-12

Schreibe einen Kommentar