#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. Спасибо. теперь я получил количество страниц. но что после этого? пожалуйста, посмотрите код выше и скажите мне