私はJava印刷APIを使用して、画像とテキストをサーマルプリンターに印刷しています。Printable インターフェイスを使用してみましたが、文字列と画像を描画できませんでした。そのため、ファイルシステムからファイルを読み取り、直接印刷します。画像とテキストを印刷するための個別の印刷コマンドがあります。これが私が使用するコードです
try {
textStream = new FileInputStream("C:\\logs\\qrcode.gif");
} catch (FileNotFoundException ffne) {
}
if (textStream != null && printer != null) {
DocFlavor myFormat = DocFlavor.INPUT_STREAM.GIF;
// Create a Doc
Doc myDoc = new SimpleDoc(textStream, myFormat, null);
DocPrintJob job = printer.createPrintJob();
try {
job.print(myDoc,set);
} catch (PrintException e) {
logger.log(Level.SEVERE,e.getMessage(),e);
}
}
画像のサイズは 360 X 360 で、プリンターの解像度は 180DPI ですが、印刷される画像は非常に小さいです。
ここに画像がありますhttp://i.stack.imgur.com/oK3sX.jpg
しかし、画像ファイルを直接印刷すると、ページ全体が使用されます。(ページをフレーム全体に印刷するように選択できるオプションがあります)。Java を使用して同じことを行うには? 印刷可能なインターフェイスも実装しましたが、印刷された画像が右にずれます。左端に配置できませんでした (drawImage を 0,0 で使用すると、中央から描画されたため、ページ全体に表示されませんでした)。