Java打印条形码标签

Java打印条形码标签,java,templates,printing,label,barcode,Java,Templates,Printing,Label,Barcode,有人能指出使用Java打印条形码标签的正确方向吗?我可以使用烧烤库()将它们生成为图像的条形码,但我需要一种方法将图像(以及人类可读的标题)放入Avery文档模板中进行打印。您是否尝试过打印从“烧烤”中获得的图像?我认为您必须使用标尺测量Avery标签页,然后在Java代码中,您必须创建一个完整的字母/A4/任何页面,以打印该页面上的条形码图像,并根据您使用标尺的测量将其偏移到适当的位置。我使用java打印条形码,但我使用的打印机具有打印条形码的预编程功能。所以我只告诉打印机要打印什么代码,其余

有人能指出使用Java打印条形码标签的正确方向吗?我可以使用烧烤库()将它们生成为图像的条形码,但我需要一种方法将图像(以及人类可读的标题)放入Avery文档模板中进行打印。

您是否尝试过打印从“烧烤”中获得的图像?

我认为您必须使用标尺测量Avery标签页,然后在Java代码中,您必须创建一个完整的字母/A4/任何页面,以打印该页面上的条形码图像,并根据您使用标尺的测量将其偏移到适当的位置。

我使用java打印条形码,但我使用的打印机具有打印条形码的预编程功能。所以我只告诉打印机要打印什么代码,其余的都由它来完成。如果你愿意支付打印机的费用,这可能会为你节省一些时间


这可能对你有用,也可能没用,但我想我应该提一下

iText库支持几乎所有种类的条形码。您可以生成PDF,然后保存它们或在内部打印它们。

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

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

  • Barcode4J看起来目前受支持-版本2.0已发布,版权日期为2012年

  • 然后,您会遇到将条形码转换为打印机能够理解的格式的问题。为此,我建议使用openlabelprint.org(我写了!)——这是另一个使用barcode4j的开源项目,它提供:

    • 使用SVG(可缩放矢量图形-开放的w3c标准)和

    • 将barcode4j中的SVG位图光栅化(以及SVG中的周围标签布局)(openlabelprint将优秀的Apache SVG Batik Java库应用于光栅化以及其他SVG任务)

    • 使用ZPL低级语言在Zebra打印机上打印位图。openlabelprint有一个内置实用程序,用于将png位图转换为ZPL,并通过标准Java打印机系统将其发送到Zebra打印机。此外,openlabelprint还提供了API,以将其扩展到其他打印机语言,尽管一些非Zebra品牌支持ZPL


    您应该试试JZebra,这是一个小程序,对您来说是一个很好的起点,请查看java源代码

    对于斑马你,这个简单的指南将帮助你。 斑马在这上面发号施令

    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编程文档中查找这些命令。下面是上述示例中命令的英语版本

  • 发送初始换行可以保证任何以前的换行 命令已提交
  • [N] 清除图像缓冲区。这是一个重要的步骤和步骤 通常应为任何EPL文件中的第一个命令; 谁知道上一个作业使打印机处于什么状态
  • [q] 将标签宽度设置为609点(3英寸标签x 203 dpi =609点宽)
  • [Q] 将标签高度设置为203点(1英寸标签),使用26 标签之间的点间距。(打印机可能会自动打印- 有道理,但这并不伤人。)
  • [B] 在以下位置绘制值为“777777”的UPC-a条形码: x=26点(1/8英寸),y=26点(1/8英寸),带窄条 2点的宽度,并使其高152点(3/4英寸)。(修订) 标签坐标系的原点位于左上角 (在标签上)
  • [A] 在以下位置绘制文本“JESUSLOVESYOU” x=253点(3/4英寸),y=26点(1/8英寸) 打印机字体“3”,正常水平和垂直缩放, 而且没有花哨的黑白效果
  • 所有tha的起跑线都是相似的。
    10[P] 打印一份标签。

    我可以打印,但无法打印到模板上的特定位置(至少我知道)。从“打印…使用Java”到“Avery文档模板”,你到底是如何做到的?他们经常使用Avery company,因为它是标准尺寸的。这些数字应该为你写下来,但无论如何,测量它们应该是可行的!