我已经研究了几天,终于找到了似乎有用的方法,但是我得到了错误的结果。我需要计算远程服务器上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的类型还是我需要解码还是类似的东西?
答案 0 :(得分:0)
最简单的是使用ImageMagick 这是示例代码
$image = new Imagick();
$image->pingImage('myPdfFile.pdf');
echo $image->getNumberImages();
否则,您也可以使用PDF库(例如MPDF或TCPDF for PHP)