我正在仓库中的终端上构建在Firefox中运行的应用程序。此应用程序需要打印PDF文件。使用Javascript在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 Reader进行打印。我也试过
document.getElementById('pdfLabel').print();
但抛出 TypeError: window.frames.pdfLabel.print is not a function
由于您使用的是'id'选择器,因此您不需要在选择器开头处的'iframe',只需使用'$(“#pdfLabel”)'。你可以在'.load'函数中放一个'console.log('here');'?我知道你说过它加载,但只是为了确保你的'.load'代码正在运行。此外,您可能需要设置'src'属性_after_绑定'.load'事件 – Ian 2013-02-26 23:15:07
给予pdf加载一段时间。可能使用setTimeout – allenhwkim 2013-02-27 00:05:24
@Ian'.load'正在运行,我检查了。绑定load事件后,我设置了'src'属性,但没有帮助。 @ bighostkim试了一下,没有帮助。谢谢你们的建议。 – 2013-02-27 17:04:35