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

发布于 2024-12-04 23:21:02 字数 709 浏览 0 评论 0原文

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

我在此处找到了一种解决方案,但是不知道如何以文本方式打开 pdf 文件并计算页数。

有人给我一个明确的解决方案来使用 imagemagick 计算页面数

identify -format %n testfile.pdf

通过谷歌搜索,我找到了一些解决方法或示例;

  1. imagick(identify -format %n testfile.pdf)
  2. identify -密度 12 -format "%p" testfile.pdf
  3. identify -format %n testfile.pdf< /code>

我不知道如何使用这个东西..

I am using PHP 5 with Apache in my Windows Vista PC. I have Imagemagick already installed and configured. I want to count the total number of pages in a pdf file using imagick.

I fount one solution here, but dont know how to open pdf file as text and count pages.

somebody give me a clear solution to count pages using imagemagick like

identify -format %n testfile.pdf

From googling, I found some workarounds or examples;

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

I don't know how to make use of this stuff..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱已欠费 2024-12-11 23:21:02

您应该使用正确的工具来完成这项工作,而不是使用“identify -format %n $file”(对于复杂或多页的 PDF 来说,这可能会非常慢) pdfinfo

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

速度快了几个数量级......

Instead of using "identify -format %n $file"(which can turn out to be extremely slow for complex or for mult-page PDFs) you should rather use the right tool for the job, pdfinfo:

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

which is faster by several magnitudes...

旧情勿念 2024-12-11 23:21:02

我用它解决了;

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

I solved it using;

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

黑白记忆 2024-12-11 23:21:02

提到的页面中,这里是获取页数的示例代码:

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

From the mentioned page, here is a sample code to get the page count:

<?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));
}
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文