报出嵌套太深的错误,很郁闷啊,在家里不能上网没法找,现在找到.
修正: Zend\Pdf\ElementFactory.php文件中 267行如下所示
public function markAsModified(Zend_Pdf_Element_Object $obj) { if ($obj->getFactory() !== $this) { //!= to !== throw new Zend_Pdf_Exception('Object is not generated by this factory'); } $this->_modifiedObjects[$obj->getObjNum()] = $obj; }
将 != 改为 !==
对对象的比较,应该用严格的比较符来比
== 换成 ===
!= 换成 !==
等等...
例如:
写道 false == 0 ; // true false === 0 ; //false
参见: http://www.bigroom.co.uk/blog/php-nesting-level-too-deep-recursive-dependency
在这里说下PDF的创建,一般的工具在图片的效果上给人很不好的感觉,而ZF PDF创建很简单,效果也不错,这里就给出一个实例,和ZF 1.0的代码,以后说不定用得着,大家..
为什么选择ZF1.0 因为ZF1.8实在越来越大,很无聊的很...
<?php define("PHPVERSION",5) ; //PHP版本 -- 避免兼容性的问题 define('L',dirname(__FILE__) ) ; //将当前路径加到PHP的全局路径中去 $sep = WINDOWS ? ';' : ':'; ini_set("include_path","./ZendLib{$sep}".ini_get('include_path')); ini_set("include_path","./{$sep}".ini_get('include_path')); require('Zend.php'); Zend::dump($_REQUEST); Zend::loadClass('Zend_Pdf'); $fileName = './chomp.pdf' ; if(file_exists($fileName)){ $pdf = Zend_Pdf::load($fileName); }else { $pdf = new Zend_Pdf(); } /* $page = new Zend_Pdf_Page(Zend_Pdf_Const::PAGESIZE_LETTER); $pageHeight = $page->getHeight(); $pageWidth = $page->getWidth(); echo 'Height = '.$pageHeight.'<BR/>'; echo 'Width = '.$pageWidth.'<BR/>'; $pdf->pages[0] = ($page); */ //$page = new Zend_Pdf_Page(Zend_Pdf_Const::PAGESIZE_LETTER_LANDSCAPE); $page = new Zend_Pdf_Page('1070:842:'); $chompImage = new Zend_Pdf_Image_JPEG(L . '/ext-fck.jpg'); $pageHeight = $page->getHeight(); $pageWidth = $page->getWidth(); $imageHeight = 437; $imageWidth = 1070; $topPos = $pageHeight - 36; $leftPos = 36; $bottomPos = $topPos - $imageHeight; $rightPos = $leftPos + $imageWidth; $page->drawImage($chompImage, $leftPos, $bottomPos, $rightPos, $topPos); $pdf->pages[0] = ($page); $pdf->save($fileName); ?>
具体的代码在附件中,另外说句,这个压缩包中的上述错误已经修复... 这里给出一个图例,咱们也可以提供电子书生成的功能了,呵呵.... 感觉这个比JAVA的IText生成PDF还简单,就是还没有测试过延迟处理的问题...
另一个压缩文件来自于这里:
http://bbs.phpres.com/viewthread.php?tid=5412&extra=page=1&authorid=0&page=1
zfprj.rar (483.4 KB)下载次数: 5 大小: 349.8 KB os-php-zend5.source.zip (18.4 KB)下载次数: 4 查看图片附件