我在 Joomla 中有一个订票系统。
当用户点击门票链接时,网站上会显示一张门票。
我正在使用 barcode.php 文件生成票号的条形码图像。
现在有 2 个场景我用来打印票。
当我使用
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();
}
最佳答案
当只打印内容时,您需要等待文档加载后再打印,以便加载图像:
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();
}
关于javascript - 如何通过代码调整打印选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19028419/