水晶报表仅在本地显示条形码

4

我使用Crystal Reports在ASP.NET页面中显示.rpt文件。

当我在服务器上运行时,CR预览和嵌入CR查看器的WebPage(IE)都能显示报表中的条形码并且可以进行打印。(该条形码是一个名为Bar128AB( *BarTextIn*, *Subset* ) 的函数)

但是当我从另一台电脑或者在同一台服务器上使用其他浏览器(Firefox,Chrome)运行时,条形码会显示Bar128AB函数的输入字符串(BarTextIn),而不是函数的结果(最终的条形码)。

用于表示条形码的字体是Code 128AB HR,其具有限制的可嵌入性,但是对于将其导出为PDF来说不影响,只需要查看和打印即可。

  • 如何解决这个问题?
  • 如何让其他浏览器(Firefox,Chrome)在服务器上正确显示条形码?
  • 如何让另一台电脑正确显示条形码?

看起来CR使用自定义字体(仅安装在服务器上)和某种ActiveX对象(仅可在IE中使用)来显示条形码字体。您不能使用某种免费的条形码字体和自定义函数来准备使用该字体的数据吗?我们在本地(桌面应用程序中)已经做到了这一点,但是我们不幸没有网络查看器方面的经验。 - Arvo
@Arvo - Bar128AB函数是自定义的。我尝试了其他字体,结果都一样。 至于ActiveX,你可能对只在IE上正常工作而不在Firefox或Chrome上正常工作是正确的,但至少它应该在使用IE的客户端上工作。 - aknet
2个回答

1

为了正确显示条形码,您需要安装一些软件包。

  • 安装最新的水晶报表软件包
  • 安装字体的fsType值为0的补丁以实现安装

另外,根据这个主题,您可以尝试打印页面并查看条形码是否正常工作。


事实上,报告会打印条形码,即使在客户端的报告中没有显示。但只有在IE上。 按照您建议的安装CR Support Pack 13解决了在Firefox和Chrome(服务器和客户端)上显示条形码的问题,但它们无法打印。 使用TTFPATCH破解字体可以在其他浏览器上打印。但是,如果在安装破解字体后不重新启动服务器,则无法正常工作。 非常感谢您提供的解决方案! - aknet
在Firefox和Chrome上,打印按钮由于ActiveX而无法工作。因此需要编写适当的代码来检查浏览器。如果浏览器是IE,则PrintMode.ActiveX将继续完成工作,否则使用**ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "report");**将报告导出为PDF,然后打印它。 - aknet

0

尝试在另一台计算机上安装Code 128AB HR字体,然后在那里运行报告。
现在工作了吗?如果是的话,这意味着您的解决方案需要在任何客户端上安装该字体(我认为是这样的)。

如果您认为这不是适合您的正确解决方案,您可以转向JavaScript条形码工具(这是其中之一)。


我已经尝试在客户端安装字体,但没有任何结果。 您的JavaScript解决方案不可行,因为报告在IE上在服务器上工作,并且条形码是在.rpt文件上计算的。 应该有一个解决方案,使客户端可以使用正确形式的条形码调用报告。 - aknet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接