IE不会渲染PDF blob

时间:2014-10-09 08:39:59

标签: javascript html asp-classic

好的,所以我有一个生成PDF的网页。到目前为止,创建PDF的代码非常扎实 - 但是我在显示创建的PDF时遇到了麻烦。

我已经让Chrome中的显示代码坚如磐石 - 但我无法让IE全部工作。我需要一种在Javascript中生成PDF并使用IE显示它的方法。

这里的关键问题是我在客户端生成PDF - 这意味着没有服务器端URL来加载PDF。这需要我使用blob或dataurls,IE不会出于某些奇怪的原因呈现这些。从我读到的这是设计,但他们没有提供我能找到的解决方法

该项目要求PDF在后台加载,只需弹出一次显示的打印对话框(我不能简单地将文件保存到客户端的计算机上)。正在打印的数据也非常专门用于打印它们的表单,这意味着我无法将PDF渲染到画布中,只打印canvas元素,因为它在页面上放置了带有URL和页码的额外边距。


以下是我的问题:

  1. IE存在此问题的解决方法吗?我过去曾使用过PdfObject,但在IE中仍然存在与blob和dataurls相同的问题

  2. 这个网站的后端是经典的ASP(它在.Net中重做,但是最早在下次这个时候才能使用) - 是否可以将blob的二进制数据上传到ASP页面,将其存储在会话中,然后将iframe指向返回该会话变量内容的页面?这样可以规避这个问题,但我担心这个任务有点雄心勃勃......

1 个答案:

答案 0 :(得分:1)

你无法在旅途中生成PDF文件,然后在没有服务器或插件的情况下显示它。

如果您尝试使用数据URI显示它:

  

仅支持以下元素和/或属性的数据URI。

     
      
  • 对象(仅限图片)
  •   
  • IMG
  •   
  • 输入类型=图片
  •   
  • 链路   -CSS声明接受URL,例如background,backgroundImage等。
  •   

http://msdn.microsoft.com/en-us/library/cc848897(v=vs.85).aspx

您不能将其用作框架的网址。

如果您尝试使用Blob显示它:

  

创建的Blob可用于图像,视频,音频,XMLHttpRequest,css backgroundImage和css字体等元素中的资源。

http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx

仍然没有。


您可以做的是将PDF转换为HTML5或画布。有些库可以为您处理该部分,例如ViewJS。不确定"额外保证金"您提到过,但在打印之前,可以在客户端更改和关闭页面URL和页码,甚至页边距。

enter image description here