`
shuai1234
  • 浏览: 978320 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Apache PDFbox快速开发指南

    博客分类:
  • java
 
阅读更多

Apache PDFbox快速开发指南

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

一、介绍

Apache PDFbox是一个开源的、基于Java的、支持PDF文档生成的工具库,它可以用于创建新的PDF文档,修改现有的PDF文档,还可以从PDF文档中提取所需的内容。Apache PDFBox还包含了数个命令行工具。
Apache PDFbox于前不久发布了最新的1.8.2版。

二、特征

Apache PDFBox主要有以下特征:
1)文本提取:从PDF文档中提取文本。
2)合并&分割:可以把多个PDF文档合并成单个,也可以把单个PDF分拆成多个PDF文档。
3)表单填充:可以从PDF表单中提取数据,或者是填充PDF表单。
4)PDF/A验证:验证PDF文档是否满足PDF/A ISO标准。
5)PDF打印:把PDF文档输出到打印机——利用了Java的打印API。
6)PDF转换:可以把PDF文档转换成映像文件。
7)PDF创建:可以从头创建新的PDF文档。
8)集成Lucene搜索引擎:Lucene搜索引擎与PDF索引相集成。

三、开发实战

Apache PDFbox既然是PDF工具库,那么最重要的例子就是用它创建一个PDF文档。下面我们开始这一历程。

1. 创建Java项目

在Eclipse下创建一个Java项目,项目名为PDFboxDemo。

2. 下载PDFbox包

地址:
1)pdfbox-1.8.2.jar
地址:http://archive.apache.org/dist/pdfbox/1.8.2/pdfbox-1.8.2.jar
说明:满足一般的PDF操作需求。
2)pdfbox-app-1.8.2.jar
http://archive.apache.org/dist/pdfbox/1.8.2/pdfbox-app-1.8.2.jar
说明:PDFbox的多个命令行的工具包。
3)fontbox-1.8.2.jar
地址:http://archive.apache.org/dist/pdfbox/1.8.2/fontbox-1.8.2.jar
说明:PDF使用的字库包
因此,本例使用1、3项即可。

3. 创建类文件

先创建chszs.pdf源码包,在此包内创建类文件CreatePDF.java。

[java] view plain copy
 
 print?
  1. package chszs.pdf;  
  2.   
  3. //import java.io.File;  
  4. import java.io.IOException;  
  5.   
  6. import org.apache.pdfbox.exceptions.COSVisitorException;  
  7. import org.apache.pdfbox.pdmodel.PDDocument;  
  8. import org.apache.pdfbox.pdmodel.PDPage;  
  9. import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;  
  10. import org.apache.pdfbox.pdmodel.font.PDFont;  
  11. //import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont;  
  12. import org.apache.pdfbox.pdmodel.font.PDType1Font;  
  13.   
  14. public class CreatePDF {  
  15.     public static void main(String[] args) throws IOException{  
  16.         PDDocument document = new PDDocument();  
  17.         PDPage page = new PDPage();  
  18.         document.addPage(page);  
  19.           
  20. //      PDFont font = PDTrueTypeFont.loadTTF(document, new File("SIMSUN.TTC"));  
  21.         PDFont font = PDType1Font.HELVETICA_BOLD;  
  22.           
  23.         PDPageContentStream contentStream = new PDPageContentStream(document, page);  
  24.         contentStream.beginText();  
  25.         contentStream.setFont(font, 14);  
  26.         contentStream.moveTextPositionByAmount(100700);  
  27.         contentStream.drawString("Hello World");  
  28. //      contentStream.drawString("中文");  
  29.         contentStream.endText();  
  30.           
  31.         contentStream.close();  
  32.           
  33.         try {  
  34.             document.save("E:/test.pdf");  
  35.         } catch (COSVisitorException e) {  
  36.             e.printStackTrace();  
  37.         }  
  38.         document.close();  
  39.     }  
  40. }  


执行程序,在磁盘E盘产生test.pdf文件。

总结说明:至Apache PDFbox 1.8.2版,仍然不支持中文PDF的创建,比iText的功能要弱很多。

分享到:
评论

相关推荐

    无涯教程(LearnFk)-PDFbox教程离线版.pdf

    Java作为开发语言,在处理PDF文件上有着广泛的应用,PDFBox为Java程序提供了一套完整的API,使得开发人员可以不必依赖于其他语言或工具。 PDFBox的主要功能包括但不限于提取文本、分割和合并PDF文档、填充表格、...

    pdfbox-1.8.9.zip

    PDFBox是中国Apache软件基金会开发的一款开源Java库,用于处理PDF文档。这个压缩包"pdfbox-1.8.9.zip"包含的是PDFBox 1.8.9版本的源代码和相关示例,帮助开发者更好地理解和使用这个库来创建、编辑、读取和操作PDF...

    PDFBox PDF处理类库 v2.0.25.zip

    PDFBox是Apache软件基金会开发的一个开源Java库,用于处理PDF(Portable Document Format)文档。这个类库提供了丰富的功能,使得开发者能够创建、编辑、读取和处理PDF文档。PDFBox v2.0.25是该库的一个稳定版本,...

    PDFBox PDF处理类库 v1.8.16.zip

    PDFBox是Apache软件基金会开发的一个开源Java库,用于处理PDF(Portable Document Format)文档。它提供了丰富的API,使得开发者能够创建、编辑、读取、签署以及处理PDF文档。在这个"PDFBox PDF处理类库 v1.8.16.zip...

    itext5.5.12和pdfbox源码及文档和解析工具

    PDFBox是Apache软件基金会的一个项目,专注于PDF文档的生成、解析和修改。它的最新版本2.0.12包含了许多改进和新特性。PDFBox的源代码同样开放,对于想要深入研究PDF处理机制的开发者来说是一份宝贵的资源。PDFBox...

    PDFBox源码和帮助文档

    同时,帮助文档会提供详细的API使用指南和示例,帮助你快速上手。 此外,对于初学者,理解PDF格式本身也是很重要的。PDF是一种复杂的结构化文件格式,包含了文本、图像、样式、链接等多种元素,而PDFBox正是通过...

    读取PDF帮助文档

    本文将详细介绍如何利用Apache PDFBox库来实现这一功能,并提供一些实用的操作指南。 #### Apache PDFBox简介 Apache PDFBox是一个开源的Java库,它为开发者提供了丰富的API来处理PDF文件。这些API支持多种操作,...

    pdfbox-2.1.15.jar全家桶,commons-logging.jar为依赖包

    PDFBox是Apache软件基金会的一个开源项目,用于处理PDF文档的Java库。这个“pdfbox-2.1.15.jar全家桶”包含了处理PDF文档所需的一系列类和方法,允许开发者进行创建、编辑、读取、提取文本和图像,以及签署PDF文件等...

    PDFBox PDF处理类库 v2.0.22-源码.zip

    PDFBox是Apache软件基金会开发的一个开源Java库,用于处理PDF(Portable Document Format)文档。PDFBox v2.0.22是该库的一个版本,它提供了丰富的API,可以帮助开发者读取、创建、编辑和操作PDF文件。源码的提供...

    JAVA生成pdf文件

    在Java中,我们可以借助一些开源库来实现PDF的生成,例如iText、Apache PDFBox和Flying Saucer等。 1. **iText库**: iText是一个流行的Java库,专门用于生成和操作PDF文档。使用iText,你可以创建新的PDF文档,也...

    PDF书籍拆分

    例如,Apache PDFBox是一个开源的Java库,提供了丰富的API来操作PDF文档,包括读取、写入、创建以及修改PDF。我们可以使用PDFBox来实现PDF书籍的拆分功能。下面是一个简化的步骤概述: 1. **导入必要的库**:首先,...

    Java_PDF工具包.zip

    Apache PDFBox是Apache软件基金会的一个项目,提供了读取、创建、编辑PDF文档的功能;PDFreactor则是一个功能强大的商业库,常用于生成高质量的PDF文档。 使用这些库,开发者可以实现以下功能: 1. **创建PDF**:...

    android pdf 阅读器开发, pdf demo, pdf第三方控件

    一个常用的第三方库是Apache PDFBox,它提供了处理PDF文档的各种功能,包括阅读和显示。但是,PDFBox不是专门为Android设计的,因此在Android上使用时可能需要进行一些优化。 另一种选择是使用专门针对Android的PDF...

    Java生成pdf的demo.zip

    Java生成PDF是软件开发中的一个常见任务,尤其在企业级应用中,如报表生成、合同制作等场景。这个"Java生成pdf的demo.zip"文件很可能包含了一个示例项目,用于演示如何在Java环境下创建PDF文档。这个项目的名字是...

    解析器:将PDF,文档和图像转换为丰富的结构化数据

    它为分析,数据科学家和开发人员提供了干净的结构化和标签丰富的信息集,这些信息集适用于即用型应用程序,包括数据输入和文档分析器自动化,归档等。 当前,Parsr可以执行:文档清理,层次结构再生(单词,行,...

    看代码学Android开发系列:AndroidPDF阅读器源代码

    例如,Apache PDFBox、PDFium或MuPDF等都是常见的选择。PDFium是谷歌开源的一个项目,它源自Chrome浏览器,性能优异且功能强大,是许多Android PDF应用的首选。 2. **PDF加载与解析**:PDF文件的加载过程涉及到二...

    Android 电子杂志(带翻页效果)源码.zip源码资源下载

    - **Apache PDFBox或Apache POI**:这两个库分别用于处理PDF文档和Microsoft Office格式,可能在将PDF或其他文档转换为电子杂志格式时发挥作用。 4. **翻页效果**:这是项目的重点特性。Android中实现翻页效果通常...

    apache-tika-1.0-src.zip

    通过研究这些源代码,你可以了解到Tika如何集成各种第三方库来处理不同的文件格式,比如使用Apache POI处理Microsoft Office文档,使用PDFBox处理PDF文件。同时,你还可以学习到如何利用Tika的事件驱动解析模型,...

    java URL转PDF文件

    这里可以使用开源库iText或者PDDocument(Apache PDFBox的一部分)。以iText为例,我们需要先将HTML转化为纯文本或XML,再使用iText生成PDF: ```java // 假设我们已经将HTML转化为String String ...

    android的pdf阅读器源码

    因此,开发者通常会引入第三方库,如PDFium或Apache PDFBox,它们提供了解析、渲染PDF文档的功能。这些库允许程序动态加载PDF文件,将其转化为位图,然后在ImageView或自定义View中显示。考虑到性能和用户体验,...

Global site tag (gtag.js) - Google Analytics