filippo-toso / p7m-extractor
一个简单的类,允许从签名p7m文件中提取原始文件。
v1.1.3
2022-10-22 05:46 UTC
Requires
- php: ^7.0|^8.0|^9.0
- symfony/process: ^3.3|^4.0|^5.0|^6.0
README
一个简单的类,允许从签名p7m文件中提取原始文件。
要求
- PHP 7.0+
- Symphony Prcess 3.3 或 4.0+
要求
幕后这个包利用了 openssl。您可以通过运行此命令来验证系统上是否已安装二进制文件
which openssl
如果已安装,它将返回二进制文件的路径。
安装
您可以通过composer安装此包
composer require filippo-toso/p7m-extractor
用法
从PDF中提取文本很简单。
use FilippoToso\P7MExtractor\P7M; $success = (new P7M()) ->setSource('source.pdf.p7m') ->setDestination('destination.pdf') ->save();
或者更简单
use FilippoToso\P7MExtractor\P7M; $success = P7M::convert('source.pdf.p7m', 'destination.pdf');
默认情况下,该包将假定openssl命令位于/usr/bin/openssl
。如果它位于其他位置,请将其二进制路径传递给构造函数
use FilippoToso\P7MExtractor\P7M; $success = (new P7M('/custom/path/to/openssl')) ->setSource('source.pdf.p7m') ->setDestination('destination.pdf') ->save();
或者作为extract()
静态方法的最后一个参数
$success = P7M::convert('source.pdf.p7m', 'destination.pdf', '/custom/path/to/openssl');
如果您想将内容作为字符串获取,而不是保存到文件中,您可以使用get()
方法或extract()
静态方法。
如果您需要更改命令或向openssl添加附加参数,您可以使用setParams()
方法
use FilippoToso\P7MExtractor\P7M; $success = (new P7M('/custom/path/to/openssl')) ->setParams(['{$openssl}', 'cms', '-verify', '-noverify', '-no_attr_verify', '-binary', '-in', '{$source}', '-inform', 'DER', '-out', '{$destination}']) ->setSource('source.pdf.p7m') ->setDestination('destination.pdf') ->save();
{$openssl}, {$source}, {$destination}标记将被动态替换为openssl可执行文件、源路径和目标路径。