使用Imagemagick - PHP计算PDF文件中的页面

时间:2011-09-18 15:59:25

标签: php pdf imagemagick imagick

我在 Windows Vista PC 中使用 PHP 5 with Apache 。我已经安装并配置了Imagemagick。我想使用imagick计算pdf文件中的总页数。

我提供了一个解决方案 here ,但不知道如何将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
  4. 我不知道如何利用这些东西..

3 个答案:

答案 0 :(得分:13)

您应该使用正确的工具,{{1>而不是使用"identify -format %n $file"(对于复杂或多页PDF来说,这可能会非常慢) }}:

pdfinfo

更快几个......

答案 1 :(得分:3)

我用它解决了它;

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

答案 2 :(得分:-1)

mentioned page开始,以下是获取页数的示例代码:

<?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));
}
?>