PHP pdf form parse regex



我有两个PDF表单,我想输入使用PHP的值。 似乎没有任何开源解决方案。 唯一的解决方案似乎是SetaSign,价格超过400美元。 因此,我尝试将数据转储为字符串,使用正则表达式解析,然后保存。 这是我到目前为止所拥有的:

$pdf = file_get_contents("../forms/mypdf.pdf");
$decode = utf8_decode($pdf);
$re = "/(d+)s(?:0 obj <>/AP<>/)(.*)(?:>> endobj)/U";
preg_match_all($re, $decode, $matches);
print_r($matches);

但是,即使在这里测试,我的print_r也是空的。 右侧的匹配项首先是字段的数字标识符(我认为),然后V(XX1)"XX1"是我手动输入表单并保存的文本(作为查找数据存储方式和位置的测试)。 我假设(但尚未测试)N<>>>/AS/Off是一个复选框。

我是否需要在我的正则表达式中更改一些内容才能找到匹配项,例如(2811 0 obj <>/AP<>/V(XX2)>> endobj)第一个查找将是键,第二个查找是值?

第 1 部分 - 从 PDF 中提取文本

下载class.pdf2text.php@http://pastebin.com/dvwySU1a(2014年4月5日更新)或 http://www.phpclasses.org/browse/file/31030.html(需要注册)

用法:

include('class.pdf2text.php');
$a = new PDF2Text();
$a->setFilename('test.pdf'); 
$a->decodePDF();
echo $a->output(); 

该类不适用于我测试过的所有pdf,请尝试一下,您可能会幸运:)

第 2 部分 - 写入 PDF

要编写pdf内容,请使用tcpdf,这是fpdf的增强和维护版本。

感谢那些对此进行调查的人。 我决定将 pdf(因为我不是批量这样做)转换为 svg 文件。 这个在线转换器保留了表单字段,并通过一些小的编辑使它们可打印。 现在,我将能够填充值并直观地表示 pdf。 如果我想再次将其设置为实际的pdf,我可能会尝试tcpdf,尽管我假设它不会保留表单字段。

最新更新