问题背景:
我用一个程序产生了一个条形码,我想把这个条形码用专业的条码打印机来打印出来!因为专业的打印机需要有他特有的指令,现在的问题是不知道java打印程序怎么和打印机通信。 也就是说怎么把这些指令怎么传给条码打印机
这里的打印机是:TEC 条码打印机。
我把程序贴出来,大家帮我看看怎么解决这个问题[code]
public class PrintTest implements Printable {
public int print(Graphics gra, PageFormat pf, int pageIndex)
throws PrinterException {
Component c = null;
// 转换成Graphics2D
Graphics2D g2 = (Graphics2D) gra;
// 设置打印颜色为蓝色
g2.setColor(Color.BLUE);
// 打印起点坐标
double x = pf.getImageableX();
System.out.println(x+"初始化");
double y = pf.getImageableY();
System.out.println("x=" + x);
Image src = Toolkit.getDefaultToolkit().getImage(
"D:\\jboss+eclipse\\eclipse\\workspace\\javaTest\\barcode3.jpg");
// 这个得到这个图片的高度和宽度
int img_Height = src.getHeight(c);
int img_width = src.getWidth(c);
// 这里的意思就是图片在白纸上的坐标
g2.drawImage(src, (int) (x + img_width + 50),
(int) (y + img_Height + 50), c);
//PAGE_EXISTS = 0 是接口里定义的常量
return PAGE_EXISTS;
}
public static void main(String[] args) {
Book book = new Book();
// 设置成竖打
PageFormat pf = new PageFormat();
pf.setOrientation(PageFormat.PORTRAIT);
String str="sss";
// 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
//把页面大小传到pageformat对象里
Paper p = new Paper();
p.setSize(590, 840);// 纸张大小
p.setImageableArea(10, 10, 590, 840);// A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72
pf.setPaper(p);
// 把 PageFormat 和 Printable 添加到书中,组成一个页面
book.append(new PrintTest(), pf);
// 获取打印服务对象
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(book);
try {
job.print();
System.out.println("the page is printed");
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
我用一个程序产生了一个条形码,我想把这个条形码用专业的条码打印机来打印出来!因为专业的打印机需要有他特有的指令,现在的问题是不知道java打印程序怎么和打印机通信。 也就是说怎么把这些指令怎么传给条码打印机
这里的打印机是:TEC 条码打印机。
我把程序贴出来,大家帮我看看怎么解决这个问题[code]
public class PrintTest implements Printable {
public int print(Graphics gra, PageFormat pf, int pageIndex)
throws PrinterException {
Component c = null;
// 转换成Graphics2D
Graphics2D g2 = (Graphics2D) gra;
// 设置打印颜色为蓝色
g2.setColor(Color.BLUE);
// 打印起点坐标
double x = pf.getImageableX();
System.out.println(x+"初始化");
double y = pf.getImageableY();
System.out.println("x=" + x);
Image src = Toolkit.getDefaultToolkit().getImage(
"D:\\jboss+eclipse\\eclipse\\workspace\\javaTest\\barcode3.jpg");
// 这个得到这个图片的高度和宽度
int img_Height = src.getHeight(c);
int img_width = src.getWidth(c);
// 这里的意思就是图片在白纸上的坐标
g2.drawImage(src, (int) (x + img_width + 50),
(int) (y + img_Height + 50), c);
//PAGE_EXISTS = 0 是接口里定义的常量
return PAGE_EXISTS;
}
public static void main(String[] args) {
Book book = new Book();
// 设置成竖打
PageFormat pf = new PageFormat();
pf.setOrientation(PageFormat.PORTRAIT);
String str="sss";
// 通过Paper设置页面的空白边距和可打印区域。必须与实际打印纸张大小相符。
//把页面大小传到pageformat对象里
Paper p = new Paper();
p.setSize(590, 840);// 纸张大小
p.setImageableArea(10, 10, 590, 840);// A4(595 X 842)设置打印区域,其实0,0应该是72,72,因为A4纸的默认X,Y边距是72
pf.setPaper(p);
// 把 PageFormat 和 Printable 添加到书中,组成一个页面
book.append(new PrintTest(), pf);
// 获取打印服务对象
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(book);
try {
job.print();
System.out.println("the page is printed");
} catch (PrinterException e) {
e.printStackTrace();
}
}
}