1

我需要在现有 PDF 文档的第一页之后和最后一页中添加页面。我曾经用 Zend_Pdf 实现它,但发现它只能处理交叉引用表未压缩为流的 PDF(PDF 版本 1.5 中引入的功能)。

所以我正在寻找一个 PHP PDF-Library,它可以修改现有的 PDF 文档,其中包含存储在 ISO-32000-1(基于 PDF-1.7)中描述的流中的对象和外部参照表。

  • TCPDF不能修改,只能与FPDI结合使用(并且 FPDI 在免费版本中只能处理最高 1.4 的 PDF-Version)
  • Zend_PDF(如上所述)只能处理 PDF 版本最高为 1.4 的文件。也许从 github 尝试 ZF2 的 Zend_Pdf 版本是一个想法?
  • 我发现 FPDF 只能处理 PDF 版本 1.4 的文件

是否有其他 PHP PDF 库可以满足我的需求?

4

1 回答 1

0

似乎 FPDI 可以合并不同的 pdf 文档,因此您可以先构建第一页,然后再构建其他页面,然后按指定顺序将其合并为一个(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 回答