IE 11 上的 PDF 渲染问题

PDF rendering issues on IE 11

全部,我正在开发一个 ASP.NET 4.6.1 网络表单应用程序,该应用程序在 browser.I 上本地呈现 pdf 文档仅在 IE 11 当某些 pdf 文档呈现时如屏幕截图所示“文件已损坏且无法修复。Local\EWH-6624-0”。同一文档在 Chrome 和 FireFox.Has 有人遇到过同样的问题吗?我在 Chrome 中下载了相同的 pdf 文件,并尝试在 A​​dobe Reader 版本 11.0.22 中打开它,它给了我 "There was an error opening this document."文件已损坏,无法打开”。请看下面的截图

asp.net 应用程序从服务获取数据并将其呈现在 UI.This 是执行此操作的 C# 代码

var data = getdataAndOtherThingsFromService();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", data.DocumentStream.Length.ToString());
Response.BinaryWrite(data.DocumentStream);

IE 不呈现 PDF。正如对话框清楚地表明的那样,Adobe Reader 插件正在尝试呈现 PDF 但无法呈现。这就是为什么您在下载并打开文件时会看到相同的对话框。

Chrome、Firefox 和 Edge,甚至托管在 Dropbox 上的 PDF 文件都有自己的内置 PDF 渲染引擎,而且显然比 Adob​​e 更能容忍格式错误的 PDF Reader是。

不幸的是,如果您依赖浏览器或浏览器插件来呈现您的 PDF 文件,您将永远无法创建一致的体验。相反,您需要实现类似 PDF.js 的东西,虽然它不是一个完美的 PDF 渲染工具,但至少在浏览器和操作系统之间的行为是可预测的。

在下面添加修复我的 issue.This 的代码可能对将来的某人有所帮助

var data = getdataAndOtherThingsFromService();
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", data.DocumentStream.Length.ToString());
Response.BinaryWrite(data.DocumentStream);
Response.End();