iTextSharp无法在IE x64中运行

时间:2015-11-30 11:41:26

标签: asp.net internet-explorer pdf itextsharp

我刚刚将我的ASP.NET MVC项目从Spire.PDF转换为iTextSharp(由于Spire.PDF免费版本的限制)。但是,由于某些原因,我甚至无法得到最简单的例子。

浏览器(本例中为IE 11 x64)只会显示一个空的灰色页面。如果我将此页面保持打开一段时间,则Adobe Acrobat会显示错误消息(103:103)。

有趣的是,当我保存文件时(通过添加Content-Disposition标头或使用Fiddler),PDF打开时没有问题。我还发现Edge和32位版本的IE会正常显示PDF文件。

以下是我的示例Action方法:

    public ActionResult DownloadPdf() {

        var document = new Document(PageSize.A4, 50, 50, 25, 25);
        var output = new MemoryStream();
        var write = PdfWriter.GetInstance(document, output);

        var titleFont = FontFactory.GetFont("Arial", 18, Font.BOLD);

        document.Open();
        document.Add(new Paragraph("Test Receipt", titleFont));
        document.Close();
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(output.ToArray());

        return new EmptyResult();

    }

结果如下:https://onedrive.live.com/redir?resid=17E4A59AD907D9BA!259495&authkey=!ABsQUl-TiR668xI&ithint=folder%2cpng

除了设置Content-Length或Response.Buffer之外的任何想法? (我已尝试过那些)

更新1 :我想回复一些评论

@ChrisHaas即使在更改内容类型后,IE仍会显示灰色页面。但是,我使用Fiddler在OneDrive链接中保存响应(一次使用标题,一次没有),您可以在上面的问题中找到它。

@Matt你的意思是F12开发工具?它不会在灰色页面上正确加载,它只是一个空白区域。所以我无法检查任何事情。

@Paulo之前我尝试过这个并没有任何效果。然而,根据Fiddler的说法,Content-Length似乎也是正确的。

1 个答案:

答案 0 :(得分:0)

我仍然不明白究竟是什么问题,但我决定在另一台PC上测试它,并确定它是服务器端还是客户端问题。

我重新配置了IIS Express以允许远程连接并从另一个系统(也是带有IE 11的Win 10 Pro x64)访问PDF文件,并且它运行良好。它的行为也取决于内容类型(即八位字节流的下载对话框和application / pdf的内联PDF查看器)。

接下来我做的是在我的开发机器上重新安装Adobe Acrobat Reader DC,但问题仍然存在,即使重新启动并清除IE缓存后也是如此。所以我尝试的最后一件事是从版本DC降级到X - 这实际上有效,现在将在浏览器中正常显示PDF。

就像我说的那样,我不明白究竟是什么问题,但至少我现在可以继续处理我的项目了。

感谢大家的建议!