*Markus: PDF auslesen?

Beitrag lesen

Hallo,

Durch PDFBox fand ich eine Bibliothek, mit der man wahrscheinlich sehr gut Pdf-Dateien bearbeiten kann. Dummerweise gibt es weder hier, noch fand ich woanders eine Art Anleitung, wie man dies am besten bewerkstelligen kann. Genau genommen scheitert es ja schon am Auslesen eines Pdfs. Ich dem Forum auf der dortigen Seite will ich auch nicht unbedingt fragen, da der letzte Beitrag vor einem Monat war, also frage ich mal in die Runde, ob sich jemand mit dieser Bibliothek schon beschäftigt hat und etwas mehr darüber weiß als ich. Ich will nur wissen, wie man ein Pdf richtig einlesen kann, denn das kann ja nicht so schwer sein. Durch die zu dieser Bibliothek ergänzenden Javadoc habe ich mal folgenden Code zusammengereimt:

  
import java.io.BufferedWriter;  
import java.io.File;  
import java.io.IOException;  
import java.io.OutputStreamWriter;  
import java.io.Writer;  
  
import org.pdfbox.pdmodel.PDDocument;  
import org.pdfbox.util.PDFTextStripper;  
  
public class PDFLeser  {  
  
 private File file;  
 private PDDocument doc;  
  
 public PDFLeser(String arg) throws IOException   {  
  file = new File(arg);  
  doc = new PDDocument();  
 }  
  
 public void einlesen() throws IOException    {  
  doc = PDDocument.load(file);  
  doc.close();  
 }  
  
 public void ausgeben() throws IOException   {  
  Writer out = new BufferedWriter(new OutputStreamWriter(System.out));  
  PDFTextStripper stripper = new PDFTextStripper();  
  stripper.writeText(doc, out);  
  
 }  
  
 public static void main(String[] args) throws IOException  {  
  PDFLeser pdfleser = new PDFLeser("rechnung.pdf");  
  pdfleser.einlesen();  
  pdfleser.ausgeben();  
 }  
}  

Das Problem hierbei ist, dass das Kompilieren folgenden Fehler verursacht:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
 at org.pdfbox.pdmodel.PDDocument.openProtection(PDDocument.java:905)
 at org.pdfbox.pdmodel.PDDocument.decrypt(PDDocument.java:489)
 at org.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:204)
 at PDFLeser.ausgeben(PDFLeser.java:28)
 at PDFLeser.main(PDFLeser.java:35)

Ich denke mir, dass es doch nicht sein kann, dass eine weitere externe (Verschlüsselungs-)Bibliothek, Bouncycastle, die ich nicht installiert habe, Voraussetzung ist, nur um ein simples Pdf auszulesen?

Markus

--
http://www.apostrophitis.at
六 7東曲 人港ラ