我遇到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#" />
输出以下图像:
然而,这是我从Zing桌面程序中得到的:
以下是我从barcode-generator.org获得的信息:
现在,我对尺寸,缩放等没有任何问题。但是,您可以很容易地判断出烧烤生成的图像有很大不同 - 只需看看前几个条形图。
为什么会这样?这是烧烤虫还是我做错了什么?
答案 0 :(得分:1)
不确定这是&#34;答案&#34;本身,但是,当我更改代码以使用Code128C格式时,图像按预期出现。我只需要做一些调整大小就能达到我所需要的尺寸:
代码:
<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生成的图像。