POSシステムを開発しました。私の問題は最後に、会社のロゴやその他のものでカスタマイズされた領収書を作成する必要があることです。販売データを追加して領収書を印刷する必要があります。方法はわかりませんが、XMLをこれに使用できると強く信じています。どんなアイデアでも大歓迎です
2 に答える
XMLのデータがある場合は、ApacheFOPをお勧めします。FOPを使用すると、スタイルを簡単に変更でき、PDF、htmlページに印刷できます...
そのようなことをするための非常に便利なツール!
あなたは運がいいです.私は妻のビジネスのためにこれとまったく同じことをしました. これを機能させるために、ビルドイン印刷フレームワークを使用しました。これを行うクラスはかなり大きいので、ハイライトは次のとおりです。
import java.awt.print.Printable を拡張するクラスを作成する
Graphics2D オブジェクトを作成し、その上に必要なものをすべて出力してから、単純に print() メソッドを次のようにオーバーライドします。
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (prevPage == pageIndex) {
linesRendered = prevRendered;
}
prevPage = pageIndex;
prevRendered = linesRendered;
if (linesRendered >= lines.size()) {
logger.fine("No further pages to send to printer.");
return NO_SUCH_PAGE;
} else {
// render here
// ...
return PAGE_EXISTS;
}
}
Java は同じページに対してメソッドを何度も呼び出す傾向があるため、チェックが必要です。次に、印刷するには、次のことを行うだけです。
public void printInvoice() {
PrinterJob printJob = PrinterJob.getPrinterJob();
if (printJob.printDialog()) {
try {
InvoicePrinterHelper iph =
new InvoicePrinterHelper(...);
printJob.setPrintable(iph);
printJob.print();
} catch (PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}
}
スペースを節約するためにかなり取り出しましたが、これでうまくいきます。それを正しく理解するのに何年もかかりましたが、少なくとも私が必要としていたほど掘る必要はありません. 「印刷可能な」インターフェイスを Google で検索すると、他にも多数の例が表示されます。
Graphics2D を使用し、アンチエイリアスを使用することをお勧めします。そうしないと、フォントの見栄えが非常に悪くなります。