首页 文章

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

提问于
浏览
1

我需要在第一页和最后一页之后在现有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

    似乎FPDI可以做一个不同的pdf文档,所以你可以 Build 你的第一页然后你的其他页面,并将其合并为一个具有指定顺序(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? .

相关问题