首页 > 解决方案 > 使用 PHP 查找 PDF 中的页数

问题描述

我已经研究了几天,终于找到了一些似乎有效的方法,但我得到了错误的结果。我需要计算远程服务器上 PDF 文件的页数。我的代码打开 PDF,但找不到正确的页数,我不知道为什么。

到目前为止,这是我的代码:

    $CI = &get_instance();
    $CI->load->library('Awss3', null, 'S3');
    $CI->load->library('Pdflib');
    $data = $CI->S3->readFile('uploads/225572/filename.pdf', false, 'bucket-name');
    $needle = 'Page';
    $positions = array();
    $lastPos = 0;
    while (($lastPos = strpos($data, $needle, $lastPos))!==false) {
        $positions[] = $lastPos;
        $lastPos = $lastPos + strlen($needle);
    }
    echo count($positions);
    foreach ($positions as $value) {
        echo $value . '<br />';
    }
    $test = strpos($data, 'Page');

如果我回显 $data,我会得到很多符号等和一些单词,但是 $test 应该是 16 时会显示为 0。它取决于 PDF 的类型还是我需要解码它还是类似的东西?

标签: php

解决方案


最简单的是使用 ImageMagick 这里是一个示例代码

 $image = new Imagick();
 $image->pingImage('myPdfFile.pdf');
 echo $image->getNumberImages();

否则你也可以使用 PDF 库,如 MPDF 或 TCPDF for PHP


推荐阅读