模式匹配PDF正文中的文本并添加PHP的超链接

时间:2010-09-01 15:01:27

标签: php regex pdf pdflib alivepdf

情况如下:我有一系列大而肥的PDF文件,充满图像和随机分布的文本 - 这些是大量产品的巨大促销价格表的部分。我需要的是模式匹配每个PDF文件的文本中的所有目录代码,并用超链接包装它将指向在线商店中的相应页面。

因此任务非常简单 - 扫描所有纯文本10数字序列的PDF文件,并将其转换为href为http://something?code=[match]的链接。

如果可能的话,我也希望将它们放在一个PHP脚本中,但任何语言都可以。我有一种直觉,甚至闪光可能是一种选择。

有什么想法吗?提前谢谢。

编辑:

有些答案正在教我pcre语法。这里的问题是我需要在PDF文件中搜索和替换。所以问题是双重的。假设我们将在PHP中执行此操作:

  • 您如何使用PHP读取/写入PDF?
  • 由于PDF不是纯文本文件,我不能只对它们进行正则表达式,我也认为PDF链接不是与文本捆绑在一起,而是作为区域分开。这也意味着我可以在目录代码的字符坐标上覆盖一个活动矩形,如果我只知道匹配代码在页面上的位置。
你怎么看?其他语言也是一种选择。

感谢。

2 个答案:

答案 0 :(得分:1)

替换PDF中的文本很困难,并且没有一个开源PDF解决方案支持此功能。

Apago(www.apago.com)开发了一种用于替换PDF文件中文本的商业解决方案。它被贺卡制造商用来修改定价,“制作”文本,产品编号等。

答案 1 :(得分:0)

<?
$s="
http://something.com?code=3000 asdf text
http://something.com?code=5000 asdf
";
echo preg_replace('/(http:\/\/something\.com\?code=(\d+))/s', '<a href="$1">$2</a>',$s);
?>

输出 3000 asdf text

5000 asdf