项目需要在原有的PDF文件中插入图片、文字,并将最终的PDF文件转换为图片,在网上找了很多Demo,现在开源可以解析处理PDF文件的第三方插件比较多,eg:IText、PDFBox等,现在就PDFBox解析处理PDF文件总结如下:
【PDFBox简介】
自从Adobe公司1993年第一次发布公共PDF参考以来,支持各种语言和平台的PDF工具和类库就如雨后春笋般涌现。然而,Java应用开发中Adobe技术的支持相对滞后了。这是个奇怪的现象,因为PDF文档是企业信息系统存储和交换信息的大势所趋,而Java技术特别适合这种应用。然而,Java开发人员似乎直到最近才获得成熟可用的PDF支持。
PDFBox(一个BSD许可下的源码开放项目)是一个为开发人员读取和创建PDF文档而准备的纯Java类库。它提供如下特性:
提取文本,包括Unicode字符。和Jakarta Lucene等文本搜索引擎的整合过程十分简单。加密/解密PDF文档。从PDF和XFDF格式中导入或导出表单数据。向已有PDF文档中追加内容。将一个PDF文档切分为多个文档。覆盖PDF文档。
PS:http://baike.baidu.com/link?url=TsYWHJtTPMhlf0UvKzPOk-j3f9KzF7morIa4CqoZ0s4yIDCLB3z8nLVgLHVz-AO4dE6S7ls_3_yuvXP03nLSiq
【PDFBox下载】
最常见的一种PDF文本抽取工具就是PDFBox了,访问网址http://pdfbox.apache.org/download.cgi,进入如下图所示的下载界面。读者可以在该网页下载其最新的版本。本书采用的是pdfbox-1.8.8版本。PDFBox是一个开源的Java PDF库,这个库允许你访问PDF文件的各项信息。在接下来的例子中,将演示如何使用PDFBox提供的API操作PDF文件。
【将刚下载的7个jar包引入到工程当中】
pdfbox-1.8.8-src.zip为pdfbox源代码,里面有很对的例子,在pdfbox-1.8.8\examples目录下存在
【以下为Demo正式开始】
1、创建PDF文件
1 public voidcreateHelloPDF() {2 PDDocument doc = null;3 PDPage page = null;4
5 try{6 doc = newPDDocument();7 page = newPDPage();8 doc.addPage(page);9 PDFont font =PDType1Font.HELVETICA_BOLD;10 PDPageContentStream content = newPDPageContentStream(doc, page);11 content.beginText();12 content.setFont(font, 12);13 content.moveTextPositionByAmount(100, 700);14 content.drawString("hello");15
16 content.endText();17 content.close();18 doc.save("F:\\java56班\\eclipse-SDK-4.2-win32\\pdfwithText.pdf");19 doc.close();20 } catch(Exception e) {21 System.out.println(e);22 }23 }
2、读取PDF文件:
1 public voidreadPDF() {2 PDDocument helloDocument = null;3 try{4 helloDocument = PDDocument.load(newFile(5 "F:\\java56班\\eclipse-SDK-4.2-win32\\pdfwithText.pdf"));6 PDFTextStripper textStripper = new PDFTextStripper("GBK");7 System.out.println(textStripper.getText