反向换行或其他解决方案,用于连续输出不同步(矩阵)

时间:2010-02-18 07:03:27

标签: delphi printing

我使用连续的5“表格(预印)与我的发票申请表,似乎许多矩阵打印机不支持这5”表格长度。现在关键的问题是,在打印一个表单时,需要抛出另外两个表单以及换行符,因为FF代码导致连续表单不同步。我需要保持表单同步,以便下次软件打印到正确的位置。

我想知道反向换行是否可以解决这个问题,例如如果我的软件足够LF,那么它可以撕掉,并显示一个对话框,然后反向换行。

我的问题是,如何使用panasonic和epson打印机反转换行,还是有其他推荐的解决方案?

请注意,我使用Raw(文本输出)打印。

2 个答案:

答案 0 :(得分:2)

如果应用程序是Windows应用程序(从Windows打印机驱动程序访问打印机),您的打印机属性应该允许您定义纸张格式,包括“用户定义的”(例如,请参阅Epson lx300+ documentation)。 这可能会改变换页的效果。

如果您的应用程序以文本模式运行打印机并使用ESC / P字符模式序列,则可以使用转义序列定义表单长度(以行为单位)。查看ESC / P用法应该可以帮助您将正确的序列发送到打印机。 ESC / P信息can be found here

更具体地说,您可能需要的序列是:

27 67 n     ESC C n     Select page length in lines (n=1..127)
27 67 48 n  ESC C 0 n   Select page length in inches (n=1..22)

(但还有更多功能)

答案 1 :(得分:0)

使用一些非常古老的DOS / Foxpro时代的记忆,您可以只记录打印的行数,然后使用正确数量的LF移动到下一页。

您也可以使用ESC C n设置表格长度,其中n是行数。 See Epson printer control codes here由于每英寸的默认行数为6,您希望发送6 * ​​5,即30

这样的东西
write(prt, $27'C', $30);

应该做的伎俩

Panasonic的基本控制代码与Epson类似。我还记得一些松下打印机可以自动弹出纸张撕下来,然后在下一个打印作业开始后倒带。