使用PDFBox解析PDF文档
2008-05-19 01:28 晓风残月 阅读(8929) 评论(5) 编辑 收藏 举报昨天认识Expresso——正则编写、测试、分析利器中提到近期一项目需要解析PDF,使用的就是流行的PDFBox组件。
PDFBox是Java实现的PDF文档协作类库,提供PDF文档的创建、处理以及文档内容提取功能,也包含了一些命令行实用工具。
主要特性包括:
下载地址:http://sourceforge.net/projects/pdfbox/
既然是Java库,要在.NET中使用,需要另一弓虽的开源组件——IKVM——转为.NET(包括Mono and the Microsoft .NET Framework)实现的JVM。
下载包中包含了多个.NET环境的DEMO,最新版本是 0.7.3。
基本上,在.NET中使用PDFBox从PDF解析文本需要下面4个组件:
IKVM.GNU.Classpath.dll
PDFBox-0.7.3.dll
FontBox-0.1.0-dev.dll
IKVM.Runtime.dll
当使用VS进行开发时,添加对前两个dll的引用,并将后两个dll置于运行目录。
只需要下面几行代码:
using org.pdfbox.pdmodel; using org.pdfbox.util; string pdfPath = @"C:\my.pdf"; PDDocument doc = PDDocument.load(pdfPath); PDFTextStripper stripper = new PDFTextStripper(); string txt = stripper.getText(doc); Console.WriteLine(txt);
可针对某些页面提取文本,代码如下
//... PDFTextStripper stripper = new PDFTextStripper(); stripper.setStartPage(2); stripper.setEndPage(10); string txt = stripper.getText(doc); //...
还可通过stripper.setStartBookmark(...) 和 stripper.setEndBookmark(...)设置书签,
更多的文本提取功能见:http://www.pdfbox.org/userguide/text_extraction.html
其他PDF解析工具还有: