PDFBOX详细介绍

合集下载

pdfbox 文字解析

pdfbox 文字解析

PDFBox是一个用于处理PDF文件的Java库,它提供了一系列功能,包括文字解析、内容提取、创建和编辑PDF文件等。

要在Java中使用PDFBox进行文字解析,您可以按照以下步骤操作:1. 导入PDFBox库:首先,您需要在Java项目中导入PDFBox库。

您可以从Apache PDFBox的官方网站)下载最新版本的PDFBox JAR文件,并将其添加到您的项目中。

2. 创建一个PDF文档对象:使用PDFBox,您可以创建一个`PDDocument`对象来表示要解析的PDF文档。

您可以使用类似以下代码的方式加载PDF文件:```javaPDDocument document = PDDocument.load(new File("your-pdf-file.pdf"));```3. 获取页面对象:要解析PDF页面的文字内容,您需要获取`PDPage`对象,然后从中提取文本。

您可以使用以下代码获取页面对象:```javaPDPage page = document.getPage(pageNumber); // pageNumber是页面的页数,从0开始```4. 提取文本内容:一旦您有了页面对象,您可以使用`PDFTextStripper`类来提取文本内容。

以下是一个示例代码,用于将页面上的文本提取为字符串:```javaPDFTextStripper textStripper = new PDFTextStripper();String text = textStripper.getText(page);```5. 处理文本内容:一旦您提取了文本内容,您可以进一步处理它,例如分词、搜索关键字、提取特定信息等,具体操作取决于您的需求。

6. 关闭文档:在完成文本提取和处理后,不要忘记关闭`PDDocument`对象以释放资源:```javadocument.close();```这些步骤可以帮助您使用PDFBox进行文字解析。

pdfbox文字旋转原理

pdfbox文字旋转原理

pdfbox文字旋转原理PDFBox是一个用于处理PDF文档的Java库。

在PDF文档中,文字旋转是通过使用CTM(Current Transformation Matrix)来实现的。

CTM是一个矩阵,它可以应用于PDF文档的图形元素,包括文字。

CTM可以进行平移、旋转、缩放和倾斜等操作来改变图形元素的显示方式。

在PDFBox中,文字旋转可以通过设置文字的Matrix属性来实现。

Matrix是CTM的一部分,它定义了文字的位置、大小和旋转角度。

要旋转文字,首先需要创建一个AffineTransform对象,并使用它来设置文字的旋转角度。

然后,将该AffineTransform对象转换为一个PDMatrix对象,并将其设置为文字的Matrix属性。

以下是一个示例代码,用于将文字旋转90度:```// 创建一个AffineTransform对象,并设置旋转角度为90度AffineTransform rotation = new AffineTransform();rotation.rotate(Math.toRadians(90));// 将AffineTransform对象转换为PDMatrix对象PDMatrix matrix = new PDMatrix(rotation);// 将 matrix 设置为文字的 Matrix 属性PDPageContentStream contentStream = new PDPageContentStream(document, page);contentStream.setTextMatrix(matrix);contentStream.showText("旋转后的文字"); contentStream.endText();contentStream.close();```通过将文字的Matrix属性设置为旋转矩阵,可以使文字按照指定的角度进行旋转。

pdfbox的matrix原理

pdfbox的matrix原理

pdfbox的matrix原理PDFBox 是一个Java 库,用于从PDF 文件中读取和处理文本、图形和图像数据。

在 PDF 文件中,文本和图形对象的位置和大小信息是通过矩阵(Matrix)来表示和操作的。

PDFBox 中的矩阵是一个 3x3 的矩阵,其中包含了平移、旋转、缩放、倾斜等变换操作的参数。

具体来说,矩阵的各个元素含义如下:1. 缩放因子(Scale factors):用于在 x 和 y 方向上缩放对象的大小。

可以分别设置不同的缩放因子,实现对对象在不同方向上的不同缩放效果。

当缩放因子的值小于 1 时,表示对象的大小缩小;当缩放因子的值大于 1 时,表示对象的大小放大。

2. 旋转角度(Rotation angle):用于顺时针方向旋转对象的角度。

0 度表示不旋转,90 度表示顺时针旋转 90 度,以此类推。

3. 平移值(Translation values):用于在 x 和 y 方向上平移对象的位置。

平移值为正数时,表示向右和向上平移;平移值为负数时,表示向左和向下平移。

PDFBox 使用矩阵来实现对象在 PDF 页面上的定位和变换。

矩阵的操作可以基于当前的矩阵状态进行叠加,从而实现多次变换操作的效果。

要实现矩阵变换,可以通过创建 AffineTransform 对象并调用其方法来实现。

AffineTransform 是 Java 中用于处理 2D 图形变换的类,它提供了包括旋转、缩放、平移和倾斜等在内的多种变换操作。

在 PDFBox 中使用矩阵进行文本和图形对象的变换,通常需要先获取对象的初始矩阵状态,然后根据需要进行变换操作,并最终将变换后的矩阵状态应用到对象上。

通过理解 PDFBox 中矩阵的原理和使用方法,可以更好地理解和掌握 PDF 文件的处理和操作。

pdfbox html转pdf 注意事项 问题

pdfbox html转pdf 注意事项 问题

pdfbox html转pdf 注意事项问题PDFBox是一个用于创建和处理PDF文件的Java库。

它具有将HTML转换为PDF的功能,可以用于在Java应用程序中将HTML网页转换为PDF文件。

在使用PDFBox进行HTML转PDF时,需要注意以下几个方面。

1. HTML结构和样式:由于PDF是一种基于矢量的图形格式,它不支持HTML中的所有特性和样式。

在将HTML转换为PDF时,应注意使用PDF支持的HTML和CSS特性。

不支持的特性可能会导致转换结果不符合预期。

2. 字体和字符集:在HTML中使用的字体和字符集可能在转换为PDF时不受支持。

为了确保转换结果准确,应将字体和字符集限制在PDF支持的范围内。

如果HTML中使用了不支持的字体或字符集,可以考虑在转换前进行替换或转换。

3. 图像和链接:在HTML转换为PDF时,图像和链接的处理也需要注意。

图像应该以正确的格式和路径被引用,并且可以在转换后正确显示。

链接应该被正确转换为PDF中的超链接,并且可以跳转到目标页面。

4. 排版和布局:PDF是一个固定布局的文档格式,而HTML是一种自适应布局的网页语言。

因此,在转换HTML到PDF时,需要考虑如何保持页面的排版和布局。

可以使用CSS样式或其他方法来达到所需的排版效果。

5. CSS样式:在HTML转换为PDF时,CSS样式是一个重要的方面。

应该注意使用PDF支持的CSS属性和值,以确保转换结果的一致性和准确性。

某些CSS样式可能在PDF中不起作用或以不同的方式显示,需要进行相应的调整和处理。

6. 大规模转换:如果需要批量转换大量的HTML文件到PDF,需要注意优化转换过程以提高效率和性能。

可以考虑使用多线程或分布式处理来加速转换过程。

还应监控系统资源的使用情况,以避免资源耗尽或引起其他问题。

7. 异常处理:在使用PDFBox进行HTML转PDF时,可能会遇到各种异常情况,例如无法解析HTML、文件读写错误等。

pdfbox 解析详解

pdfbox 解析详解

PDFBox是一个开源的Java库,用于创建和处理PDF文档。

它提供了一组丰富的API,使开发人员能够读取、写入和操作PDF文件中的文本、图像和其他内容。

PDFBox解析PDF文档的过程可以分为以下几个步骤:
1.打开PDF文件:使用PDFBox的API,可以打开一个PDF文件并加载到内存
中。

2.解析PDF文档:PDFBox使用一个内部的数据结构来解析PDF文档,将每个
页面转换为一个树状结构,每个节点表示页面中的一个元素,如文本、图像等。

3.提取文本和图像:通过遍历树状结构,可以提取出PDF文档中的文本和图
像。

4.修改PDF文档:在解析过程中,如果需要对PDF文档进行修改,比如添加文
本、删除页面等,可以在树状结构中进行修改操作。

5.保存修改后的PDF文档:完成修改后,可以使用PDFBox的API将修改后的
PDF文档保存到磁盘中。

PDFBox的解析过程基于其内部的COS模型,它定义了PDF文档的基本数据结构和操作。

通过COS模型,可以方便地读取和修改PDF文档的内容。

总的来说,PDFBox是一个功能强大的Java库,可用于处理和操作PDF文档。

它提供了丰富的API和灵活的数据结构,使得开发人员能够轻松地读取、修改和创建PDF文件。

PDFBOX详细介绍【范本模板】

PDFBOX详细介绍【范本模板】

PDF和Java技术(PDFBox)2008—07—17 08:29:44|分类:java(B/S)|字号订阅原文标题:Making PDFs Portable:Integrating PDF and Java Technology原文日期:2005年3月24日原文作者:Ben Litchfield摘要自从Adobe公司1993年第一次发布公共PDF参考以来,支持各种语言和平台的PDF工具和类库就如雨后春笋般涌现。

然而,Java应用开发中Adobe技术的支持相对滞后了。

自从Adobe公司1993年第一次发布公共PDF参考以来,支持各种语言和平台的PDF工具和类库就如雨后春笋般涌现。

然而,Java应用开发中Adobe技术的支持相对滞后了。

这是个奇怪的现象,因为PDF 文档是企业信息系统存储和交换信息的大势所趋,而Java技术特别适合这种应用。

然而,Java开发人员似乎直到最近才获得成熟可用的PDF支持。

PDFBox(一个BSD许可下的源码开放项目)是一个为开发人员读取和创建PDF文档而准备的纯Java类库。

它提供如下特性:•提取文本,包括Unicode字符.•和Jakarta Lucene等文本搜索引擎的整合过程十分简单.•加密/解密PDF文档.•从PDF和XFDF格式中导入或导出表单数据。

•向已有PDF文档中追加内容。

•将一个PDF文档切分为多个文档。

•覆盖PDF文档.PDFBox APIPDFBox设计时采用面向对象的方式来描述PDF文档。

PDF文档的数据是一系列基本对象的集合:数组,布尔型,字典,数字,字符串和二进制流.PDFBox在org。

pdfbox.cos包(COS模型)中定义这些基本对象类型。

你可以使用这些对象与PDF文档进行任何交互,但你应该先对PDF文档内部结构以及高层概念作一些深入的了解。

例如,页面和字体都是带有特殊属性的字典对象;PDF参考手册提供这些特殊属性的含义和类型的说明,但这是一个枯燥的文档查阅过程。

pdfbox3 解析pdf 获取段落 概述及解释说明

pdfbox3 解析pdf 获取段落概述及解释说明1. 引言1.1 概述在当今数字时代,电子文档的使用越来越广泛。

PDF(Portable Document Format)是一种常用的电子文档格式,具有良好的跨平台性和可靠性。

然而,对于需要对PDF文件进行处理和解析的应用来说,直接从PDF中获取特定内容并进行进一步分析可能是一项相对困难的任务。

本文主要介绍了一种名为PDFBox3的工具包,它可以帮助我们解析PDF文件,并获取其中的段落内容。

PDFBox3是Apache PDFBox项目的一部分,是一个开源Java库,提供了一组API接口和相关功能,能够方便地操作和解析PDF 文件。

通过使用PDFBox3,我们可以轻松地提取出所需的段落信息,并进行各种文本分析、处理或者其他相关操作。

1.2 文章结构本文将按照如下结构来展开介绍:第二部分将对PDFBox3进行简单介绍,并阐述其在PDF解析中的原理。

第三部分将详细说明如何利用PDFBox3工具包来解析PDF文件,并获取其中的段落内容。

第四部分将给出几个实际应用场景,并通过案例分析来展示如何应用PDFBox3进行相关处理。

最后,在第五部分中将总结全文内容,并展望PDFBox3未来的发展方向。

1.3 目的本文的目的是帮助读者了解PDFBox3工具包的基本原理和使用方法,以及它在解析PDF文件中获取段落内容方面的应用。

通过学习本文,读者将能够掌握如何利用PDFBox3进行PDF解析,获取指定段落内容并进行相关处理。

此外,本文还将通过应用场景与案例分析,展示PDFBox3在学术论文摘要提取、法律文件段落识别和商业报告自动化处理等领域的实际应用价值。

2. 解析PDF获取段落:2.1 PDFBox3简介:PDFBox3是一个开源的Java库,用于处理PDF文件。

它提供了一系列的功能,包括创建、读取以及修改PDF文件的内容。

通过使用PDFBox3,我们能够解析PDF文件并获取其中的文本内容和结构。

pdfbox 根据坐标位置读取内容的方法

pdfbox 根据坐标位置读取内容的方法在使用 PDF 文档时,有时候需要根据坐标位置来读取文本内容。

PDFBox 是一个功能强大的 Java 库,可以帮助我们实现这一目标。

接下来,我们将介绍如何使用 PDFBox 根据坐标位置读取内容的方法。

1. 导入 PDFBox 库首先,我们需要导入 PDFBox 相关的库文件。

你可以在 Maven 或者Gradle 中添加 PDFBox 的依赖,也可以直接下载 PDFBox 的 JAR 文件并导入到你的项目中。

2. 加载 PDF 文档接下来,我们需要加载要读取的 PDF 文档。

可以使用 PDFBox 提供的 PDFDocument 类来加载文档。

代码示例如下:```javaPDDocument document = PDDocument.load(new File("example.pdf"));```3. 获取页面信息PDF 文档由多个页面组成,我们需要获取特定页面的信息。

可以使用 PDFBox 提供的 PDPage 类来获取页面信息。

代码示例如下:```javaPDPage page = document.getPage(0); // 获取第一页的信息```4. 读取文本内容一旦获取了页面信息,我们就可以根据坐标位置读取文本内容了。

可以使用 PDFBox 提供的 PDFTextStripper 类来实现。

代码示例如下:```javaPDFTextStripper textStripper = new PDFTextStripper();textStripper.setStartPage(0); // 设置开始读取的页面textStripper.setEndPage(0); // 设置结束读取的页面String text = textStripper.getText(document); // 获取文本内容// 这里可以根据坐标位置来提取具体区域的文本内容System.out.println(text);```5. 关闭文档最后,记得在使用完毕后关闭 PDF 文档,释放资源。

PDFbox使用教程


System.out.println("Width:"+mediaBox.get(3));
PD Model
The COS Model allows access to all aspects of a PDF document. This type of programming is tedious and error prone though because the user must know all of the names of the parameters and no helper methods are available. The PD Model was created to help alleviate this problem. Each type of object(page, font, image) has a set of defined attributes that can be available in the dictionary. A PD Model class is available for each of these so that strongly typed methods are available to access the attributes. The same code from above to get the page width can be rewritten to use PD Model classes.
PDFBox User Guide
This page will discuss the internals of PDF documents and how those internals map to PDFBox classes. Users should reference the javadoc to see what classes and methods are available. The Adobe PDF Reference can be used to determine detailed information about fields and their meanings.

pdfbox使用手册

pdfbox使用手册Apache PDFBox 是一个用于操作 PDF 文件的 Java 库。

它可以帮助开发人员读取、创建和编辑 PDF 文档。

本文将介绍如何使用 PDFBox 这个强大的工具来处理 PDF 文件。

首先,我们需要导入 PDFBox 库。

可以从 Apache PDFBox 官方网站下载最新版本的 JAR 文件,并将其添加到项目的依赖中。

然后就可以开始使用 PDFBox 提供的各种功能了。

一、读取 PDF 文件要从 PDF 文件中读取内容,首先需要创建一个 PDDocument 对象来表示这个PDF 文档。

可以使用 PDFBox 提供的 PDFOperator 对象来遍历文档的每个页面,然后获取页面的内容。

可以通过 PDDocument.getPage() 方法来获取页面对象,然后使用 PDPage.getContents() 方法来获取页面的内容。

二、创建 PDF 文件如果要创建一个新的 PDF 文件,可以使用 PDFBox 提供的 PDDocument 对象来表示这个新文档。

然后可以通过 PDDocument.addPage() 方法来添加页面,通过PDPageContentStream 对象来写入内容。

可以设置字体、大小、颜色等属性,然后使用 PDPageContentStream 的方法来写入文本、图像等内容。

三、编辑 PDF 文件PDFBox 还提供了一些编辑 PDF 文件的功能,比如合并多个 PDF 文件、拆分单个 PDF 文件、提取文本等。

可以使用 PDDocument 的方法来实现这些功能,比如 mergeDocuments() 方法来合并多个 PDF 文件,splitDocument() 方法来拆分单个 PDF 文件,getText() 方法来提取文本内容等。

四、其他功能PDFBox 还提供了一些其他功能,比如加密 PDF 文件、签名 PDF 文件、优化PDF 文件等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2008-07-17 08:29:44| 分类:java(B/S)|字号订阅原文标题:Making PDFs Portable: Integrating PDF and Java Technology原文日期:2005年3月24日原文作者:Ben Litchfield摘要自从Adobe公司1993年第一次发布公共PDF参考以来,支持各种语言和平台的PDF工具和类库就如雨后春笋般涌现。

然而,Java应用开发中Adobe技术的支持相对滞后了。

自从Adobe公司1993年第一次发布公共PDF参考以来,支持各种语言和平台的PDF工具和类库就如雨后春笋般涌现。

然而,Java应用开发中Adobe技术的支持相对滞后了。

这是个奇怪的现象,因为PDF文档是企业信息系统存储和交换信息的大势所趋,而Java技术特别适合这种应用。

然而,Java开发人员似乎直到最近才获得成熟可用的PDF支持。

PDFBox(一个BSD许可下的源码开放项目)是一个为开发人员读取和创建PDF文档而准备的纯Java 类库。

它提供如下特性:提取文本,包括Unicode字符。

和Jakarta Lucene等文本搜索引擎的整合过程十分简单。

加密/解密PDF文档。

从PDF和XFDF格式中导入或导出表单数据。

向已有PDF文档中追加内容。

将一个PDF文档切分为多个文档。

覆盖PDF文档。

PDFBox APIPDFBox设计时采用面向对象的方式来描述PDF文档。

PDF文档的数据是一系列基本对象的集合:数组,布尔型,字典,数字,字符串和二进制流。

PDFBox在包(COS模型)中定义这些基本对象类型。

你可以使用这些对象与PDF文档进行任何交互,但你应该先对PDF文档内部结构以及高层概念作一些深入的了解。

例如,页面和字体都是带有特殊属性的字典对象;PDF参考手册提供这些特殊属性的含义和类型的说明,但这是一个枯燥的文档查阅过程。

于是,包(PD模型)应运而生,它的基础是COS模型,但提供了以一种熟悉的方式访问PDF文档对象的高层API(如图1)。

对底层COS模型进行了封装的PDPage和PDFont等类就在这个包中。

注意,虽然PD模型提供了一些优秀的功能,但它依然是一个开发中的模型。

在有些实例中,你可能需要借助于COS模型才能访问PDF的特定功能性。

所有的PD模型对象都提供返回相应的COS模型对象的方法。

所以,在一般情况下,你都会使用PD模型,但PD模型鞭长莫及时你可以直接操作底层的COS 模型。

上文对PDFBox作了大体上的介绍,现在是举一些例子的时候了。

我们从如何读已存在的PDF文档开始:1.PDDocument document =2.( "./");上面的语句解析指定的PDF文件并在内存中创建其文档对象。

考虑到处理大文档时的效率问题,PDFBox只在内存中存储文档结构,图像、内嵌字体和页面内容等对象将被缓存在一个临时文件中。

注意:PDDocument对象使用完毕时需要调用其close()方法来释放创建时使用的资源。

文本提取和Lucene整合这是一个信息展现时代(an information retrieval age),不管信息存放在哪种媒体中,应用程序都应该支持检索和索引。

对信息进行组织和分类从而形成可检索的格式是很关键的。

这对于文本文档和HTML文档来说是很简单的,但PDF文档包含大量的结构和元信息,提取文档内容决不是一件简单的事情。

PDF语言和Postscript相似,二者中的对象都是作为矢量绘制在页面的某些位置。

例如:1./Helv 12 Tf2.0 Td3.(Hello World) Tj上面的指令将字体设为12号的Helvetica,移到下一行然后打印“Hello World”。

这些命令流通常是经过压缩的,文字在屏幕上的显示顺序并不一定是文件中的字符出现顺序。

因此,你有时无法直接从原始PDF文档中提取字符串。

然而,PDFBox成熟的文本提取算法使得开发人员可以提取文档内容,就像在阅读器中呈现的那样。

Lucene是Apache Jakarta项目的子项目,它是一个流行的源代码开放的搜索引擎库。

开发人员可以使用Lucene来创建索引,并基于该索引对大量的文本内容进行复杂的检索。

Lucene只支持文本内容的检索,所以开发人员需要将其他形式的数据转换为文本形式才能使用Lucene。

例如,Microsoft Word 和StarOffice文档都必须先转换为文本形式才能添加到Lucene索引中。

PDF文件也不例外,但PDFBox提供一个特殊的整合对象,这让在Lucene索引中包含PDF文档变得非常容易。

将一个基本PDF文档转换为Lucene文档只需要一条语句:1.Document doc = ( file );这条语句解析指定的PDF文档,提取其内容并创建一个Lucene文档对象。

然后你就可以将该对象添加到Lucene索引中了。

如上文所述,PDF文档中也包含作者信息和关键词等元数据,在索引PDF文档时对这些元数据进行跟踪时很重要的。

表1列出了创建Lucene文档时PDFBox将填写(populate)的字段。

这种整合使得开发人员可以轻松地使用Lucene来支持PDF文档的检索和索引。

当然,有些应用程序要求更成熟的文本提取方法。

此时可以直接使用PDFTextStripper类,或继承该类来满足这种复杂的需求。

通过继承PDFTextStripper并覆盖showCharacter()方法,你可以从许多方面对文本提取进行控制。

例如,使用x、y位置信息进行限制以提取特定文本块。

你可以有效地忽略所有的y坐标大于某个值的文本,这样文档头部内容就会被排除。

另一个例子。

常常有这种情况:从表单创建了一组PDF文档,但这些原始数据被丢失了。

也就是说,这些文档都包含一些你感兴趣的文本,而且这些文本都在相似的位置上,但填充文档的表单数据丢失了。

例如,你有一些信封,在相同的位置上都有名字和地址信息。

这时,你就可以使用PDFTextStripper的派生类来提取期望的字段,这个类就像一种截取屏幕区域的设备。

加密/解密PDF的一个流行特性是允许对文档内容进行加密、对访问进行控制,限制只能阅读未加密文档。

PDF 文档加密时采用一个主密码和一个可选的用户密码。

如果设定了用户密码,那么PDF阅读器(如Acrobat)将在显示文档之前提示输入密码。

而主密码则用于授权修改文档内容。

PDF规范允许PDF文档的创建者对用户使用Acrobat阅读器查看文档时的某些操作进行限制。

这些限制包括:打印修改内容提取内容PDF文档安全的讨论不在本文范畴之内,有兴趣的读者可以参考PDF规范的相关部分。

PDF文档的安全模型是可插拔式的(pluggable),你可以在加密文档时使用不同的安全处理器(security handler)。

对本文而言,PDFBox支持标准的安全处理器,它是大多数PDF文档所使用的。

加密文档时必须先指定一个安全处理器,然后使用一个主密码和用户密码进行加密。

在下面的代码中,文档被加密,用户不需要敲入就可以在Acrobat中打开它(没有设置用户密码),但是该文档不可被打印。

1.//load the document2.PDDocument pdf =3.( "");4.//create the encryption options5.PDStandardEncryption encryptionOptions =6.new PDStandardEncryption();7.( false);8.(9.encryptionOptions );10.//encrypt the document11.( "master", null);12.//save the encrypted document13.//to the file system14.( "");更详细的示例参见PDFBox发布版中包含的加密工具类源代码:。

许多应用程序可以生成PDF文档,但不支持控制文档的安全选项。

这时PDFBox就可以用来在发送给用户之前截获并加密PDF文档。

表单整合当应用程序的输出是一系列表单域的值时,提供将表单保存成文件的功能是很必要的。

这时PDF技术将是一个很好的选择。

开发人员可以手动编写PDF指令来绘制图形、表格和文本。

或者将数据存成XML 形式并使用XSL-FO模版来创建PDF文档。

然而,这些办法都是比较耗时,容易出错,而且灵活性也比较差。

对于简单的表单而言,一个更好的办法是创建模版,然后将给定的输入数据填入该模版,从而生成文档。

Employment Eligibility Verification是一个大多数人都熟悉的表单,它又叫做“I-9表单”,参见:graphics/formsfee/forms/files/你可以使用PDFBox发布版中的一个示例程序列出表单域名单:1.java还有一个示例程序用于向指定的域中插入文本形式的数据:1.java NAME1 Smith在Acrobat中打开这个PDF文档你就会看到"Last Name"域已被填写了。

你也可以使用以下代码来完成相同的操作:1.PDDocument pdf =2.( "");3.PDDocumentCatalog docCatalog =4.();5.PDAcroForm acroForm =6.();7.PDField field =8.( "NAME1");9.( "Smith");10.( "");下面的代码可用于提取刚才填写的表单域的值:1.PDField field =2.( "NAME1");3."First Name="() );Acrobat支持将表单数据导入或导出到一个特定的文件格式“表单数据格式”(Forms Data Format)。

这种文件有两类:FDF和XFDF。

FDF文件存放表单数据的格式与PDF相同,而XFDF则以XML 格式存放表单数据。

PDFBox在一个类中处理FDF和XFDF:FDFDocument。

下面的代码片断演示了如何从上面的I-9表单导出FDF数据:1.PDDocument pdf =2.( "");3.PDDocumentCatalog docCatalog =4.();5.PDAcroForm acroForm =6.();7.FDFDocument fdf = ();8.( "");PDFBox表单整合步骤:1.使用Acrobat或其他可视化工具创建PDF表单模版2.记下每个需要的(desirable)表单域的名称3.将模版存放在应用程序可以访问到的地方4.当PDF被请求时,使用PDFBox解析PDF模版5.填充指定的表单域6.将填充结果(PDF)返回给用户工具除了上文介绍的API之外,PDFBox还提供一系列命令行工具。

相关文档
最新文档