是否可以用PHP生成带有数字签名的PDF文件?最好是开源解决方案。
dxxyhpgq1#
从版本5.5.001(发布日期:2010-06-23)开始的TCPDF可以签署生成的PDF文档。它也可以放置透明的签名矩形字段在任何位图/文本,所以点击签名字段会出现签名面板-很酷的功能。这也是seta-pdf签名者,但你必须支付:-)如果TCPDF扩展了FPDI桥,它还可以解析现有的PDF版本1.7以上的文档,并使用X.509证书进行签名。它可以100%解析自己生成的PDF文档或任何其他PHP PDF工具创建的PDF文档(如FPDF,DOM PDF,mPDF等),计算PDF签名并写回相同的签名PDF文档。但是,如果要解析由其他用户创建的PDF文档(例如二进制)PDF生成器(iText,..),它可能无法解析文档。您可以尝试其他PDF解析器(我只知道Zend框架PDF解析器值得一试),但是它可能无法读取和反编译PDF文档的整个结构,因为PHP对PDF定义的实现有限(PHP是主要的文本脚本语言,不能轻松处理二进制内容,所以这是限制的根源)。所以如果你想在你的网站上生成PDF,使用相同的工具来创建PDF文档和签名-我能推荐的最好的是TCPDF。如果你还没有听说过它,可以在谷歌上查找(:-o)目前,我不认为DOM PDF可以签署PDF文档。VersyPDF是.dll/.so PHP扩展名,支持非常差,价格昂贵,文档也很差。您可能会遇到无声崩溃,没有错误信息...它也不支持256位AES证书,现在是标准的。如果你在32位机器上作为开发者运行,而在64位机器上作为生产者运行,你必须得到不同的重新编译的版本。我们用TCPDF替换了VersyPDF。性能损失几乎不明显,我们能够动态生成300 - 600 kB的PDF签名文档。这是一个遗憾,因为否则VersyPDF有一些不错的API,如果你玩它和良好的性能。这是一个人的表演,我猜从我的经验...干杯卢博斯
cwxwcias2#
VersyPDF PHP library(商用)还将签署文档也可以使用开源的iText java库和一个PHP-Java bridge来实现通信。iText可以通过自签名、veriSign插件或windows证书安全来签署文档。当我过去在Java项目中使用它时,签署文档只是应付examples,通常需要不到100行。最困难的是获得正确的证书来签署文档。
kzipqqlq3#
There's something called SetaPDF-Signer.虽然不是免费的:SSetaPDF-Signer API允许PHP开发人员在纯PHP中对PDF文档进行数字签名。
z0qdvdin4#
使用gd library工具它使用不同的cdn以使其更容易
<link href="./css/jquery.signaturepad.css" rel="stylesheet"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="./js/numeric-1.2.6.min.js"></script> <script src="./js/bezier.js"></script> <script src="./js/jquery.signaturepad.js"></script> <script type='text/javascript' src="https://github.com/niklasvh/html2canvas/releases/download/0.4.1/html2canvas.js"></script> <script src="./js/json2.min.js"></script> <link href="./css/app_style.css" rel="stylesheet">
4条答案
按热度按时间dxxyhpgq1#
从版本5.5.001(发布日期:2010-06-23)开始的TCPDF可以签署生成的PDF文档。
它也可以放置透明的签名矩形字段在任何位图/文本,所以点击签名字段会出现签名面板-很酷的功能。这也是seta-pdf签名者,但你必须支付:-)
如果TCPDF扩展了FPDI桥,它还可以解析现有的PDF版本1.7以上的文档,并使用X.509证书进行签名。它可以100%解析自己生成的PDF文档或任何其他PHP PDF工具创建的PDF文档(如FPDF,DOM PDF,mPDF等),计算PDF签名并写回相同的签名PDF文档。
但是,如果要解析由其他用户创建的PDF文档(例如二进制)PDF生成器(iText,..),它可能无法解析文档。您可以尝试其他PDF解析器(我只知道Zend框架PDF解析器值得一试),但是它可能无法读取和反编译PDF文档的整个结构,因为PHP对PDF定义的实现有限(PHP是主要的文本脚本语言,不能轻松处理二进制内容,所以这是限制的根源)。
所以如果你想在你的网站上生成PDF,使用相同的工具来创建PDF文档和签名-我能推荐的最好的是TCPDF。如果你还没有听说过它,可以在谷歌上查找(:-o)
目前,我不认为DOM PDF可以签署PDF文档。
VersyPDF是.dll/.so PHP扩展名,支持非常差,价格昂贵,文档也很差。您可能会遇到无声崩溃,没有错误信息...它也不支持256位AES证书,现在是标准的。如果你在32位机器上作为开发者运行,而在64位机器上作为生产者运行,你必须得到不同的重新编译的版本。我们用TCPDF替换了VersyPDF。性能损失几乎不明显,我们能够动态生成300 - 600 kB的PDF签名文档。这是一个遗憾,因为否则VersyPDF有一些不错的API,如果你玩它和良好的性能。这是一个人的表演,我猜从我的经验...
干杯卢博斯
cwxwcias2#
VersyPDF PHP library(商用)还将签署文档
也可以使用开源的iText java库和一个PHP-Java bridge来实现通信。
iText可以通过自签名、veriSign插件或windows证书安全来签署文档。当我过去在Java项目中使用它时,签署文档只是应付examples,通常需要不到100行。最困难的是获得正确的证书来签署文档。
kzipqqlq3#
There's something called SetaPDF-Signer.虽然不是免费的:S
SetaPDF-Signer API允许PHP开发人员在纯PHP中对PDF文档进行数字签名。
z0qdvdin4#
使用gd library工具
它使用不同的cdn以使其更容易