qz-tray(クライアントマシンのUSBポートにプリンターを接続してブラウザから印刷するミドルウェア)を使ってPOSレシートを印刷しています。レシートの生成に PostScriptPrinting を使用しており、PostScriptPrinting には qz-tray の printHTML 関数を使用しています。私が理解しているのは、qz-tray は java Html Renderer を使用して printHTML 関数のレシートをレンダリングおよび生成するということです。私のマシンでは問題なく動作していましたが、クライアントのマシンは macbook で、ブートキャンプ ウィンドウがインストールされていました。Macbook のブートキャンプ ウィンドウから印刷物を生成すると、領収書の書式設定が乱れました。この背後にある理由は何でしょうか? この問題を解決するにはどうすればよいですか?
1 に答える
私が理解しているのは、qz-tray が java Html Renderer を使用して、printHTML 関数のレシートをレンダリングおよび生成することです。
正解です。QZ Tray 1.9 は非常に限定的な内部 Java HTML レンダラーを使用していました。
Macbook のブートキャンプ ウィンドウから印刷物を生成すると、領収書の書式設定が乱れました。この背後にある理由は何でしょうか? この問題を解決するにはどうすればよいですか?
プリンター ドライバーの違いである可能性が高いため、回答には詳細情報 (使用しているプリンターやプリンター ドライバーなど) が必要です。
たとえば、このレシート プリンターが Epson の場合、ドライバーをインストールする必要があり、ドライバーの設定が出力品質に影響を与える可能性があります。エプソンは、MacOS、Linux、および Windows 用のドライバーを提供しています。
さらに、QZ Tray のバージョン 1.9、2.0、2.1 などによっては、Java 7 + HTML は Java 8 + HTML とはかなり異なる結果になる可能性があります。
とにかく、PostScript
QZ Tray の新しいバージョンでは印刷が非推奨になっているため、最新バージョンを利用するとより良い結果が得られるはずです。
var config = qz.configs.create("Printer Name");
var data = [{
type: 'html',
format: 'file', // or 'plain' if the data is raw HTML
data: 'assets/html_sample.html'
}];
qz.print(config, data).catch(function(e) { console.error(e); });
サーマル プリンターで最高の HTML 品質を得るには、QZ Tray 2.1 以上をお勧めします。