PDF / A使用TCPDF和FPDI存在pdf

时间:2015-04-06 15:52:50

标签: php pdf pdf-generation 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 / a格式

$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

当然有人知道一些我不知道的事情,而且我对如何做的事情已经不知所措了。

- 我只用tcpdf导入现有的pdf,如果是,如何? - 有没有其他方法来制作文件格式pdf / a(我可以找到任何) - 任何提示

1 个答案:

答案 0 :(得分:1)

看来我可以用fpdi扩展tcpdf。不知怎的,直到我改变fpdi_bridge以总是扩展tcpdf并改变

之后它才起作用
new FPDI(); 

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