2014-07-02 102 views
0

我想要合併2個或更多pdf,但與條件。我正在使用PDFMerger.php(http://pdfmerger.codeplex.com/)。代碼我發現的是:問題與PDFMerger.php

<?php 
    include 'PDFMerger.php'; 
    $pdf = new PDFMerger; 
    $pdf->addPDF('samplepdfs/one.pdf', '1, 3, 4') 
     ->addPDF('samplepdfs/two.pdf', '1-2') 
     ->addPDF('samplepdfs/three.pdf', 'all') 
     ->merge('download', 'samplepdfs/TEST2.pdf'); 
?> 

此代碼適用於我。但我在這裏遇到問題。我不知道我的pdf中的頁數,因爲它們是動態生成的。那麼,如果我想跳過three.pdf中的第一頁或最後一頁怎麼辦(假設有5頁)&我沒有頁數。

所以輸出應該是one.pdf的所有頁面+提前

感謝two.pdf + 2-5頁three.pdf的所有頁面。

回答

1

嘗試使用這個下面的代碼找到數頁PDF:

exec('/usr/bin/pdfinfo '.$tmpfname.' | awk \'/Pages/ {print $2}\'', $output); 

function getNumPagesInPDF($file) 
{ 
    if(!file_exists($file))return null; 
    if (!$fp = @fopen($file,"r"))return null; 
    $max=0; 
    while(!feof($fp)) { 
      $line = fgets($fp,255); 
      if (preg_match('/\/Count [0-9]+/', $line, $matches)){ 
        preg_match('/[0-9]+/',$matches[0], $matches2); 
        if ($max<$matches2[0]) $max=$matches2[0]; 
      } 
    } 
    fclose($fp); 
    return (int)$max; 

} 
+0

沒有得到任何東西。我的文件在'samplepdfs/one.pdf'中。還告訴我如何將此代碼添加到我的程序中。 –

+0

<?php 包含'PDFMerger.php'; $ pdf =新PDFMerger; $ pagecount = getNumPagesPdf('samplepdfs/one.pdf'); \t $ pdf-> AddPage();(); //錯誤在這一行 \t $ tplidx = $ pdf-> importPage($ i + 1,'/ MediaBox'); \t $ pdf-> useTemplate($ tplidx,10,10,200); } $ PDF - > addPDF( 'samplepdfs/two.pdf', '1-2') \t - > addPDF( 'samplepdfs/three.pdf', '所有') \t - >合併( '下載' ,'samplepdfs/TEST2.pdf'); –

+0

謝謝。現在我得到了頁數。但之後呢?請看上面的代碼並告訴我 –