ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
Java ( eclipse ) 印刷処理
日時: 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;
	}  
}
メンテナンス


日時: 2013/05/01 23:31
名前: lightbox