I writ java code for Thermal Printing in java i have tested it on local machine only using microsoft xps document writer and work perfectly ,but when i use Xprinter XP-F900 printer i get the next error
Printer is not accepting job on
full code:
public class printThisBill {
public static void printCard(final String bill) {
Printable contentToPrint = new Printable() {
@Override
public int print(Graphics graphics, PageFormat pageFormat, int page)
throws PrinterException {
if (page > 0) {
return NO_SUCH_PAGE;
}
pageFormat.setOrientation(PageFormat.LANDSCAPE);
Graphics2D g2d = (Graphics2D) graphics;
g2d.translate(pageFormat.getImageableX(),
pageFormat.getImageableY());
g2d.setPaint(Color.black);
g2d.setFont(new Font("Arial", Font.BOLD, 10));
int y = 15;
Font f = new Font(Font.SANS_SERIF, Font.PLAIN, 8);
graphics.setFont(f);
for (int i = 0; i < Tbill.length; i++) {
graphics.drawString(Tbill[i], 5, y);
y = y + 15;
}
return PAGE_EXISTS;
}
};
PrinterService ps = new PrinterService();
PrintService pss = null;
PrinterJob job = null;
// get the printer service by printer name
// first test if printer defind by the use search on db
String query = "SELECT * FROM printer WHERE id_printer=1";
conn = DBconnect.connectDB();
if (db.TestIFex(query, conn)) {
Statement sqlState = null;
ResultSet rows = null;
try {
sqlState = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
ResultSet.CONCUR_READ_ONLY);
rows = sqlState.executeQuery(query);
String printer_name = rows.getString(2);
pss = ps.getCheckPrintService(printer_name);
job = PrinterJob.getPrinterJob();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
sqlState.close();
rows.close();
} catch (Exception e) {
}
}
} else {
job = PrinterJob.getPrinterJob();
pss = job.getPrintService();
}
try {
job.setPrintService(pss);
} catch (PrinterException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
job.setPrintable(contentToPrint);
try {
job.print();
} catch (PrinterException e) {
System.err.println(e.getMessage());
}
}
}