2016-09-20 111 views
0

最近我已经被分配到一个需要为PDF文件的每个页面添加水印的项目。但是,虽然PDF始终相同,但PDF的水印必须定制以包含下载它的任何用户的电子邮件。如何使用PHP为PDF添加水印并且不删除动态内容?

经过一番挖掘,我找到了PHP的FPDF和FPDI库。这些库允许我轻松地为我的PDF文件添加自定义水印,但通过设计,它们会导致生成的PDF缺少动态内容。原始PDF格式非常大​​,因此需要内部链接才能轻松导航。由于使用FPDI编辑的PDF缺少动态内容,因此在PDF的水印版本中会删除这些内部链接。

经过一番搜索后,我发现现有的workaround这个问题使用FPDI库的扩展。但是,该解决方案需要一个完全过时的FPDI版本,但似乎无法在我的网站上正常运行。

所有这一切说,我的问题是这样的: 除了上述解决方案,是否有任何现有的PHP库,允许我将自定义水印添加到PDF文件,而无需删除原始PDF文件的内部链接?如果需要,我愿意为许可证支付费用,但希望解决方案的价格至少低于50美元。

+0

当然你想要的解决方案的价格是非常*最低$ 50以下?除非你只是想把钱扔掉? ':-D' – Martin

+0

我认为这个链接将帮助你很多 http://stackoverflow.com/questions/22115180/watermarking-on-pdf-files-using-php – ZearaeZ

+0

@ZearaeZ PDF水印链接在答案问题明确指出它使用FPDF和FPDI。同样,这意味着它不会用于我的目的。 – Hex37

回答

0

下面是我想出了解决方案:

编辑用php的PDF具有成本效益的方式是不可行的。如果您使用的是单一pdf,请使用在线服务将其转换为HTML文件(有很多),然后使用php编辑该文件的水印。完成后,使用Prince HTML这样的服务将该HTML文件转换为新下载的带有水印的pdf。

0

如果您使用自己的HTML模板生成PDF,那么您可以轻松添加Image Div并将其设置为不透明度0.1,从而将图像放置为水印。在github上也有一个很好的项目。你可以看一下这个https://github.com/binarystash/pdf-watermarker

+0

不幸的是,我没有使用HTML模板;我只有一个pdf文件可以使用。我真的希望我不是!这也意味着PDF-Watermaker将无法工作;它使用FPDF和FPDI从我的pdf中去除设计中的动态内容。 – Hex37