我有一个嵌入了PDF的网页。我的代码如下所示:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%">
</embed>
我有这个javascript代码用于打印我的PDF:
function printDocument(documentId) {
//Wait until PDF is ready to print
if (typeof document.getElementById(documentId).print == 'undefined') {
setTimeout(function(){printDocument(documentId);}, 1000);
} else {
var x = document.getElementById(documentId);
x.print();
}
}
执行此代码时,Acrobat插件会打开众所周知的打印对话框。像这样:
两个问题:
关于我的系统的更多信息:
操作系统:Windows XP
浏览器: Internet Explorer 7
PDF插件: Acrobat Reader 9
答案 0 :(得分:18)
您无法使用普通的旧JavaScript进行静默打印。您希望您的打印机如何开始打印出所有黑色的100000000页。不是一件好事。如果要以静默方式打印并使其仅适用于Internet Explorer,则可以使用ActiveX控件。这需要为您的网页设置更高的安全设置,并让您的用户真正信任您的网站。
答案 1 :(得分:4)
这在受信任的Intranet环境中是可行的。
<object id="pdfDoc" style="position:absolute;z-index:-1;" name="pdfDoc" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="900px" height="100%">
<param name="SRC" value="yourdoc.pdf" />
</object>
<input type="button" ... onclick="pdfDoc.printAll();" />
这将绕过打印对话框并直接发送到默认打印机。
答案 2 :(得分:1)
我想知道你是否真的需要在打印之前等待 - 打印作业不会为你处理吗?而且我真的希望没有现代浏览器允许你(或任何网站)在没有确认对话框的情况下进行打印(很久以前一些旧的浏览器就是这样做的。)
答案 3 :(得分:1)
您可以通过更改about:config
在Firefox中执行此操作。添加print.always_print_silent
并将其设置为true
。