为什么烧烤条形码库会生成与其他条形码生成器不同的图像?

时间:2015-02-04 21:45:11

标签: coldfusion barcode barbecue

我遇到Barbecue Barcode Library的问题。我正在尝试创建一个简单的code128条形码,但我获得的图像与我从其他在线(即http://barcode-generator.org)和桌面(即Zing)条形码生成器获得的图像不同。

以下是我正在使用的ColdFusion代码:

<cfscript>
    LOCAL.BarcodeData = "10047846";
    LOCAL.BarcodeFactory = CreateObject("java", "net.sourceforge.barbecue.BarcodeFactory");
    LOCAL.Barcode = LOCAL.BarCodeFactory.createCode128(LOCAL.BarcodeData);
    LOCAL.BarcodeImageHandler = CreateObject("java", "net.sourceforge.barbecue.BarcodeImageHandler");
    LOCAL.BarcodeBufferedImage = LOCAL.BarcodeImageHandler.getImage(LOCAL.Barcode);
    LOCAL.BarcodeImage = ImageNew(LOCAL.BarcodeBufferedImage);
    LOCAL.BarcodeImagePath =
        "C:\temp_\barcode-" & LOCAL.BarcodeData & ".jpg";
    ImageWrite(LOCAL.BarcodeImage, LOCAL.BarcodeImagePath, 1);
</cfscript>
<cfimage action="writeToBrowser" source="#LOCAL.BarcodeImagePath#" />

输出以下图像:

Barbecue-generated Barcode 10047846

然而,这是我从Zing桌面程序中得到的:

enter image description here

以下是我从barcode-generator.org获得的信息:

enter image description here

现在,我对尺寸,缩放等没有任何问题。但是,您可以很容易地判断出烧烤生成的图像有很大不同 - 只需看看前几个条形图。

为什么会这样?这是烧烤虫还是我做错了什么?

3 个答案:

答案 0 :(得分:1)

不确定这是&#34;答案&#34;本身,但是,当我更改代码以使用Code128C格式时,图像按预期出现。我只需要做一些调整大小就能达到我所需要的尺寸:

enter image description here

代码:

<cfscript>
    LOCAL.BarcodeData = "10047846";
    LOCAL.BarcodeFactory = CreateObject("java", "net.sourceforge.barbecue.BarcodeFactory");
    LOCAL.Barcode = LOCAL.BarCodeFactory.createCode128C(LOCAL.BarcodeData);
    LOCAL.Barcode.setDrawingText(false);
    LOCAL.Barcode.setDrawingQuietSection(false);
    LOCAL.Barcode.setBarWidth(1);
    LOCAL.Barcode.setBarHeight(30);
    LOCAL.BarcodeImageHandler = CreateObject("java", "net.sourceforge.barbecue.BarcodeImageHandler");
    LOCAL.BarcodeBufferedImage = LOCAL.BarcodeImageHandler.getImage(LOCAL.Barcode);
    LOCAL.BarcodeImage = ImageNew(LOCAL.BarcodeBufferedImage);
    LOCAL.BarcodeImagePath =
        "C:\temp_\barcode-" & LOCAL.BarcodeData & ".jpg";
    ImageWrite(LOCAL.BarcodeImage, LOCAL.BarcodeImagePath, 1);
</cfscript>
<cfimage action="writeToBrowser" source="#LOCAL.BarcodeImagePath#" />

答案 1 :(得分:0)

看起来图像的条宽比示例大。将条宽设置为1像素。在生成条形码之前添加LOCAL.Barcode.setBarWidth(1);

<cfscript>
  LOCAL.BarcodeData = "10047846";
  LOCAL.BarcodeFactory = CreateObject("java", "net.sourceforge.barbecue.BarcodeFactory");
  LOCAL.Barcode = LOCAL.BarCodeFactory.createCode128(LOCAL.BarcodeData);
  LOCAL.Barcode.setBarWidth(1); // decrease the width of the bars
  LOCAL.Barcode.setBarHeight(50); // if you want a taller barcode like the examples
  LOCAL.BarcodeImageHandler = CreateObject("java", "net.sourceforge.barbecue.BarcodeImageHandler");
  LOCAL.BarcodeBufferedImage = LOCAL.BarcodeImageHandler.getImage(LOCAL.Barcode);
  LOCAL.BarcodeImage = ImageNew(LOCAL.BarcodeBufferedImage);
  LOCAL.BarcodeImagePath = gettempDirectory()& "\barcode-" & LOCAL.BarcodeData & ".jpg";
ImageWrite(LOCAL.BarcodeImage, LOCAL.BarcodeImagePath, 1);
</cfscript>

答案 2 :(得分:0)

我用条形码扫描仪扫描它,所有三个图像都读取相同的字符串&#34; 10047846&#34;。对于条形码,我使用CFBarbecue(http://cfbarbecue.riaforge.org/),一个用于烧烤的ColdFusion包装。使用相同的字符串,下面是我能够使用CFBarbecue生成的图像。

enter image description here