2
我用下面的代碼來打印80毫米捲紙熱敏打印機上的一些文字上:打印的熱敏打印機的Java
public class printnow {
public static void printCard(final String bill) {
final PrinterJob job = PrinterJob.getPrinterJob();
Printable contentToPrint = new Printable() {
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
Graphics2D g2d = (Graphics2D) graphics;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
g2d.setFont(new Font("Monospaced", Font.BOLD, 7));
pageFormat.setOrientation(PageFormat.PORTRAIT);
Paper pPaper = pageFormat.getPaper();
pPaper.setImageableArea(0, 0, pPaper.getWidth() , pPaper.getHeight() -2);
pageFormat.setPaper(pPaper);
if (pageIndex > 0)
return NO_SUCH_PAGE; //Only one page
String Bill [] = bill.split(";");
int y = 0;
for (int i = 0; i < Bill.length; i++) {
g2d.drawString(Bill[i], 0, y);
y = y + 15;
}
return PAGE_EXISTS;
}
};
boolean don = job.printDialog();
job.setPrintable(contentToPrint);
try {
job.print();
} catch (PrinterException e) {
System.err.println(e.getMessage());
}
}
}
這是打印極其精細,是正是我想要的。但是,當我刪除以下行來禁用打印對話框並自動執行打印過程時,我的打印機出現混亂,打印機會在左側自動留出一些餘量。
boolean don = job.printDialog();
任何想法爲什麼會發生這種情況,它如何解決?
我有完全相同的問題,沒有得到答案。它是一個光柵rnp打印機? –
不是。這是Epson TM-T81。 –
即使如此嘗試使用我的代碼我有一個工作沒有打印對話框到普通打印機,但它沒有在我的工作,因爲它是一個ptr打印機。希望它有效。 http://stackoverflow.com/questions/17724784/printing-files-in-java-with-raster-ptr-printer –