2015-04-06 6 views
2

Здравствуйте, моя задача - сертифицировать pdf с цифровой подписью и выпустить его в формате pdf/a. Я пробовал использовать tcpdf, но я не мог импортировать существующие страницы. Поэтому я добавил FPDI, вид их смешивания:PDF/A exsiting pdf с 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/формат

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

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

ответ

1

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

new FPDI(); 

в

new FPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true); 
Смежные вопросы