javascript - IE 不会呈现 PDF Blob

标签 javascript html asp-classic

好的,我有一个正在生成 PDF 的网页。到目前为止,创建 PDF 的代码非常可靠 - 但是我在显示创建的 PDF 时遇到了问题。

我已经在 Chrome 中获得了稳定的显示代码 - 但是我根本无法让 IE 工作。我需要一种在 Javascript 中生成 PDF 并使用 IE 显示它的方法。

这里的关键问题是我在客户端生成 PDF - 这意味着没有服务器端 URL 可以从中加载 PDF。这需要我使用 blob 或 dataurl,而 IE 出于某种奇怪的原因不会呈现其中任何一个。据我了解,这是设计使然,但他们没有提供我能找到的解决方法

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


这是我的问题:

  1. 对于 IE,是否有任何解决此问题的方法?我过去使用过 PdfObject,但它在 IE 中仍然存在与 blob 和 dataurls 相同的问题

  2. 该网站的后端是经典的 ASP(它正在 .Net 中重做,但最早要到下一次才能使用)- 是否可以将 blob 的二进制数据上传到ASP 页面,将其存储在 session 中,然后将 iframe 定向到返回该 session 变量内容的页面?这会绕过 blob,但我担心这是一项有点雄心勃勃的任务......

最佳答案

如果不涉及服务器或插件,您无法随时随地生成 PDF 文件然后显示它。

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

Data URIs are supported only for the following elements and/or attributes.

  • object (images only)
  • img
  • input type=image
  • link -CSS declarations that accept a URL, such as background, backgroundImage, and so on.

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

您不能将它用作框架的 URL。

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

The Blob that is created can be used for resources in elements such as Image, video, audio, XMLHttpRequest, css backgroundImage, and css fonts.

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

还是不行


您可以做的是将 PDF 转换为 HTML5 或 Canvas 。有些库已经可以为您处理该部分,例如 ViewJS .不确定您提到的“额外边距”,但页面 URL 和页码,甚至边距,都可以在打印前在客户端更改和关闭。

enter image description here

关于javascript - IE 不会呈现 PDF Blob ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273934/

相关文章:

c# - 通过Docker在IIS上部署经典ASP应用程序

perl - 使用 perl mechanize 抓取 ASP 站点

javascript - Node.js 数组和对象数组之间的余弦相似度

javascript - 尝试在循环中记录数组,如果数组索引等于某个变量则返回一个字符串

javascript - 为什么组件没有以 Angular 加载?

javascript - 单击按钮时显示不同的div

css - 在我的内容 div 中写入文本(在 html 中)会使我的背景 div 移出位置?

javascript - 如何在提交 Google Recaptcha 后自动重定向?

javascript - target_blank 适用于两个 javascript 函数,即使它应用于一个 javascript 函数

javascript - 带有服务器端 Javascript 的经典 ASP,在不同的文件中调用函数