哪个PDF库可以在现有PDF中添加页面> 1.4?

时间:2013-02-06 09:01:24

标签: php pdf fpdf zend-pdf pdflib

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

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

  • TCPDF无法修改,只能与FPDI结合使用(FPDI只能在免费版本中处理高达1.4的PDF版本)
  • Zend_PDF(如上所述)只能处理最高1.4的PDF版本的文件。也许从github尝试ZF2的Zend_Pdf版本是个主意吗?
  • 我发现
  • 时,FPDF只能处理PDF版本1.4的文件

我的需求还有其他PHP PDF库吗?

1 个答案:

答案 0 :(得分: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以上的版本,有一个新的conpression使用,FPDI支持它与解析器捆绑,但它不是免费的(100€)。你也可以看看Is there a way to make FPDF/FPDI or Zend_Pdf support the parsing of PDFs greater than 1.4?