从AcroForm提取数据
Contents
[
Hide
]
从PDF文档中提取表单字段
Aspose.PDF for PHP不仅让您创建和填写表单字段,还使您能够轻松地从PDF文件中提取表单字段数据或表单字段信息。
假设我们事先不知道表单字段的名称。然后我们应该遍历PDF中的每一页,以提取关于PDF中所有AcroForms的信息以及表单字段的值。要访问表单,我们需要使用getForm方法。
// 创建License类的新实例并设置许可证文件
$licenceObject = new License();
$licenceObject->setLicense($license);
// 设置包含PDF文档的目录路径
$dataDir = getcwd() . DIRECTORY_SEPARATOR . "samples";
// 设置输入PDF文件的路径
$inputFile = $dataDir . DIRECTORY_SEPARATOR . "StudentInfoFormElectronic.pdf";
// 设置响应头以指示响应将采用JSON格式
header('Content-Type: application/json; charset=utf-8');
// 初始化响应数据变量
$responseData = "";
try {
// 创建Document类的新实例并加载输入PDF文件
$document = new Document($inputFile);
// 从文档中获取表单字段并将它们转换为PHP值
$fields = java_values($document->getForm()->getFields());
// 遍历每个表单字段并提取字段名称和值
foreach ($fields as $formField) {
// 将字段名称和值连接到响应数据
$responseData = $responseData . "(字段名称: " . $formField->getPartialName() . " |";
$responseData = $responseData . " 值: " . $formField->getValue() . "),";
}
// 关闭文档
$document->close();
}
如果您知道要从中提取值的表单字段的名称,那么您可以使用Documents.Form集合中的索引器快速检索这些数据。
从PDF文件中提取数据到XML
Form类允许您使用ExportXml方法将数据从PDF文件导出到XML文件。为了将数据导出到XML,您需要创建一个Form类的对象,然后使用FileStream对象调用ExportXml方法。最后,您可以关闭FileStream对象并处理Form对象。以下代码片段显示了如何导出数据到XML文件。
// 打开文档
$form = new facades_Form();
$form->bindPdf($inputFile);
// 创建一个FileOutputStream对象来写入字体文件。
$xmlOutputStream = new java("java.io.FileOutputStream", "output.xml");
// 导出数据
$form->exportXml($xmlOutputStream);
// 关闭文件流
$xmlOutputStream->close();
// 关闭文档
$form->close();
从PDF文件导出数据到FDF
要将PDF表单数据导出到XFDF文件,我们可以使用Form类中的exportFdf方法。
请注意,这是来自 com.aspose.pdf.facades
的一个类。尽管名称相似,但这个类的用途稍有不同。
为了将数据导出到 FDF,您需要创建一个 Form
类的对象,然后使用 OutputStream
对象调用 exportXfdf
方法。以下代码片段展示了如何将数据导出到 XFDF 文件。
// 打开文档
$form = new facades_Form();
$form->bindPdf($inputFile);
// 创建一个 FileOutputStream 对象来写入字体文件。
$xmlOutputStream = new java("java.io.FileOutputStream", "output.fdf");
// 导出数据
$form->exportFdf($xmlOutputStream);
// 关闭文件流
$xmlOutputStream->close();
// 关闭文档
$form->close();
从 PDF 文件导出数据到 XFDF
要将 PDF 表单数据导出到 XFDF 文件,我们可以使用 Form 类中的 exportXfdf 方法。
为了将数据导出到XFDF,您需要创建一个Form
类的对象,然后使用OutputStream
对象调用exportXfdf
方法。
以下代码片段向您展示如何将数据导出到XFDF文件。
// 打开文档
$form = new facades_Form();
$form->bindPdf($inputFile);
// 创建一个FileOutputStream对象以写入字体文件。
$xmlOutputStream = new java("java.io.FileOutputStream", "output.xfdf");
// 导出数据
$form->exportXfdf($xmlOutputStream);
// 关闭文件流
$xmlOutputStream->close();
// 关闭文档
$form->close();