作者microtech (microtech)
看板java
标题Re: [问题] PDFBox-读取PDF
时间Sun Jan 27 14:20:35 2008
※ 引述《neewollaH (万圣节)》之铭言:
: 可是我查到的资料都是将PDF转成文字档(.txt)
: 而不能直接放到JEditorPane里面
可以转成文字档的话,过程中应该就已经抓出 pdf 中的文字了吧 !?
再把文字丢给 JEditorPane 就 ok 了
PDFBox 也没有很熟,不过我所知道的
PDFTextStripper 就是用来处理你的需求
: 有没有哪个方法是可以直接取得文字而不用产生文件呢?
提供参考:
import org.pdfbox.cos.COSDocument;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class PDFBoxExtractTxt {
private FileInputStream fis;
public PDFBoxExtractTxt(File file) {
try {
this.fis = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public void printDocument() {
COSDocument cosDoc = null;
try {
PDFParser parser = new PDFParser(fis);
parser.parse();
cosDoc = parser.getDocument();
} catch (IOException e) {
closeCOSDocument(cosDoc);
System.out.println("Cannot parse PDF document: " +
e.getMessage());
}
// extract PDF document's textual content
String docText;
try {
PDFTextStripper stripper = new PDFTextStripper();
docText = stripper.getText(new PDDocument(cosDoc));
System.out.println("PDF Contents:\n" + docText);
} catch (IOException e) {
closeCOSDocument(cosDoc);
System.err.println("Cannot extract PDF document's textual
content: " + e.getMessage());
}
}
private void closeCOSDocument(COSDocument cosDoc) {
if (cosDoc != null) {
try {
cosDoc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
PDFBoxExtractTxt pdfBox = new PDFBoxExtractTxt(new File("XXX.pdf"));
pdfBox.printDocument();
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.142.111
※ 编辑: microtech 来自: 220.134.142.111 (01/27 14:25)