1

最初のページの後と最後のページとして、既存の PDF ドキュメントにページを追加する必要があります。以前は Zend_Pdf で実装していましたが、相互参照テーブルがストリームに圧縮されていない PDF (PDF バージョン 1.5 で導入された機能) しか処理できないことがわかりました。

そこで、ISO-32000-1 (PDF-1.7 に基づく) で説明されているように、オブジェクトとストリームに格納された xref テーブルを使用して既存の PDF ドキュメントを変更できる PHP PDF-Library を探しています。

  • TCPDFは変更できず、 FPDIとの組み合わせでのみ使用できます (FPDI は無料版で PDF バージョン 1.4 までしか処理できません)。
  • Zend_PDF (前述のとおり) は、PDF バージョン 1.4 までのファイルのみを処理できます。github から ZF2 の Zend_Pdf バージョンを試してみるのはいかがでしょうか?
  • FPDF は PDF バージョン 1.4 までのファイルしか扱えないことがわかった

私のニーズに合った他の PHP PDF ライブラリはありますか?

4

1 に答える 1

0

FPDI は異なる pdf ドキュメントのマージを実行できるように見えるため、最初のページを作成してから他のページを作成し、指定された順序で 1 つにマージできます ( Merge PDF files with PHP )

class concat_pdf extends FPDI {
     var $files = array();
     function setFiles($files) {
          $this->files = $files;
     }
     function concat() {
          foreach($this->files AS $file) {
               $pagecount = $this->setSourceFile($file);
               for ($i = 1; $i <= $pagecount; $i++) {
                    $tplidx = $this->ImportPage($i);
                    $s = $this->getTemplatesize($tplidx);
                    $this->AddPage('P', array($s['w'], $s['h']));
                    $this->useTemplate($tplidx);
               }
          }
     }
}

/* uses example :
$pdf =& new concat_pdf();
$pdf->setFiles(array("doc.pdf","pauta.pdf", "4bp.pdf", "5bp.pdf"));
$pdf->concat();
//$pdf->Output("newpdf.pdf", "I");//for printing on screen
$pdf->Output("newpdf.pdf", "F");//for saving it
*/

ただし、1.4 より上のバージョンでは、新しい圧縮が使用され、FPDI はパーサー バンドルでそれをサポートしますが、無料ではありません (100 ユーロ)。FPDF/FPDI または Zend_Pdf で 1.4 以上の PDF の解析をサポートする方法はありますか? それも。

于 2013-02-06T09:20:16.707 に答える