PDF / A в формате PDF с TCPDF и FPDI

Здравствуйте, моя задача — сертифицировать PDF с цифровой подписью и выпустить его в формате pdf / a. Я пытался использовать tcpdf, но я не мог импортировать существующие страницы. Поэтому я добавил fpdi, как бы смешивая их:

require_once('./tcpdf/tcpdf.php');
require_once('./tcpdf/fpdi.php');

$pdf = new FPDI( );
//$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true);

$file = realpath("484.pdf");
$pagecount = $pdf->setSourceFile($file);
for($i = 1 ; $i <= $pagecount ; $i++){
$tpl  = $pdf->importPage($i);
$size = $pdf->getTemplateSize($tpl);
$orientation = $size['h'] > $size['w'] ? 'P':'L';
$pdf->AddPage($orientation);
$pdf->useTemplate($tpl, null, null, $size['w'], $size['h'], true);

}
$pdf->SetCreator("Creator");
$pdf->SetTitle('123Titel');
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
$certificate = 'file://123.crt';
$info = array(
'Name' => '123test',
'Location' => 'place',
'Reason' => '123',
'ContactInfo' => '123',
);
$pdf->setSignature($certificate, $certificate, '123', '', 2, $info);
$pdf->SetFont('helvetica', '', 12);
$pdf->addEmptySignatureAppearance(0, 0, 0, 0);
$pdf->Output('test.pdf', 'F');

Хорошо, так что я могу поставить подпись в порядке с этим, но я не могу сделать это pdf / a.
Что решает PDF / формат

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true);

Последнее «правда». Но я не могу использовать эту функцию tcpdf, или я получаю:

Call to undefined method TCPDF::setSourceFile() in...

Так что я вынужден использовать $pdf = new FPDI( );, который не может сохранить pdf в формате pdf / a

Конечно, кто-то знает что-то, что мне не хватает, и у меня заканчиваются идеи о том, что делать.

-Могу ли я импортировать существующий pdf только с tcpdf и если да, то КАК?
Есть ли другой способ сделать файл формата pdf / a (я могу найти любой)
-Все советы

2

Решение

Похоже, я могу расширить tcpdf с помощью fpdi. Каким-то образом это не работало, пока я не изменил fpdi_bridge, чтобы всегда расширять tcpdf, и изменил

new FPDI();

в

new FPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true);
1

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

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

По вопросам рекламы [email protected]