【问题标题】:Print PDF in Firefox with Javascript使用 Javascript 在 Firefox 中打印 PDF
【发布时间】:2013-02-26 22:50:47
【问题描述】:

我正在仓库的​​终端上构建一个在 Firefox 中运行的应用程序。此应用程序需要打印 PDF。

我发现了很多关于从 Javascript 打印 PDF 的问题和答案,但我无法让它工作。

这是我当前的代码。

$(document).ready(function() {
    $(document.body).append('<IFRAME id="pdfLabel" ... >');
    $('iframe#pdfLabel').attr('src', 'testlabel.pdf');

    $('iframe#pdfLabel').load(function() {
        document.getElementById('pdfLabel').focus();
        document.getElementById('pdfLabel').contentWindow.print();
    });
});

使用 iFrame 中的常规 html 页面,此代码可以完美运行。对于 PDF,pdf 显示在 iFrame 中,但不打印。我尝试使用内置 PDF 渲染器的 Firefox 和嵌入式 Adob​​e acrobat 阅读器进行打印。我也试过了

document.getElementById('pdfLabel').print();

但这会引发 TypeError: window.frames.pdfLabel.print is not a function

【问题讨论】:

  • 由于您使用的是id 选择器,因此您不需要在选择器的开头使用iframe...只需使用$("#pdfLabel")。你能在.load 函数中加入console.log('here'); 吗?我知道你说它加载,但只是为了确保你的 .load 代码正在运行。此外,您可能希望设置src 属性 绑定.load 事件
  • 给 pdf 加载时间。可能使用 setTimeout
  • @Ian .load 正在运行,我检查了。我在绑定加载事件后设置了src 属性,但它没有帮助。 @bighostkim 试过了,没用。谢谢两位的建议。

标签: javascript firefox pdf printing


【解决方案1】:

。 .遗憾的是,Firefox 19 附带的 PDF.js 版本不支持内置 JavaScript 来自行打印文档,并且它也不允许您访问 PDF 窗口内的任何内容(包括打印方法)。

。 . They are aware of the problem,该修复计划与 Firefox 21 版一起发布。

【讨论】:

  • 您链接到的错误已标记为已修复,但是,至少据我所知,您仍然无法在 Firefox(从 v39 开始)中使用 javascript 进行打印。
  • @Lynda,您是否尝试过这两个选项(使用 JavaScript 进行自我打印和 self.print() JS sn-p?)。我最近不需要检查 PDF 和自行打印,但他们确实发布了补丁。也许有人应该重新打开这个问题或打开一个新问题。
  • They know about it。该链接只是我在此找到的许多页面的一个示例。补丁确实如你所说的那样发布,但是,根据我所读到的内容并没有解决所有问题。
猜你喜欢
  • 2014-10-19
  • 2013-02-07
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-30
  • 2016-03-24
  • 2014-08-09
相关资源
最近更新 更多