无声打印嵌入式PDF

sou*_*els 24 html javascript pdf acrobat

我有一个带有嵌入式PDF的网页.我的代码看起来像这样:

<embed
    type="application/pdf"
    src="path_to_pdf_document.pdf"
    id="pdfDocument"
    width="100%"
    height="100%">
</embed>
Run Code Online (Sandbox Code Playgroud)

我有这个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();
    }
}
Run Code Online (Sandbox Code Playgroud)

执行此代码时,Acrobat插件将打开众所周知的打印对话框.像这样的东西:

PrintDialog类

两个问题:

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

关于我的系统的更多信息:

操作系统: Windows XP

浏览器: Internet Explorer 7

PDF插件: Acrobat Reader 9

epa*_*llo 19

您无法使用普通的旧JavaScript进行静默打印.您希望您的打印机如何开始打印出所有黑色的100000000页.不是一件好事.如果要以静默方式打印并使其仅适用于Internet Explorer,则可以使用ActiveX控件来执行此操作.这需要为您的网页提供更高的安全设置,并让您的用户真正信任您的网站.


Pus*_*ode 5

这在受信任的 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();" />
Run Code Online (Sandbox Code Playgroud)

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

  • 我无法让这个方法在 FF 或 Safari 中工作。这个只有IE吗? (5认同)