|
日時: 2013/05/01 23:31
名前: lightbox
|
テキストファイルに出力する仮想印刷処理と、
プリンタに直接印刷( 簡易サンプル )
http://lightbox.on.coocan.jp/download/prt_control_java_eclipse.exe
直接印刷は、以下のページを参考にしています
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/2d/spec/j2d-print.html
http://lightbox.on.coocan.jp/download/JavaPrinting.pdf
↑印刷結果
拡張子:
import java.awt.*;
import java.awt.print.*;
public class Main implements Printable
{
private Paint pnt = new GradientPaint(
100f, 100f, Color.red, 136f, 100f, Color.green, true);
private int nCount = 0;
public static void main(String[] args) {
PrinterJob job = PrinterJob.getPrinterJob();
// インスタンス作成
job.setPrintable(new Main());
// 印刷ダイアログ表示
if (job.printDialog()) {
try {
job.print();
}
catch (Exception e) {
}
}
}
public int print(Graphics g, PageFormat pf, int pageIndex)
throws PrinterException {
if (pageIndex >= 5) {
return Printable.NO_SUCH_PAGE;
}
int ret;
while( true ) {
ret = partsPrint( g, pageIndex );
if ( ret == -1 ) {
break;
}
}
return Printable.PAGE_EXISTS;
}
public int partsPrint(Graphics g, int pageIndex)
throws PrinterException {
nCount++;
if ( nCount > 10 ) {
nCount = 0;
return -1;
}
if ( pageIndex == 0 ) {
g.setColor(Color.DARK_GRAY);
g.drawString("日本語表示テスト : Page " + (pageIndex+1), 100, 100+20*nCount);
}
else {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(pnt);
g2.drawString("日本語表示テスト : Page " + (pageIndex+1), 100f, 100f+20*nCount);
}
return 0;
}
}
|