2016-08-25 4 views
3
私はPOSレシートプリンタにテーブル要素の内容を印刷する必要が

、私はこのようにそれをやっている:は窓の負荷に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>&nbsp;</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>"; 
} 
+0

...それはです私のenvで期待通りに動作します(OPの2番目のバージョンを使用しています)...問題は別の場所かもしれません。あなたはそれのためのコードを投稿しています –

+0

@NishanthMatha私は私の側でそれを実行すると、このエラーが表示されます: _TypeError:myWindow.frames.print_frameは定義されていません step4:5:29_それをプリンタに送信します。 –

+0

私はコードの2番目のバージョンをテストしました –

答えて

1

あなたがframesを使用していない場合は、次の行を宣言するにはポイントがありません。空きスペースがある場合は、それは絶対にcss問題です。あなたは、テーブルがページ幅の100%を占めるようにしたい場合の操作を行います。

return '<table id="print-area" style="height: 100%; border:1px solid red;padding:1em;margin:0 0 1em" width="100%" ><tr><td>example</td></tr></table></table>';

の代わりに、私はあなたのjs機能とOPで提供されているコードの一部をテストした

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>&nbsp;</p></body> </html>'}

+1

私はあなたのjs関数とOPで提供されているコードをテストしました...それは私のenvで期待どおりに動作します...問題かもしれませんどこか他の場所です。あなたはそのためのコードを投稿しています –

+0

こんにちは、これはちょうど正しい答えでした!私はそれが通常のプリンタで動作するようにPOSプリンタで動作することを推測することができます。助けてくれてありがとう@Nishanth –

+1

np!幸せなコーディング.. –