我们正在尝试构建一个Crystal控件,直接将控制字符发送到打印机,而无需通过该打印机的(错误)Windows驱动程序。有没有人知道在Crystal Report中做到这一点的方法?
我们尝试发送的特定控制字符是CHR(2)。但是,当我们将它放入Crystal Report并打印到Generic Text Only打印机时,它会将字符转换为输出时段。该字符在Crystal的预览中显示为一个框,因此我怀疑它是Windows驱动程序,而不是Crystal,这就是问题所在。
该设备是Datamax打印机。我们确实有它的驱动程序,但遇到了各种各样的问题 - 基础设施组比我更了解问题,我觉得我没有足够的信息来尝试询问具体问题。它是Crystal Reports,Citrix,我们针对特定市场的ERP软件包的相互作用的一种组合,并在报告运行时根据用户自动选择适当标签大小的标签打印机。
答案 0 :(得分:0)
通常,您无法从Crystal Reports直接将转义字符发送到打印机。
如果您只需要在报告开头或结尾处使用特殊字符(例如剪纸或POS打印机的抽屉打开),则可以使用通用打印机驱动程序设备选项并描述开始或结束作业序列。
我个人总是为任何打印机找到一些工作(或兼容)驱动程序(什么是您的打印机型号,BTW?)。对于POS打印机,驱动程序通常包含特定的“字体”,允许直接发送转义序列。
答案 1 :(得分:0)
简短的回答是你做不到的。到底这是一个由于所有应用像水晶只在GDI水平,掌握了这些数据说话的打印机驱动程序转换为PCL / PS等,并传递到打印机的事实。
这是什么类型的设备?你想要完成什么?
如果有可用的驱动程序但不是设备的特定驱动程序,则可以使用该驱动程序。另一个选择,有点'hacky',是使用迷你驱动程序开发工具包并构建自己的。我们已经为客户插入了我们自己的代码,例如自定义尺寸的纸张,其中指定了字母大小以解决不支持自定义尺寸纸张的应用程序或者我们需要访问的特殊字体。此外,有些打印机允许您将转义字符更改为其他内容,具体取决于您可能正常工作的设备或构建一个后期处理,您可以打印到文件,拾取文件,通过查找来修改打印文件你输入的一些特殊语法并传递文件...痛苦,但可以做到这一点。