Zend_Pdf::load($filename)
現在、このメソッドを使用してPDFドキュメントを読み込もうとしていますが、
Error occured while 'xxx.pdf' file reading.
したがって、Zend_Pdf_Parser ::_constructにこのブロックがあることがわかります
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で何が起こっているのか手がかりを持っていますか?