Java打印程序连续打印走纸相当严重,高手帮忙解决,急。
下面有本人一段小程序,要实现连续打印,(类似打汽车票的业务)打印第一页内容的时候,没有任何问题,但是会走很长一段空白才开始打印第二页的内容,
第二页的起始位置实际打印在第二张纸的最下方。
public static void main(String[] args)
{
//PrintContent 是一个类
PrintContent p = new PrintContent();
PrinterJob printerJob = PrinterJob.getPrinterJob();
PageFormat page_format = new PageFormat();
//EMS 的单子尺寸240MM * 153 MM
Paper paper = new Paper();
double unit = 72 / 25.4;
paper.setSize(240 * unit, 153 * unit);
paper.setImageableArea(0, 0, 240 * unit, 153 * unit);
page_format.setPaper(paper);
printerJob.setPrintable(p, page_format);
try {
PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet();
attributes.add(new MediaPrintableArea(0f, 0f, (float) (240 / 25.4), (float) (153 / 25.4), MediaPrintableArea.INCH));
printerJob.print(attributes);
} catch (PrinterException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
public class PrintContent implements Printable
{
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException
{
//打两张
if (pageIndex > 1) {
return NO_SUCH_PAGE;//停止打印。
}
String print_value = "Hello world";
graphics.drawString(print_value, 100, 55);
return PAGE_EXISTS;
}
}