1

我使用通用纯文本驱动程序将文本打印到点阵打印机中,并且我设法在 135 个字符宽的纸张上为每个空打印字符使用一个空格字符来对齐纸张列上的数据。这适用于 10CPI,因为数据位于它们应该在的列中,但如果用户选择其他字符大小(例如 17CPI)则不会。在后一种情况下,对齐被保留,但数据不在预期的位置。例如,一个字符应该在该行的第 120 个位置(第 120 个字符),而在 10CPI 上它确实打印在那里,接近行尾,在 17CPI 上它打印在纸的中间。

我知道发生这种情况是因为我在列之间使用的实际空格字符在 17CPI 上较小。

所以,我的问题是:

1) 每当音高大于 10CPI 时,我是否应该继续使用多个空格字符?我可以对此进行测试,但这似乎不是一个好习惯。或者我应该尝试使用适当的 esc 命令使用绝对水平位置?但是,根据 escp2 手册,不建议这样做。

2)我应该在发送到打印机的每行数据的字符串中发送 \r\n 还是应该只发送数据行并在其末尾发送 escp2 命令 CR?

提前致谢。

4

1 回答 1

0

1)好吧,我得出的结论是,无论最终用户选择的字符间距(CPI)如何,实际上都无法构建适合页面的数组。这是指预打印的折叠纸。一旦用户决定更改 CPI,他们就应该重新配置每行内文本的位置,这意味着他们需要重新配置列距离。我通过在设置部分为我要打印的每个文本提供行号和该行内的位置来为用户提供这样的功能。

2)我最终做了第二个。我创建了一个二维数组并发送每一行,后跟一个 CR 和一个 LF escp 命令。

于 2014-05-23T19:08:02.250 回答