Delphi 如何最好地解决销售点的收据打印问题

Delphi 如何最好地解决销售点的收据打印问题,delphi,point-of-sale,receipt,Delphi,Point Of Sale,Receipt,我已经用delphi开发了一个销售点应用程序,但剩下最后一个软件,现金收据的打印。我在die应用程序中的大多数报告都使用了Rave报告,并尝试使用Rave报告来生成收据。我使用Rave报告的唯一问题是我不知道如何控制页面提要,我想强制Rave提供一个连续的页面提要,否则它会打印一个部分,然后停止打印提要某些页面,然后继续打印,在收据上留下一个大的空白。因此,无论如何,是否有强制或管理与rave或delphi的送纸 然后是另一个问题,关于问题的替代解决方案: 有没有一种方法可以用来打印TMemo的

我已经用delphi开发了一个销售点应用程序,但剩下最后一个软件,现金收据的打印。我在die应用程序中的大多数报告都使用了Rave报告,并尝试使用Rave报告来生成收据。我使用Rave报告的唯一问题是我不知道如何控制页面提要,我想强制Rave提供一个连续的页面提要,否则它会打印一个部分,然后停止打印提要某些页面,然后继续打印,在收据上留下一个大的空白。因此,无论如何,是否有强制或管理与rave或delphi的送纸

然后是另一个问题,关于问题的替代解决方案:

有没有一种方法可以用来打印TMemo的内容?然后我可以把所有买来的东西都放进TMemo,然后像那样发送出去?这是个好主意吗


我正在使用Delphi XE2

嗯,这里有一些选项

  • 继续使用您所在的路径(报表编写器等),该路径将输出到收据打印机打印驱动程序,然后再输出到windows打印系统

  • 使用Zebra或其他打印机,并向其发送打印机本机命令(Zebra具有ZPL语言)。这将为您提供%100控制,它将绕过windows打印。但是,您将只支持某些打印机型号


我知道这并不能真正帮助您,但我使用FastReport作为收据,它就像一个符咒。页面配置中有一个特殊的“无限长”页面,因此rave reports中可能也有类似的内容


考虑切换到FR(这是值得的)。

如果您正在寻找快速报告的替代方案,您可能应该签出或ESC/POS(爱普生标准)

OPOS更像是一个完整的打印解决方案,它负责连接到打印机并发送打印作业(在大多数情况下是通过窗口购买)。其中as ESC/POS是附加到原始文本的一组格式化命令,用于将原始文本输出到打印机

它们是控制POS打印机的行业标准,因此市场上的大多数收据打印机支持其中一种或另一种(大多数在某种程度上支持这两种),它们具有控制/输入页面、剪切纸张和打开现金提取(如果连接到打印机)的标准方法

我已经在Delphi应用程序中使用了这两种方法,您可以轻松地在TMeno中迭代使用这两种方法将数据发送到打印机。如果使用ESC/POS,则可以使用Delphi的
AssignFile
AssignPrn
命令连接打印机


缺点是它们一开始可能有点棘手,在格式方面也有点限制,但如果您有一台合适的收据打印机,它们的打印速度必须比使用本机Windows打印方法快。

我认为购买一台特殊打印机不是一个好的建议。除了zhat之外,ZPL还很酷:我使用免费设计器使用占位符(“$price$”)创建打印机模板,将设计器的输出发送到文本文件,在运行时,我只需用实际值替换占位符。