2009-07-08 87 views
0

請告訴我,如果我做錯了什麼。我想打印條形碼到標籤上,所以我需要這些條形碼的高質量打印輸出,所以我推動打印機以300dpi打印。我做了什麼:java打印api - 在300dpi打印JComponent

  1. 做了一個大的JFrame;寬度:2490px,高度:3515px所以它代表在1 A4紙:1次測量(這是A4紙的分辨率,如果打印是成爲300dpi的)

  2. 繪製40幅條形碼圖像上的contentPane該JFrame的

  3. 設置的打印屬性,以便將在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); 

此類有打印方法:

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); 
    } 

我需要有對A4片40頁的條形碼,每個尺寸48.5毫米×25.4毫米。 打印在紙上的是6個條形碼,每個條形碼的尺寸都增加了104mm×46mm(寬度幾乎是紙張寬度的一半),滿足了整個紙張的要求。

任何想法,我能做什麼錯?

+0

您是否找到解決方案? – MyTitle 2012-08-31 11:25:54

回答

0

您的分辨率可能被設置爲72 dpi,這會增加圖像的大小。