首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Zend_Pdf编辑1.4以上版本的pdf

用Zend_Pdf编辑1.4以上版本的pdf
EN

Stack Overflow用户
提问于 2012-03-20 01:39:17
回答 1查看 2.5K关注 0票数 0

我有一个应用程序,它添加一些数据到现有的pdf文件,并保存为另一个pdf文件。对于编辑,我使用的是Zend Framework的一部分,Zend_Pdf,但是它不能用于1.4以上版本的pdf,但是我需要编辑的pdf文件有时比1.4版本更高。我找不到任何可以在这个PHP应用程序中直接解决这个问题的解决方案。那么你知道有什么解决方案可以很好的工作吗?

当我尝试编辑更高版本时,它显示此错误:

代码语言:javascript
复制
Fatal error: Uncaught exception 'Zend_Pdf_Exception' with message 'PDF file syntax error. Offset - 0x1BC36D. Wrong W dictionary entry. Only type field of stream entries has default value and could be zero length.' in E:\*****Parser.php:236
Stack trace: 
#0 E:\*****Parser.php(460): Zend_Pdf_Parser->_loadXRefTable('1819501')
#1 E:\*****Pdf.php(318): Zend_Pdf_Parser->__construct('./sources/978-8...', Object(Zend_Pdf_ElementFactory_Proxy), true)
#2 E:\*****Pdf.php(267): Zend_Pdf->__construct('./sources/978-8...', NULL, true)
#3 E:\*****pdf.php(21): Zend_Pdf::load('./sources/978-8...')
#4 E:\*****TestApp.php(54): pdf->pdfLoader()
#5 {main} thrown in E:\*****Parser.php on line 236
EN

回答 1

Stack Overflow用户

发布于 2012-10-23 17:38:33

在PDF版本1.5中,PDF文件中对象的引用已更改。只要版本1.5中的PDF文件没有以兼容的方式保存(除了使用新版本之外还使用旧版本1.4引用),不理解PDF版本1.5的应用程序就不可能分析文档的结构。

据我所知,Zend_Pdf只理解PDF up to version 1.4,目前有no intention to change that (在Zend-Framwork1中)。因此,没有机会在Zend_Pdf上实现这一点。

FPDI这样的其他库可能能够读取这些文档,但这需要完全重写代码。

而其他一些PDF库,如PDFlib,不能改变现有的PDF文件。它们可以创建新的文件,并从现有文件(最高版本1.7)中集成零件,但不能更改现有文件。

对不起,在我看来,唯一的解决办法就是避免PDF文件版本高于1.4。或者,当为PDF2重写Zend_Pdf时,它允许操作更高版本的Zend_Framework文件。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9775069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档