如何将控制字符发送到Crystal Reports中的Windows打印机?

我们正在尝试构build一个Crystal报表,将控制字符直接发送到打印机,而无需通过该打印机的(错误的)Windows驱动程序。 有没有人知道从水晶报告内做到这一点的方法?

我们试图发送的具体控制字符是CHR(2)。 然而,当我们把它放在水晶报表中,并打印到通用文本打印机时,它会将字符转换为输出期间。 该字符在Crystal的预览中显示为一个框,所以我怀疑这是Windows驱动程序,而不是Crystal,这就是问题所在。

该设备是Datamax打印机。 我们确实有驱动程序,但遇到各种各样的问题 – 基础设施小组比我更了解这些问题,我不觉得有足够的信息去尝试并询问具体的问题。 这是Crystal Reports,Citrix和我们特定于市场的ERP软件包的相互作用的结合,并且在报告运行时根据用户自动select适当标签大小的标签打印机。

Solutions Collecting From Web of "如何将控制字符发送到Crystal Reports中的Windows打印机?"

简短的回答是你不能。 最后,这是因为像Crystal这样的应用程序只能在GDI级别进行说话,并将这些数据传递给打印机驱动程序,以便转换为PCL / PS等,并传递到打印机。

这是什么类型的设备? 你想达到什么目的?

如果有一个驱动程序可以使用,但不是该设备的特定驱动程序,则可以使用该驱动程序。 另一个有点“黑客”的选择是使用迷你驱动程序开发套件,并建立自己的。 我们已经为客户完成了这项工作,我们将自己的代码插入到自定义尺寸的纸张中,在指定的信纸大小的位置处理不支持自定义纸张大小的应用程序,或者使用我们需要访问的特殊字体。 此外,还有一些打印机允许您将转义字符更改为其他内容,具体取决于您的设备可能工作,或建立一个后处理,您打印到文件,文件被拾取,通过查找修改打印文件一些特殊的语法你输入和传递文件…痛苦,但可以做的伎俩。

通常,您无法将转义字符直接从Crystal Reports发送到打印机。

如果您在报告的开头或结尾只需要特殊字符(如为POS打印机打开纸张或抽屉),则可以使用“通用打印机驱动程序设备”选项并描述“开始”或“结束作业”序列。

我个人总是发现一些工作(或兼容)驱动程序的任何打印机(什么是您的打印机型号,BTW?)。 对于POS打印机,驱动程序通常包含特定的“字体”,允许直接发送转义序列。