Hallo liebe Java-Community,
ich habe da ein kleines Problem. Ich versuche aus einer Pdf-Datei das Inhaltsverzeichnis auszulesen.
Zunächst wird die ganze Datei in eine Txt kopiert, dann "schneide" ich das Inhaltsverz. raus und verarbeite es weiter, dabei ist die Form des Inh.verz. immer gleich. Soweit so gut.
Ich habe hier ein paar tausend Dateien vorliegen, sowohl im Pdf als auch im .doc Format. Bei einigen funktioniert die oben beschriebene Prozedur einwandfrei, bei anderen widerrum gar nicht.
Die ursprünglichen .doc Dateien wurden mit Hilfe von versch. Convertern in Pdf umgewandelt. (PDFCreator, Adobe PDf, PDFFactory usw.). Nehme ich eine ursprüngliche fehlerhafte Pdf, sieht sie aber zur 100% (optisch) genau so aus wie die .doc. Das Inhaltsverz. wird aber falsch dargestellt. (In der txt).
Jetzt kommts. Gehe ich wieder zur der .doc, wandle sie nochnal um in Pdf mit Adobe, funktioniert alles einwanndfrei, das Inhaltsverz. wird 100%ig richtig dargestellt (in der TXt).
Hat jemand eine Idee, wie es dazu kommt? Ich habe nur nicht die Möglichkeit, die Dateien ständig neu zu konvertieren, sondern muss immer die mir zur Verfügung gestellten .pdfs verwenden.
Ich verwende folgende Konvertierungsvariante:
Itext:
habe es aber auch mit:
oder mit:
versucht.
Aber auch die PDfBox:
leider alles ohne Erfolg, das Ergebnis sieht immer gleich aus.
Inhalt.verz. in der Txt
Falsch:
Inhaltsverzeichnis:
......................................................................................................................... 7 1 Allgemeines
......................................................................................................... 7 1.1 Gültigkeitsbereich
.................................................................................................. 7 1.2 Prüflingsbeschreibung
................................................................................................. 9 1.3 Technische Unterlagen
Richtig:
Inhaltsverzeichnis:
1 Allgemeines.......................................................................................................................7
1.1 Gültigkeitsbereich .......................................................................................................7
1.2 Prüflingsbeschreibung ................................................................................................7
1.3 Technische Unterlagen...............................................................................................9
Zusammengefasst: ) Die zwei .Pdf Dateien (ursprünglich und neu konvertiert) sehen optisch zu 100% identisch aus. Die Ergebnisse in der Txt sind aber verschieden, bei ursprünglich falsch, bei neu konv. richtig. Bei einigen pdfs funktionierts (Ergebnis in er Txt einwandfrei), bei anderen widerrum nicht...
Bitte helft mir Leute.
Danke im Voraus.
yerl.
ich habe da ein kleines Problem. Ich versuche aus einer Pdf-Datei das Inhaltsverzeichnis auszulesen.
Zunächst wird die ganze Datei in eine Txt kopiert, dann "schneide" ich das Inhaltsverz. raus und verarbeite es weiter, dabei ist die Form des Inh.verz. immer gleich. Soweit so gut.
Ich habe hier ein paar tausend Dateien vorliegen, sowohl im Pdf als auch im .doc Format. Bei einigen funktioniert die oben beschriebene Prozedur einwandfrei, bei anderen widerrum gar nicht.
Die ursprünglichen .doc Dateien wurden mit Hilfe von versch. Convertern in Pdf umgewandelt. (PDFCreator, Adobe PDf, PDFFactory usw.). Nehme ich eine ursprüngliche fehlerhafte Pdf, sieht sie aber zur 100% (optisch) genau so aus wie die .doc. Das Inhaltsverz. wird aber falsch dargestellt. (In der txt).
Jetzt kommts. Gehe ich wieder zur der .doc, wandle sie nochnal um in Pdf mit Adobe, funktioniert alles einwanndfrei, das Inhaltsverz. wird 100%ig richtig dargestellt (in der TXt).
Hat jemand eine Idee, wie es dazu kommt? Ich habe nur nicht die Möglichkeit, die Dateien ständig neu zu konvertieren, sondern muss immer die mir zur Verfügung gestellten .pdfs verwenden.
Ich verwende folgende Konvertierungsvariante:
Itext:
Java:
PdfReader reader = new PdfReader(quelle);
PdfReaderContentParser parser = new PdfReaderContentParser(reader);
PrintWriter out = new PrintWriter(new FileOutputStream(ziel));
TextExtractionStrategy strategy;
for (int i = 1; i <= reader.getNumberOfPages(); i++)
{
strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
out.println(strategy.getResultantText());
}
habe es aber auch mit:
Java:
PdfReader reader = new PdfReader(quelle);
PrintWriter out = new PrintWriter(new FileOutputStream(ziel));
Rectangle rect = new Rectangle(70,80,595,842);
RenderFilter filter = new RegionTextRenderFilter(rect);
TextExtractionStrategy strategy;
for (int i = 1; i <= reader.getNumberOfPages(); i++)
{
strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);
out.println(PdfTextExtractor.getTextFromPage(reader, i, strategy));
}
out.flush();
out.close();
oder mit:
Java:
for (int i = 1; i <= reader.getNumberOfPages(); i++)
{
out.write(PdfTextExtractor.getTextFromPage(reader, i));
}
out.flush();
out.close();
Aber auch die PDfBox:
Java:
PDFTextStripper stripper = new PDFTextStripper();
PDDocument pdDoc = PDDocument.load(quelle);
StringWriter writer = new StringWriter();
stripper.writeText(pdDoc, writer);
System.out.println(writer.toString());
leider alles ohne Erfolg, das Ergebnis sieht immer gleich aus.
Inhalt.verz. in der Txt
Falsch:
Inhaltsverzeichnis:
......................................................................................................................... 7 1 Allgemeines
......................................................................................................... 7 1.1 Gültigkeitsbereich
.................................................................................................. 7 1.2 Prüflingsbeschreibung
................................................................................................. 9 1.3 Technische Unterlagen
Richtig:
Inhaltsverzeichnis:
1 Allgemeines.......................................................................................................................7
1.1 Gültigkeitsbereich .......................................................................................................7
1.2 Prüflingsbeschreibung ................................................................................................7
1.3 Technische Unterlagen...............................................................................................9
Zusammengefasst: ) Die zwei .Pdf Dateien (ursprünglich und neu konvertiert) sehen optisch zu 100% identisch aus. Die Ergebnisse in der Txt sind aber verschieden, bei ursprünglich falsch, bei neu konv. richtig. Bei einigen pdfs funktionierts (Ergebnis in er Txt einwandfrei), bei anderen widerrum nicht...
Bitte helft mir Leute.
Danke im Voraus.
yerl.