Pdf.java 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.seec.bok.back.domainobject;
  2. import com.seec.bok.back.utils.EachPagePDFTextStripper;
  3. import org.apache.pdfbox.cos.COSDocument;
  4. import org.apache.pdfbox.io.RandomAccessFile;
  5. import org.apache.pdfbox.pdfparser.PDFParser;
  6. import org.apache.pdfbox.pdmodel.PDDocument;
  7. import org.apache.pdfbox.pdmodel.PDPage;
  8. import org.apache.pdfbox.text.PDFTextStripper;
  9. import org.fit.pdfdom.PDFDomTree;
  10. import javax.xml.parsers.ParserConfigurationException;
  11. import java.io.File;
  12. import java.io.IOException;
  13. import java.io.PrintWriter;
  14. import java.io.Writer;
  15. public class Pdf {
  16. String filename;
  17. PDDocument pdf;
  18. File file;
  19. public Pdf(String filename) throws IOException {
  20. this.file =new File("pdf/"+filename);
  21. this.pdf = PDDocument.load(file);
  22. this.filename=filename;
  23. }
  24. public void toHtml() throws IOException, ParserConfigurationException {
  25. Writer output = new PrintWriter("pdf/"+filename+".html", "utf-8");
  26. new PDFDomTree().writeText(pdf, output);
  27. output.close();
  28. }
  29. public void toText() throws IOException {
  30. String parsedText;
  31. PDFParser parser = new PDFParser(new RandomAccessFile(file, "r"));
  32. parser.parse();
  33. COSDocument cosDoc = parser.getDocument();
  34. PDFTextStripper pdfStripper = new EachPagePDFTextStripper();
  35. PDDocument pdDoc = new PDDocument(cosDoc);
  36. for (PDPage page : pdDoc.getPages()){
  37. System.out.println(page.getContents().toString());
  38. }
  39. parsedText = pdfStripper.getText(pdDoc);
  40. PrintWriter pw = new PrintWriter("pdf/"+filename+".text");
  41. pw.print(parsedText);
  42. pw.close();
  43. cosDoc.close();
  44. }
  45. }