2009-07-08 11 views
0

私は何か間違っているかどうか教えてください。私はラベルにバーコードを印刷したいので、私はこれらのバーコードのために高品質の印刷物が必要なので、私は300dpiで印刷するためにプリンタを押しています。私がやったこと:java print api - 300dpiでJComponentを印刷

  1. は大きなJFrameを作った。幅:2490px、高さ:3515pxそれが1にA4用紙を表し:1小節(プリントは300dpiのことがある場合、これはA4用紙の解像度)

  2. は、JFrameの

  3. セットアップのcontentPaneに40枚のバーコードの画像を描画しますプリントは、それが300dpiので印刷されます属性:

PrintRequestAttributeSet ASET = 新しいHashPrintRequestAttributeSet();

PrinterResolution pr = 
    new PrinterResolution(300,300,PrinterResolution.DPI); 
    MediaPrintableArea mpa=new MediaPrintableArea(8,21, 
     210-16, 296-42, MediaPrintableArea.MM); 

属性セットは、このデータで満たされている:

aset.add(mpa ); 
aset.add(pr); 
aset.add(MediaSizeName.ISO_A4); 
aset.add(new Copies(1)); 
aset.add(OrientationRequested.PORTRAIT); 
aset.add(PrintQuality.HIGH); 
aset.add(Fidelity.FIDELITY_TRUE); 

printJob.setPrintable(this); 
printJob.print(aset); 

このクラスは、printメソッドを持っています

public int print(Graphics g, PageFormat pageFormat, int pageIndex) { 
    if (pageIndex > 0) { 
     return(NO_SUCH_PAGE); 
    } else { 
     Graphics2D g2d = (Graphics2D)g; 

     g2d.translate(pageFormat.getImageableX(),pageFormat.getImageableY()); 
     disableDoubleBuffering(componentToBePrinted); 

     componentToBePrinted.paint(g2d); 
     enableDoubleBuffering(componentToBePrinted); 
     return(PAGE_EXISTS); 
    } 

私はサイズ48.5にそれぞれ、そのA4用紙に40本のバーコードを持っている必要がありますmm×25.4mm。 紙に印刷されるのは、用紙全体を満たす104mm x 46mmの2倍の幅(ページ幅のほぼ半分)の6つのバーコードです。

私は何が間違っていますか?

+0

解決策を見つけましたか? – MyTitle

+0

は今覚えていないので、私はそれらのバーコードを印刷するようにしましたが、バーコードスキャナはそれらをほとんど読んでいません。 –

答えて

0

あなたの解像度はおそらく72 dpiに設定されており、画像のサイズを大きくする効果があります。