1

(これはGrease / Tampermonkeyを介して行われます)。

Chromeベータブラウザを使用したキオスクの印刷機能は次のとおりです。

$("#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/waitinforatrain/bMzUt/2/

行をコメントアウトしてvar loanHTMLもう一度実行すると、私が何を意味するかがわかります。

于 2012-05-23T01:42:25.100 に答える