проблемы с PDFMerger.php

#php #merge

#php #слияние

Вопрос:

Я хочу объединить 2 или более PDF-файлов, но с условием. Я использую PDFMerger.php (http://pdfmerger.codeplex.com /). Код, который я нашел, является :

 <?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-файлах, поскольку они генерируются динамически. Так что, если я хочу пропустить первую или последнюю страницу из трех.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;

}
  

Комментарии:

1. ничего не получается. мои файлы находятся в ‘samplepdfs / one.pdf’. также скажите мне, как добавить этот код в мою программу.

2. <?php include ‘PDFMerger.php’; $pdf = new PDFMerger; $pagecount = getNumPagesPdf(‘samplepdfs/one.pdf’); for($i=0; $i<$pagecount; $i ) { $pdf->Метод addpage(); // ошибка в этой строке $tplidx = $PDF-файл->importPage($i 1, а ‘/формату носителя’); $PDF-файл->useTemplate($tplidx, 10, 10, 200); } $PDF-файл->addPDF(‘samplepdfs/два.формат PDF’, ‘1-2’) ->addPDF(‘samplepdfs/три.формат PDF’, ‘все’) ->добавить(‘загрузка’, ‘samplepdfs/УСЛОВИЕ_2.формат PDF’);

3. Спасибо. теперь я получил количество страниц. но что после этого? пожалуйста, посмотрите код выше и скажите мне