、私はこのようにそれをやっている:は窓の負荷にJSでHTMLテーブルを印刷
<?php
private function message(){
return '<!DOCTYPE html><html moznomarginboxes mozdisallowselectionprint><body style="padding:30px;">'
.'<table id="print-area" style="height: 501px; border:1px solid red;padding:1em;margin:0 0 1em" width="364" ><tr><td>example</td></tr></table></table>'
.'<p> </p></body> </html>'}
?>
私は何をやっていると、私はということですそのPHP関数の戻り値を新しい関数に渡します。 PHPの関数構造とロジックを無視してください。これは私がこれをやっている例です。これを行うにはこれが最善の方法ではないかもしれませんが、本当に必要なのはJavaScriptの部分です。なぜ新しいウィンドウを印刷して閉じないのですか?
テーブルを印刷して、POS領収書ページに合わせて空白スペースをすべて印刷する必要はありません。このバージョンのPrintReceipt関数では既に試しましたが、空白がたくさん印刷されています領収書に。
myWindow.frames['print_frame'].document.title = document.title;
myWindow.document.getElementById('print-area').contentWindow.print();
OPであなたの第二の試みが正しいことを意味します
public function PrintReceipt($content) {
echo"<!DOCTYPE html><script type='application/javascript'>
window.onload=function(){
var myWindow = window.open('', 'MsgWindow', 'width=200,height=100');
myWindow.document.write('" . $content . "');
myWindow.print();
myWindow.close();
}
</script>";
}
...それはです私のenvで期待通りに動作します(OPの2番目のバージョンを使用しています)...問題は別の場所かもしれません。あなたはそれのためのコードを投稿しています –
@NishanthMatha私は私の側でそれを実行すると、このエラーが表示されます: _TypeError:myWindow.frames.print_frameは定義されていません step4:5:29_それをプリンタに送信します。 –
私はコードの2番目のバージョンをテストしました –