1 package org.simantics.help.base.internal;
\r
4 import java.io.IOException;
\r
6 import org.apache.pdfbox.cos.COSDocument;
\r
7 import org.apache.pdfbox.io.RandomAccessFile;
\r
8 import org.apache.pdfbox.pdfparser.PDFParser;
\r
9 import org.apache.pdfbox.pdmodel.PDDocument;
\r
10 import org.apache.pdfbox.pdmodel.PDDocumentInformation;
\r
11 import org.apache.pdfbox.text.PDFTextStripper;
\r
12 import org.eclipse.help.search.ISearchDocument;
\r
15 * @author Tuukka Lehtonen
\r
17 public class PDFUtil {
\r
19 public static void stripText(File fromPdf, ISearchDocument doc) throws IOException {
\r
20 PDFParser parser = new PDFParser(new RandomAccessFile(fromPdf, "r"));
\r
23 try (COSDocument cosDoc = parser.getDocument()) {
\r
24 try (PDDocument pdDoc = new PDDocument(cosDoc)) {
\r
25 int numPages = pdDoc.getNumberOfPages();
\r
26 PDFTextStripper stripper = new PDFTextStripper();
\r
27 stripper.setStartPage(1);
\r
28 stripper.setEndPage(numPages);
\r
29 String text = stripper.getText(pdDoc);
\r
30 PDDocumentInformation docInfo = pdDoc.getDocumentInformation();
\r
31 String title = docInfo.getTitle();
\r
32 String subject = docInfo.getSubject();
\r
34 doc.setTitle(title);
\r
35 if (subject != null)
\r
36 doc.setSummary(subject);
\r
37 doc.addContents(text);
\r