Подсчет страниц в PDF-файле с помощью Imagemagick - PHP - PullRequest
6 голосов
/ 18 сентября 2011

Я использую PHP 5 с Apache на моем ПК с Windows Vista . У меня Imagemagick уже установлено и настроено. Я хочу посчитать общее количество страниц в файле PDF, используя imagick.

Я нашел одно решение здесь , но не знаю, как открыть PDF-файл в виде текста и подсчитать страницы.

кто-нибудь, дайте мне четкое решение для подсчета страниц, используя imagemagick, как

identify -format %n testfile.pdf

Из поиска в Google я нашел некоторые обходные пути или примеры;

  1. imagick(identify -format %n testfile.pdf)
  2. identify -density 12 -format "%p" testfile.pdf
  3. identify -format %n testfile.pdf

Я не знаю, как использовать этот материал ..

Ответы [ 3 ]

13 голосов
/ 13 августа 2012

Вместо использования "identify -format %n $file" (что может оказаться очень медленным для сложных или многостраничных PDF-файлов) вам лучше использовать подходящий инструмент для задания , pdfinfo:

exec("pdfinfo $file | grep Pages: | awk '{print $2}'")

что на несколько величин быстрее ...

3 голосов
/ 24 сентября 2011

Я решил это с помощью;

exec("identify -format %n $file")

0 голосов
/ 18 сентября 2011

На упомянутой странице приведен пример кода для подсчета количества страниц:

<?php
public function getNumPagesInPDF(array $arguments = array())
{
@list($PDFPath) = $arguments;
$stream = @fopen($PDFPath, "r");
$PDFContent = @fread ($stream, filesize($PDFPath));
if(!$stream || !$PDFContent)
    return false;
$firstValue = 0;
$secondValue = 0;
if(preg_match("/\/N\s+([0-9]+)/", $PDFContent, $matches)) {
    $firstValue = $matches[1];
}
if(preg_match_all("/\/Count\s+([0-9]+)/s", $PDFContent, $matches))
{
    $secondValue = max($matches[1]);
}
return (($secondValue != 0) ? $secondValue : max($firstValue, $secondValue));
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...