【发布时间】: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 和嵌入式 Adobe 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