PHP pdf表单解析正则表达式

时间:2015-04-27 15:20:07

标签: php regex pdf

我有两个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);

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

我的正则表达式中是否需要更改以查找(2811 0 obj <>/AP<>/V(XX2)>> endobj)之类的匹配项,其中第一个查找将是一个键,第二个查找是值?

2 个答案:

答案 0 :(得分:0)

第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的增强版和维护版。

答案 1 :(得分:0)

感谢那些研究过这个问题的人。我决定将pdfs(因为我不是作为批处理)转换为svg文件。 This online converter保留了表单字段,并进行了一些小编辑,我将其打印出来。现在,我将能够填充值并具有pdf的可视化表示。我可以尝试使用tcpdf,因为我想让它再次成为一个实际的pdf,但我假设它不会保留表单字段。