生成的PDF现在会在Adobe Reader X中导致保存对话框
我一直使用iTextSharp生成PDF文档超过一年。 不幸的是,随着Adobe Reader X的发布,我的PDF现在会产生一个“你想保存吗?” 对话框在关闭PDF文档时出现。 对于不是用iTextSharp生成的PDF不会发生这种情况。 我的用户整天都在打开和关闭PDF文档,这真的很烦人。 iTextSharp中是否有可以设置的属性来防止这种情况发生?
如果有帮助,我使用PdfReader从现有PDF文档读取数据(此原始文档不会导致“保存”对话框出现)。 然后,我使用PdfWriter创建一个新文档和AddTemplate,将原始文档的一部分复制到新文档。
问题是这条线:
Response.OutputStream.Write(MS.GetBuffer(), 0, MS.GetBuffer().Length)
GetBuffer方法返回大于实际内容的整个内部缓冲区。 坏的PDF在最后有大约10kb的垃圾内容(零字节),好的PDF只有几个垃圾字节。 使用内存流的ToArray()方法来获取PDF文件,问题将得到解决。 你也会得到更小的文件。
byte[] pdf = MS.ToArray();
Response.OutputStream.Write(pdf, 0, pdf.Length);
还要将“Content-Length”设置为pdf数组的长度。
另外添加
HttpContext.Current.Response.End();
完成PDF文件后。
链接地址: http://www.djcxy.com/p/46733.html