我在Joomla有一个订票系统。
当用户点击故障单链接时,网站上会显示故障单。
我正在使用 barcode.php 文件生成票号的条形码图片。
现在有两种用于打印票证的方案。
当我使用window.print()
或 Ctrl + P 打印该票证时,会打印2页
即使我的票证内容只是单页。
当我使用以下javascript代码打印页面的特定部分时,不会生成条形码图像。
function print_specific_div_content(){
var content = "<html>";
content += document.getElementById("divToPrint").innerHTML ;
content += "</body>";
content += "</html>";
var printWin = window.open('','','left=0,top=0,width=552,height=477,toolbar=0,scrollbars=0,status =0');
printWin.document.write(content);
printWin.document.close();
printWin.focus();
printWin.print();
printWin.close();
}
我的要求是:
故障单应仅在单页打印。
任何帮助或建议都将不胜感激。
感谢。
编辑1:
我修改了我的功能如下,但遗憾的是它显示了新窗口但没有打印对话框。 :(
function print_specific_div_content(){
var win = window.open('','','left=0,top=0,width=552,height=477,toolbar=0,scrollbars=0,status =0');
var handler = function() {
win.print();
win.close();
};
if(win.addEventListener)
win.addEventListener('load', handler, false);
else if(win.attachEvent)
win.attachEvent('onload', handler, false);
var content = "<html>";
content += document.getElementById("divToPrint").innerHTML ;
content += "</body>";
content += "</html>";
win.document.write(content);
win.document.close();
}
答案 0 :(得分:9)
仅打印内容时,您需要在打印前等待文档加载,以便加载图像:
function print_specific_div_content(){
var win = window.open('','','left=0,top=0,width=552,height=477,toolbar=0,scrollbars=0,status =0');
var content = "<html>";
content += "<body onload=\"window.print(); window.close();\">";
content += document.getElementById("divToPrint").innerHTML ;
content += "</body>";
content += "</html>";
win.document.write(content);
win.document.close();
}