В настоящее время я пытаюсь загрузить PDF-документ, используя метод Zend_Pdf::load($filename)
, и получаю
Error occured while 'xxx.pdf' file reading.
Итак, я вижу в конструкции Zend_Pdf_Parser :: _ есть этот блок
while ($byteCount > 0 && !feof($pdfFile)) {
$nextBlock = fread($pdfFile, $byteCount);
if ($nextBlock === false) {
require_once 'Zend/Pdf/Exception.php';
throw new Zend_Pdf_Exception( "Error occured while '$source' file reading." );
}
$data .= $nextBlock;
$byteCount -= strlen($nextBlock);
}
if ($byteCount != 0) {
require_once 'Zend/Pdf/Exception.php';
throw new Zend_Pdf_Exception( "Error occured while '$source' file reading." );
}
После отладки я могу сказать, что strlen($nextBlock)
не возвращает правильное значение (на основе $nextBlock = fread($pdfFile, $byteCount);
). Если я использую mb_strlen($nextBlock,'8bit')
, вместо этого этот блок проходит правильно.Теперь я получаю еще одну ошибку
Pdf file syntax error. 'startxref' keyword expected
Так что теперь я заглядываю в Zend_Pdf_StringParser: readLexeme () и вижу, что снова есть проблема с однобайтовыми и многобайтовыми строковыми функциями (strlen и т.*
Так кто-нибудь знает, что происходит с Zend_Pdf, если это общая ошибка или я просто что-то упустил?