filippo-toso/p7m-extractor

一个简单的类,允许从签名p7m文件中提取原始文件。

v1.1.3 2022-10-22 05:46 UTC

This package is auto-updated.

Last update: 2024-09-22 10:02:44 UTC


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可执行文件、源路径和目标路径。