ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
3432
3432
EMPFEHLEN
-
Hallo!
Ich habe ein kleines Problem, ich benutze folgenden Code, um ein PDF einzulesen und dieses seitenweise nach dem Tag <Seitenumbruch> zu durchsuchen.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.List; import org.pdfbox.pdfparser.PDFParser; import org.pdfbox.pdmodel.PDPage; import org.pdfbox.pdmodel.PDDocument; import org.pdfbox.util.PDFTextStripper; import org.pdfbox.util.Splitter; import org.pdfbox.pdfwriter.COSWriter; import java.io.InputStream; import java.io.FileOutputStream; import org.pdfbox.exceptions.InvalidPasswordException; import org.pdfbox.exceptions.COSVisitorException; public class test { public static void main(String args[]) { List documents = null; Splitter splitter = new Splitter(); PDFParser parser; try { PDFTextStripper stripper = new PDFTextStripper(); parser = new PDFParser(new FileInputStream(new File( "c:/Test.pdf" ))); parser.parse(); PDDocument doc = parser.getPDDocument(); System.out.println("Gesamtanzahl an Seiten: "+doc.getNumberOfPages()); splitter.setSplitAtPage(1); documents = splitter.split(doc); System.out.println("Aufgeteilt in "+documents.size()+" Teile."); for (int i = 0; i < documents.size(); i++) { PDDocument doc2 = (PDDocument) documents.get(i); String textContent = stripper.getText(doc2); if(textContent.indexOf("<Seitenumbruch>")!=-1) { System.out.println("Ein Zeilenumbruch befindet sich auf Seite "+(i+1)); } } } catch (FileNotFoundException e){ System.out.println("File not found!"); } catch (IOException e) { System.out.println("Error!"); } } }
Das funktioniert soweit bestens, nur wenn das Dokument zu groß (mehr als 13 Seiten) ist, bricht es ab.
Als Fehler bekomme ich folgendes angezeigt:
Hat jemand eine Idee woran das liegen könnte? Stöß die "List" an die Grenze (Größe)?Gesamtanzahl an Seiten: 28
Aufgeteilt in 28 Teile.
Ein Zeilenumbruch befindet sich auf Seite 4
Ein Zeilenumbruch befindet sich auf Seite 8
Ein Zeilenumbruch befindet sich auf Seite 13
Exception in thread "main" java.lang.NoClassDefFoundError: org/fontbox/afm/FontMetric
at org.pdfbox.pdmodel.font.PDFont.getAFM(PDFont.java:334)
at org.pdfbox.pdmodel.font.PDSimpleFont.getFontHeight(PDSimpleFont.java:104)
at org.pdfbox.util.PDFStreamEngine.showString(PDFStreamEngine.java:336)
at org.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:80)
at org.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:452)
at org.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:215)
at org.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:174)
at org.pdfbox.util.PDFTextStripper.processPage(PDFTextStripper.java:336)
at org.pdfbox.util.PDFTextStripper.processPages(PDFTextStripper.java:259)
at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:216)
at org.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:149)
at de.datax.ag.pdf.splitter.test.main(test.java:51)
Caused by: java.lang.ClassNotFoundException: org.fontbox.afm.FontMetric
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 12 more
Vielen Dank schonmal.
Viele Grüße
karl_h
-
Hallo,
laut Errorlog fehlt anscheinend eine Library.
Im PDFBox -Ordner ../external liegt eine "FontBox..jar", die muss mit in den BuildPath.
Dann sollte es funktionieren.
Grüße,
Peter
-
12.01.09 13:36 #3
Also diese Exception bedeutet, dass er die Klasse "org.fontbox.afm.FontMetric" nicht im Klassenpfad finden konnte.
Hat PDFBox irgendwelche abhängigkeiten zu anderen Libraries od. hast du nicht alle JARs im Klassenpfad?Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
-
Hallo!
Vielen Dank für die flotte Hilfe. Inzwischen haben ich die Libs für fontbox hinzugefügt. Ich bin jedoch etwas irritiert, dass es ohne fontbox-Lib mit wenigen Seiten klappt, hat aber mit vielen nicht?
Grüße
karl_h
-
12.01.09 13:57 #5
Keine Ahnung wozu die Fontbox genau verwendet wird, ich könnte mir vorstellen, dass sie zur Unterstützung von speziellen Schriftarten herangezogen wird.
Je nachdem ob jetzt im PDF diese "speziellen" Schriftarten verwendet werden, wird die Library angesprochen od. nicht.Fann Ég Fjalli Fallega Steina
Faldi Dá Alla Vildi Deim Leyna
Huldi Dar Hellisskúta Heillasteina
Alla Mína Una eth slegu Óskasteina
Ähnliche Themen
-
PDF Textbearbeiten mit PDFBox
Von Travalon im Forum JavaAntworten: 2Letzter Beitrag: 01.09.09, 11:28 -
Problem mit Eclipse + PDFbox
Von Tobias Köhler im Forum JavaAntworten: 2Letzter Beitrag: 22.11.07, 07:53 -
PDFBox: Alle Inhalte aus Seite auslesen
Von Der Held im Forum JavaAntworten: 0Letzter Beitrag: 07.10.06, 13:36 -
Verzeichnis nach Ordnern und dann nach info.txt durchsuchen
Von Eiszwerg im Forum PHPAntworten: 2Letzter Beitrag: 21.09.06, 20:35 -
schlüsselwort frage
Von can im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 10.07.04, 09:20





Zitieren
Login





