crystal 报告软连字符错误的解决方法

Workaround for crystal reports soft hyphen bug

我是 crystal 2013 年报告的新手,并且 运行 遇到软连字符错误(如 SAP Thread 中更详细的描述)。简而言之:软连字符不会出现在生成的 crystal 报告文件中(但我需要这个确切的字符来验证条形码,但它只显示在生成的 pdf 中)。

因为我需要 crystal 报告文件而不是 pdf,所以我正在寻找解决方法。我也尝试了上面 link 中提到的错误修复,但我必须在许多系统上进行此修复,所以它还不是最好的解决方案。

我考虑了以下解决方法:如果要创建 crystal 报告文件,程序应生成条形码文本的图像,并在适当的公式中用生成的图像替换条形码文本场地。

我想知道的是:

  1. 这个解决方法是否可行?
  2. 如果没有:还有其他更好的解决方法吗?
  3. 如果不是:您知道有效的错误修正吗?

编辑:

自发布问题以来,我尝试了一些方法:

  1. 我想,也许是机器相关的问题。我正在开发 Windows 8.1 Enterprise,它是德语版本。所以我试图在英语 windows 8.1 OS 上重新创建这个确切的问题。不幸的是,我得到了同样错误的条形码。所以这似乎不是机器相关的问题。

  2. 我使用 C# 以编程方式生成了一个带有 "Code128" 字体的字符串,并在我的机器上将其保存为 .png。它还将软连字符呈现为另一个字符 (unicode 172)。

问题是,barcode128 公式生成了一个校验和符号,对于确切的字符串,我在验证时遇到了问题,它生成了 173 个字符。所以我不能直接影响软连字符的使用,因为我需要它来进行验证。

终于找到答案了。我的条形码字体有问题 "Code128.ttf".

我对字体不是很了解,但经过一段时间后,我决定更改条形码字符的ascii码。所以我在字体编辑软件中打开字体并看到,实际上没有为软连字符存放的符号。这有点棘手,因为 windows 字符 table 和其他程序正在显示软连字符的替代字符。在我的例子中,它是日元字符(ascii 代码 165)。

要么使用其他条码128字体,要么必须使用字体编辑软件才能得到实际的字符布局。