使用Iframe在Javascript中打印PDF文件

Vij*_*P.V 1 javascript pdf

这是我使用iframe在JavaScript中打印pdf文件的代码.但我无法打印任何事情,但这段代码完全适用于谷歌浏览器.在IE8中无法正常工作.ContentLoaderDiv是html部门.请帮我..

当我从使用Java脚本打印的应用程序打印PDF文档而不是adobe Reader打印对话框时,将调用浏览器打印对话框.

有没有人见过这个问题?如何调用Adobe Reader打印机对话框而不是浏览器打印对话框?

 function printPdf() {
        var ContentLoaderDiv = document.getElementById('ContentLoaderDiv');
        ContentLoaderDiv.innerHTML = "";
        ContentLoaderDiv.innerHTML = '<div id="pdfdiv" style="position: relative;"><iframe id="frame1"  height="800" width="700" src="' + document.getElementById("<%= hdnPDFPathForObject.ClientID  %>").value + "print.pdf#scrollbar=1&toolbar=1&statusbar=0&messages=0&navpanes=1" + '"' + " /></iframe></div>";
        frame1.focus();
        frame1.print(); 
Run Code Online (Sandbox Code Playgroud)

}

Pow*_*ave 5

试试这个:

function PdfUtil(url) {

    var iframe;

    var __construct = function(url) {
        iframe = getContentIframe(url);
    }

    var getContentIframe = function(url) {
        var iframe = document.createElement('iframe');
        iframe.src = url;
        return iframe;
    }

    this.display = function(parentDomElement) {
        parentDomElement.appendChild(iframe);
    }

    this.print = function() {
        try {
            iframe.contentWindow.print();
        } catch(e) {
            throw new Error("Printing failed.");
        }
    }

    __construct(url);
}
Run Code Online (Sandbox Code Playgroud)

你可以按如下方式使用它:

var pdf = new PdfUtil(PDF_URL);
pdf.display(document.getElementById('placeholder'));

document.getElementById('printBtn').onclick = function() {
    pdf.print();
}
Run Code Online (Sandbox Code Playgroud)

显然,虽然PDF_URL这里是一个"常数",但在你的情况下,它很可能是生成的.

与IE8和Chrome完美配合(也适用于其他浏览器).此外,OO方法使其更易于维护和/或可重用.可能仍需要对实际逻辑进行轻微修改以满足您的所有需求.