无声打印embedded的PDF

我有一个嵌有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插件将打开众所周知的打印对话框。 像这样的东西:

PrintDialog类

两个问题:

  • 如何改进检测PDF加载并准备打印的方式?
  • 如何避免显示打印对话框?

多一点关于我的系统的信息:

操作系统: Windows XP

浏览器: Internet Explorer 7

PDF插件: Acrobat Reader 9

您将无法使用普通的旧JavaScript进行无声打印。 你如何让你的打印机开始打印出100000000页的黑色。 不是一件好事。 如果您想静默打印并且只能在Internet Explorer上运行,那么可以使用ActiveX控件。 这需要更高的安全设置为您的网页和您的用户真正信任您的网站。

在可信的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();" /> 

这将绕过打印对话框并直接发送到默认打印机。

我想知道在打印之前是否真的需要等待 – 打印作业不会为您处理吗? 我真的希望现在的浏览器不会允许你(或任何网站)打印没有确认对话框(一些旧的浏览器曾经这样做,很久以前)。

您可以通过更改about:config在Firefox中执行此操作。 添加print.always_print_silent并将其设置为true