2

我需要使用 ac# windows 窗体在 Crystal Report 中打印 Barcode128。输入字符串是这样的:

123456-abcdef-abc

我使用barcode.dll 构建格式化的128barcode:

string encodedText = BarCode.BarcodeConverter128.StringToBarcode("123456-abcdef-abc");
string path = @"D:\Projects\mypath\myreport.rpt";
ReportDocument cryRpt = new ReportDocument();
cryRpt.Load(path);

cryRpt.SetParameterValue("@inputString", encodedText);
crystalReportViewer1.ReportSource = cryRpt;
crystalReportViewer1.Refresh();

在 crystalReportViewer1 中,文本框字体为“Code 128”

它显示条形码,但无法从任何条形码阅读器读取。怎么了?

这是生成的条形码:

条码

图片更新了!同样的问题。

提前感谢您的帮助。

4

2 回答 2

1

你有我所说的“模糊代码”。Crystal Reports 中的软件正在尝试使用抗锯齿使您的图像看起来更平滑。我担心的另一个问题是,即使图像被锐化,由于条形和空格的宽度错误,它也不会扫描。

这是您的条形码放大图像和代码 128B 中表示的字符串的清晰图像叠加。条和空格不对齐。换句话说,即使您附加图像中的符号更清晰,您甚至可能有一个不可读的条形码。我怀疑您的条形码可能只显示整个条形码的右半部分,而左半部分被一些不够宽的边界框截断。您的barcode.dll 也可能在前6 个字符上使用Code 128C 来保存条形码宽度中的两个字符,因为即使您缩放顶部条形码以按字符排列,校验和字符似乎也不匹配。

123456-abcdef-abc 使用在线生成器

我对 Microsoft 技术知之甚少,因此我无法帮助您,只能说您可能想尝试将字体制作得非常大并缩放页面以查看是否可以解决抗锯齿问题。

我希望您可以在 Crystal Reports 中打开一个开关,让它停止自动抗锯齿,然后修复边界框问题。

于 2018-05-11T11:55:49.190 回答
1

这是一张图片,展示了 Crystal Report UFL 如何在不依赖任何字体的情况下呈现条形码。UFL 动态生成图像并将图像对象图形位置表达式定向到生成的图像文件。 条码图像通过 CUT Light UFL 生成为图像

于 2018-05-12T14:00:20.953 回答