2009-08-20 124 views
2

在使用Java打印条形码标签的写入方向上是否有人指向某个点?我可以使用烧烤库(http://barbecue.sourceforge.net/)将它们生成条形码作为图像,但我需要一种方法将图像(和人类可读标题)放入Avery文档模板中进行打印。Java打印条形码标签

+0

您是如何从“使用Java打印......”到“Avery文档模板”的? – 2009-08-20 15:24:53

回答

3

iText库支持几乎所有可以想象的条形码。您可以生成PDF并将其保存或内部打印。

0

您是否尝试过打印“烧烤”图片?

+0

我可以打印它,但无法打印到模板上的特定位置(至少我知道)。 – 2009-08-20 13:50:50

1

我想你会用尺子来衡量你的艾利标签页,然后在Java代码中,你必须创建一个完整的Letter/A4 /任何网页打印和网页的上抵消你的条码图像根据您对尺子的测量值确定合适的位置。

+0

艾利公司经常使用,因为它是标准尺寸。这些数字应该写在某个地方,但无论如何,测量它们应该是可行的! – Karl 2009-08-20 17:49:22

2

我用java打印条形码,但我使用具有打印条形码预编程功能的打印机。所以我只告诉打印机要打印哪些代码,剩下的就是这些。如果您愿意为打印机付费,可能会为您节省一些时间。

这对您可能有用或不用,但我想我会提及它。

3

我建议使用barcode4j库,而不是烧烤2个原因:

  1. 烧烤条形码对象被不必要地耦合到Java UI组件(例如条形码类扩展JComponent的)。如果未使用Java UI,则会产生不必要的依赖关系,例如,适用于批处理或命令行应用程序。如果他们想要在Java UI中使用他们的条形码类,他们应该使用聚合而不是继承。

  2. Barcode4J看起来是目前支持的 - 发布版2.0和版权日期是2012

然后你有翻译条码成打印机能够理解的格式的问题。为此,我建议openlabelprint.org (这是我写的!) - 这是一个使用barcode4j并提供了另一个开源项目:

  • 设施定义使用标签布局SVG(可缩放矢量图形 - 一个开放的W3C标准)和

  • 光栅化从barcode4j的SVG的位图(和SVG周围的标签布局)(openlabelprint适用于光栅化的优秀的Apache SVG蜡染的Java库以及其他SVG任务)

  • printi使用ZPL低级语言的Zebra打印机上的位图。 openlabelprint具有内置的实用程序,可将png位图转换为ZPL,并通过标准Java打印机系统将其发送给Zebra打印机。此外openlabelprint提供的API来扩展其用于其它打印机语言虽然ZPL是由一些非斑马品牌

0

你应该尝试JZebra这是一个小程序,并为你一个很好的起点支持,一起来看看在Java源代码。

http://code.google.com/p/jzebra/

对于斑马你这个简单的指南将帮助您。 在此斑马命令

N 
q609 
Q203,26 
B26,26,0,UA0,2,2,152,B,"777777" 
A253,56,0,3,1,1,N,"JHON3:16" 
A253,26,0,3,1,1,N,"JESUSLOVESYOU" 
A253,86,0,3,1,1,N,"TEST TEST TEST" 
A253,116,0,3,1,1,N,"ANOTHER TEST" 
A253,146,0,3,1,1,N,"SOME LETTERS" 
P1,1 

上JZebra

 var applet = document.jzebra; 
    if (applet != null) { 
applet.append("N\n"); 
applet.append("q609\n"); 
applet.append("Q203,26\n"); 
applet.append("B26,26,0,UA0,2,2,152,B,\"777777\"\n"); 
applet.append("A253,56,0,3,1,1,N,\"JHON3:16\"\n"); 
applet.append("A253,26,0,3,1,1,N,\"JESUSLOVESYOU\"\n"); 
applet.append("A253,86,0,3,1,1,N,\"TEST TEST TEST\"\n"); 
applet.append("A253,116,0,3,1,1,N,\"ANOTHER TEST\"\n"); 
applet.append("A253,146,0,3,1,1,N,\"SOME LETTERS\"\n"); 
applet.append("P1,1\n");} 

有明确的这样的:

EPL是每行一个命令。一个命令从一个命令标识符开始,通常是一个字母,后跟一个逗号分隔的特定于该命令的参数列表。您可以在EPL2编程文档中查找每个命令。在上面的例子中,这是一个英文版本的命令。

  1. 发送初始换行符可确保提交任何以前执行的borked命令 命令。
  2. [N]清除图像缓冲区。这是重要的一步,并且通常应该是任何EPL文档中的第一个命令; 谁知道以前的作业留下打印机的状态。
  3. [q]将标签宽度设置为609点(3英寸标签x 203 dpi = 609点宽)。
  4. [Q]将标签高度设置为203点(1英寸标签),标签之间的点距为0. 。 (打印机可能会自动识别,但不会造成伤害。)
  5. [B]绘制一个值为“777777”的UPC-A条形码为 x = 26点(1/8英寸),y = 26个点(1/8英寸)和一个窄条,宽度为2点,并使其高度为152点(3/4英寸)。 (该 原点标签的坐标系是将标签的左上角 。)
  6. [A]绘制文本 “JESUSLOVESYOU” 在 X = 253点(3/4英寸),Y = 26个点( 1/8英寸) 打印机字体“3”,正常的水平和垂直缩放, 和没有花哨的白色黑色效果。

所有这一切起始行都是类似的。 10. [P]打印一个标签的一个副本。