Asp.net 将PDF从内存流显示到浏览器
我试图显示动态创建的pdf并在浏览器中显示,但我得到了以下字符(很多字符) 我在用iTextSharp \�(l)�x�)�(�)���G���29��2.�`C�B�佤邦���[�(�o��x��3.�J:k��v�操作系统�R 我用来创建pdf的代码在通过电子邮件作为附件发送时确实有效 也许我展示它是错的Asp.net 将PDF从内存流显示到浏览器,asp.net,asp.net-mvc,asp.net-mvc-3,pdf,itextsharp,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Pdf,Itextsharp,我试图显示动态创建的pdf并在浏览器中显示,但我得到了以下字符(很多字符) 我在用iTextSharp \�(l)�x�)�(�)���G���29��2.�`C�B�佤邦���[�(�o��x��3.�J:k��v�操作系统�R 我用来创建pdf的代码在通过电子邮件作为附件发送时确实有效 也许我展示它是错的 .... doc.Close(); Response.Clear(); Response.ContentType = "
....
doc.Close();
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=labtest.pdf");
Response.Buffer = true;
stream2.WriteTo(Response.OutputStream);
Response.End();
上述代码在控制器方法中在问题注释中回答。 归功于克里斯·哈斯
AJAX的一般形式是基于文本的,这就是为什么您会看到 PDF的文本表示。您需要切换到二进制处理 如果你想处理二进制数据,但那是完全不同的 问题。有关html5rocks.com/en/tutorials/file/xhr2的介绍,请参见此
如果我没记错的话,
Write
和WriteTo
方法知道当前的位置,并将其考虑在内。您可以尝试将代码更改为Response.BinaryWrite(stream2.ToArray())
另外,您没有尝试使用AJAX来实现这一点,是吗?我找到了另一种解决方案,首先保存文件,然后打开它。是的,我使用AJAX来实现,为什么?AJAX的一般形式是基于文本的,这就是为什么您会看到PDF的文本表示形式。如果您想使用二进制数据,您需要切换到二进制处理这是一个完全不同的问题。看这个作为一个介绍啊,很高兴知道谢谢。