使用PHP查找PDF中的页数

使用PHP查找PDF中的页数,php,Php,我已经研究了几天,终于发现了一些似乎有效的方法,但是我得到了错误的结果。我需要计算远程服务器上PDF文件的页数。我的代码打开了PDF,但是没有找到正确的页数,我也不知道为什么 以下是我目前的代码: $CI = &get_instance(); $CI->load->library('Awss3', null, 'S3'); $CI->load->library('Pdflib'); $data = $CI->S3->re

我已经研究了几天,终于发现了一些似乎有效的方法,但是我得到了错误的结果。我需要计算远程服务器上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');
$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;
而($lastPos=strpos($data,$needle,$lastPos))!==false){
$positions[]=$lastPos;
$lastPos=$lastPos+strlen($needle);
}
回波计数(位置);
foreach(头寸为$value){
回显$value.“
”; } $test=strpos($data,'Page');

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

最简单的是使用ImageMagick 下面是一个示例代码

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

否则,您也可以使用PDF库,如MPDF或TCPDF for PHP,最简单的是使用ImageMagick 下面是一个示例代码

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

否则,您也可以使用MPDF或TCPDF for PHP之类的PDF库

谢谢您的回复。我宁愿不下载任何其他东西,使这项工作。你知道有没有办法不用下载Imagick就能让我现有的代码正常工作?谢谢你的回复。我宁愿不下载任何其他东西,使这项工作。你知道有没有一种方法可以让我现有的代码在不下载Imagick的情况下工作吗?请把你的问题包括在内,其他人可以测试。我们不知道
get\u instance()
在做什么,不知道
load
属性是什么类型,不知道
library()
方法的参数意味着什么,不知道
S3
是什么,不知道
readFile()
返回什么。您很可能需要一个PDF库,其中包含PDF文件,可以根据PDF库的API为您提供页面数。请将您的问题包括在内,以便其他人进行测试。我们不知道
get\u instance()
在做什么,不知道
load
属性是什么类型,不知道
library()
方法的参数意味着什么,不知道
S3
是什么,不知道
readFile()
返回什么。您很可能需要一个PDF库,其中包含PDF文件,可以根据PDF库的API提供页面数。