该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-06-06
我用一个程序产生了一个条形码,我想把这个条形码用专业的条码打印机来打印出来!因为专业的打印机需要有他特有的指令,现在的问题是不知道java打印程序怎么和打印机通信。 也就是说怎么把这些指令怎么传给条码打印机 这里的打印机是:TEC 条码打印机。 我把程序贴出来,大家帮我看看怎么解决这个问题 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(); } } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-06-06
随便打印就行了. 我们以前的做产品的条码都是直接出片就行了, 不需要用专门的条码打印机的.
|
|
返回顶楼 | |
发表时间:2007-06-06
谢谢上面的回复!但我现在情况就是:公司必须要使用专业的打印级,我用普通的打印机是可以打印出来的,但我现在还没有测试我打印出来的条形码能不能被扫描枪识别!大家有没有思路,或者程序片断?请大家!
再次谢谢! |
|
返回顶楼 | |
发表时间:2007-06-06
用 JNI 调用打印机的 DLL 库,自己完全用 Java 做太费时了。
|
|
返回顶楼 | |
发表时间:2007-06-06
谢谢上面的回复!不是很明白,能不能说的详细点呢?
开发背景是这样的: 仓库当有一批货进来后,把每个货的信息用条形码的形式表现出来,然后这批货所有的信息打在一个lable上,并打印出来!! |
|
返回顶楼 | |
发表时间:2007-06-06
liuwangxia,你好 !我刚才看了一些JNI的知识,感觉头很晕,具体有什么思路呢,我现在只是了解下JNI是什么,做什么用的,其他的还不明白,能不能给我讲一下究竟怎么做? 思路!
|
|
返回顶楼 | |
发表时间:2007-06-06
你可以把条码打印机当做普通的打印机使用。
如果你要用java程序直接和条码机通信,那么你就要看他们有没有提供通信接口给你,如果有那么你可以用jni来实现了。:) |
|
返回顶楼 | |
发表时间:2007-06-06
cryboy2007 写道 谢谢上面的回复!不是很明白,能不能说的详细点呢?
开发背景是这样的: 仓库当有一批货进来后,把每个货的信息用条形码的形式表现出来,然后这批货所有的信息打在一个lable上,并打印出来!! 这个就是相当于我们平时见到的牌子(新衣服都有的),我们也有类似的需求,我们是B/s架构,直接用html搞定(它去调用打印机) |
|
返回顶楼 | |
发表时间:2007-06-06
呵呵,谢谢大家的回复!
通过大家的讨论,我又学到了一些知识: 如果用java 去实现打印条码是没有问题的! 但如果用java打印程序和专业的打印机去通信,我还是没有找到方法!如果不用专业的打印机,则完全可以实现这个功能!但公司现在必须要用专业的打印机,就不的不寻找其他方案! 我准备这样做: 根据liuwangxia 的提示 用JNI 来调用一个vc的 dll来做这个功能。但我又不熟悉vc ,希望懂VC的朋友以后多多帮忙(毕竟多了解一些语言对丰富自己的知识面是很有帮助的)! 等我把这个功能做好了,我把源程序贴出来让大家看看!多交流下! 再次感谢大家,如果用java可以做到,可以继续讨论,我也密切关注中,只不过现在老大催的紧,没有时间来想了!请大家继续踊跃发表自己的意见,来让大家通过进步! |
|
返回顶楼 | |
发表时间:2007-06-19
老大,最终如何实现的啊???
|
|
返回顶楼 | |