java打印api - 在300dpi打印JComponent
问题描述:
请告诉我,如果我做错了什么。我想打印条形码到标签上,所以我需要这些条形码的高质量打印输出,所以我推动打印机以300dpi打印。我做了什么:java打印api - 在300dpi打印JComponent
做了一个大的JFrame;宽度:2490px,高度:3515px所以它代表在1 A4纸:1次测量(这是A4纸的分辨率,如果打印是成为300dpi的)
绘制40幅条形码图像上的contentPane该JFrame的
设置的打印属性,以便将在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(宽度几乎是纸张宽度的一半),满足了整个纸张的要求。
任何想法,我能做什么错?
答
您的分辨率可能被设置为72 dpi,这会增加图像的大小。
您是否找到解决方案? – MyTitle 2012-08-31 11:25:54