Цифровой знак PDF-файл с PHP и Laravel

Здравствуйте, я ищу много, прежде чем сделать этот вопрос.
Я знаю, что есть платная опция для подписи pdf setasign.com

Я пытаюсь использовать функцию PHP:

openssl_pkcs7_sign( FULL_PATH . "/pdforiginal.pdf", //ORIGIANL PDF
FULL_PATH ."signedPDF.pdf", // SIGNED PDF
"file://" . FULL_PATH . "signing_cert.pem",
array(  "file://" . FULL_PATH. "private_key.pem",""),array());

signing_cert.pem <- // Я не понимаю, что это у меня есть только private_key и public_key. Я вижу несколько примеров, когда люди используют private_key здесь.

Мой закрытый ключ не имеет пароля. Я должен использовать пустой «» или ноль?

Если кто-то может дать мне немного информации по этой теме, было бы очень полезно.

0

Решение

Я нахожу решение.
Я использую библиотеку FPDI, чтобы открыть pdf, и библиотеку tcpdf, чтобы подписать ее.
Это делает процесс действительно простым.

require_once('tcpdf_include.php');

require_once "fpdi.php";

$pdf = new FPDI('P', 'mm', 'A4'); //FPDI extends TCPDF

$pages = $pdf->setSourceFile('document.pdf');/*
NOTES:
- To create self-signed signature: openssl req -x509 -nodes -days 365000 -newkey rsa:1024 -keyout tcpdf.crt -out tcpdf.crt
- To export crt to p12: openssl pkcs12 -export -in tcpdf.crt -out tcpdf.p12
- To convert pfx certificate to pem: openssl pkcs12 -in tcpdf.pfx -out tcpdf.crt -nodes
*/

$certificate = 'file://data/cert/tcpdf.crt';

// set additional information
$info = array(
'Name' => 'TCPDF',
'Location' => 'Office',
'Reason' => 'Testing TCPDF',
'ContactInfo' => 'http://www.tcpdf.org',
);

for ($i = 1; $i <= $pages; $i++)
{
$pdf->AddPage();
$page = $pdf->importPage($i);
$pdf->useTemplate($page, 0, 0);// set document signature
$pdf->setSignature($certificate, $certificate, 'tcpdfdemo', '', 2, $info);

}
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector