简体   繁体   中英

PDF/A exsiting pdf with TCPDF and FPDI

Hello my task is to certify pdf with digital Signature Certification and release it in pdf/a format. I tried using tcpdf, but i couldn't import existing pages. So I added fpdi, kind of mixing them:

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');

Alright, so I can put signature in alright with this, but i cant make it pdf/a. What decides pdf/a format is

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

The last "true". But I cant use this tcpdf function, or i get:

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

So im forced to use $pdf = new FPDI( ); , which can't save pdf in pdf/a format

Surely someone knows something that im missing and im running out of ideas on what to do.

-Can I import existing pdf with only tcpdf and if yes HOW? -Is there any other way to make file format pdf/a (i coudlnt find any) -Any tips whatsoever

It appears that I can extend tcpdf with fpdi. Somehow it didnt work until i changed fpdi_bridge to always extend tcpdf and changed

new FPDI(); 

to

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM