我一直使用iTextSharp生成PDF文档超过一年 . 不幸的是,随着Adobe Reader X的发布,我的PDF现在会导致“你想保存吗?”关闭PDF文档时出现的对话框 . 对于未使用iTextSharp生成的PDF,不会发生这种情况 . 对于那些整天打开和关闭PDF文档的用户来说,这真的很烦人 . 我可以设置iTextSharp中的任何属性来防止这种情况发生吗?
如果有帮助,我使用PdfReader从现有PDF文档中读取数据(此原始文档不会导致出现“保存”对话框) . 然后我使用PdfWriter创建一个新文档,并使用AddTemplate将原始文档的一部分复制到新文档 .
2 回答
问题是这一行:
GetBuffer方法返回整个内部缓冲区,该缓冲区大于实际内容 . 坏PDF在末尾有大约10kb的垃圾内容(字节为零),好的PDF只有几个垃圾字节 . 使用内存流的ToArray()方法获取PDF文件,问题将得到解决 . 您还将获得较小的文件 .
同时使用pdf数组的长度设置“Content-Length” .
还添加
完成PDF文件后 .