javascript - 我怎样才能在谷歌浏览器中打印 pdf 文件?

标签 javascript

我有一个与按钮关联的 pdf。当我单击按钮时,我想打印 pdf 文件。这是我的按钮的编码方式:

<input type="submit" class="btn-red" value="Print"
name="Submit" id="printbtn"
onclick="printPDF('http://www.irs.gov/pub/irs-pdf/fw4.pdf')" />

现在我的打印功能是这样的:

    function printPDF(pdfUrl)
    {

    if ((navigator.appName == 'Microsoft Internet Explorer') ) 
    window.print(pdfUrl,"_self");
    else
    {
    var w = window.open(pdfUrl,"_self");
    w.print();
    w.close();
    }
    }

问题是,它在 IE 和 Fire fox 中工作正常,但在 chrome 中不起作用。在 ie 和 Firefox 中,它会打开 xps 打印机选项,但在 chrome 中,它只会打开一个新的打印窗口,其中包含 div 而不是 pdf 的打印预览。但是我想在这里打开 xps 选项。

编辑: 在 chrome 中,当我尝试打印时,只有 html 元素作为预览出现,而不是 pdf。我使用的是 chrome 版本:20.0.1132.57

我怎样才能解决这个问题?请帮忙。

最佳答案

这对我有用,不需要主机 HTML 文件。关键是等待加载:

对于这样的链接:

<a class="print-pdf-link" href="/your/pdf.pdf">Print PDF</a>

我使用了 javascript:

$('a.print-pdf-link').click(function () {
    var w = window.open($(this).attr('href'));

    w.onload = function () {
        w.print();
    };

    return false;
});

关于javascript - 我怎样才能在谷歌浏览器中打印 pdf 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274181/

相关文章:

javascript - 从数组中查找事件索引(逻辑)

javascript - 如何检查数组是否包含javascript中的另一个数组

javascript - 为什么我的 SettingsFout 上的就绪函数没有被命中?

javascript - Parse.com 未捕获类型错误 : Cannot read property 'className' of undefined JavaScript

javascript - 在客户端(即在 javascript 中)检查 firebase db ref 的正确方法是什么?

javascript - 使用 on click vanilla JS,在错误的节点上激活

javascript - 是否可以使用JS访问Firefox的另存为命令?

javascript - Highstock 图表 - JSON 输入不起作用

javascript - 访问 Javascript ES6 类中声明的函数(ES2015?ES16?)

javascript - 为什么我的 Javascript Chrome 扩展代码不起作用? (循环检查按钮)