javascript - 在 IE 中,使用JS或者jQuery打印图像

  显示原文与译文双语对照的内容
0 0

我有一个图像,它是转换为图像画布( 我使用了 canvas2image.js 插件插件):


function draw_voucher_img()
{
 var canvas = $("#canvas_voucher")[0];
 var voucher = canvas.toDataURL();
 $("#voucher_img").attr("src", voucher);
}

然后点击一个按钮我想打印那个图像。 我正在使用 jquery.printElement.min.js 插件插件来完成这个任务:


$("#div_print_voucher").click(function() {
 print_voucher();
});


function print_voucher()
{
 $("#voucher_img").printElement();
}

它在每个浏览器中都有效,除了。 IE 在浏览器中不打印图像,而是打印页面的其余部分。 还有其他方法让它在 IE 中工作?

**Update**

还有其他方法可以使用JS或者jQuery打印元素? 如果有的话,可以能有可以能检查用户的浏览器是否为 IE: 如果是:使用一种打印方法,如果不是- 函数 上面 。

* never,问题解决了 *

时间: 原作者:

0 0

也许这不是最优雅的解决方案,但它为我工作。 在页面打印时,它会将画布转换为图像,创建一个弹出窗口,然后将转换后的图像设置为源窗口,然后将转换后的图像设置为原始窗口,然后将它的设置为打印窗口。 所以现在我只需要检查浏览器是 IE 还是其它的。 如果是 IE - 使用 上面 提到的代码,如果它是它的他浏览器,请使用问题中提到的函数。 因此,完整代码现在看起来像这样:


function print_voucher()
{
var ua = navigator.userAgent;
if(ua.search(/MSIE/)> 0)
{
 var dataUrl = document.getElementById('canvas_voucher').toDataURL(); 
 var windowContent = '<!DOCTYPE html>';
 windowContent += '<html>'
 windowContent += '<head><title>Print voucher</title></head>';
 windowContent += '<body>'
 windowContent += '<img src="' + dataUrl + '">';
 windowContent += '</body>';
 windowContent += '</html>';
 var printWin = window.open('','','width=788,height=499');
 printWin.document.open();
 printWin.document.write(windowContent);
 printWin.document.close();
 printWin.focus();
 printWin.print();
 printWin.close();
} else {
 $("#voucher_img").printElement();
}

}

原作者:
...