1

(这是通过油脂/篡改猴)。

这是使用 Chrome beta 浏览器的自助服务终端的打印功能:

$("#autoCheckOrder button").click ( function () {
    var newWin      = window.open (""); 
    newWin.document.write ( "<!DOCTYPE html>" );
    newWin.document.write( "<html>" );
    newWin.document.write( "<head>" );
    newWin.document.write( "<title>" );
    newWin.document.write( "</title>" );
    newWin.document.write( "<style>" );
    newWin.document.write( "@media print { " );
    newWin.document.write( "body { " );
    newWin.document.write( "background-color: white;" );
    newWin.document.write( "width: 55mm;" );
    newWin.document.write( "position: absolute;" );
    newWin.document.write( "top: 0;" );
    newWin.document.write( "left: 0;" );
    newWin.document.write( "padding: 0px;" );
    newWin.document.write( "font-size: 14px;" );
    newWin.document.write( "line-height: 18px;" );
    newWin.document.write( "}" );
    newWin.document.write( "}" );
    newWin.document.write( "</style>" );
    newWin.document.write( "</head>" );
    newWin.document.write( "<body>" );
    newWin.document.write ( loanHTML ); 
    newWin.document.write( "</body>" );
    newWin.document.write( "</html>" );
    if(newWin.print()) {
        newWin.close();
    } else {
        newWin.close();
    }
});

它从列出所有项目的页面中获取一个表格,然后创建一个“收据”。然后打印收据。这在一段时间内工作得很好,现在它只打印第一个项目。

我已经尝试了以下绝对没有结果:

  • 使用分页符后:总是
  • 使用上述 CSS 规则将收据放入 div
  • 重新安装打印机
  • 打印机的纸张缩减设置

疯狂的是,它过去可以完美地打印所有项目,而现在却不行了。为了确定,我什至从备份中重新安装了脚本。

不知道从这里去哪里。所有内容都显示在打印预览中,但仅打印第一项。“页眉和页脚”设置只会让事情变得更糟,而不是更好。

更新

我更改了发送到打印机的 HTML,它可以工作。仍然不确定它是否完全有效,但它正在打印。如果它停止打印,我会知道如何解决。感谢您的输入!

4

1 回答 1

1

我能看到的唯一合理的解释是你的 loanHTML 变量是空的或未定义的。

演示:http: //jsfiddle.net/waitinfratrain/bMzUt/2/

注释掉该var loanHTML行并再次运行,您就会明白我的意思了。

于 2012-05-23T01:42:25.100 回答