我使用Tprinter来控制打印的,也碰到过打印走纸问题,
我是这样解决的。
第一我们必须了解Tprinter是如何控制分页的,A new page is automatically
started if a CR is encountered on (or a Writeln is written to) the last
line on the page.--这个是delphi的原文注释,就是说,当你需要打印的数据里面
包含一个 CR (就是换页符号,#12),打印机会自动换页,(如果你是驱动打印,你不用
输出CR到打印机,打印机也会自动在到达最大行数---这个和打印机的纸张设置有关系
--时候自动换页。)
第二,用Tprinter有2种打印的方法,一种是先把打印的数据放到临时的list或一个容器
里,这样可以造成一种预览效果,然后从容器里,把数据一条一条打印出来。另一种是
直接将文本文件中的内容送到打印机输出的方式。
对于中断打印,第一种方法,必须计数,然后在输出到每页最大行数(自己设定,需要和打印
页面大小一起考虑)时候,手工插入一行数据,内容---'#12';第二种方法,就需要对文本的
内容进行重排,生成临时文件,copy数据,然后在文本里每最大行数插入一行#12,然后把文本
直接输出,不过只要是中断打印,打印完后,必须加 #12,否则,打印机打完后就停在最后一行。
对于驱动,打印机自动会在打印到页面设置对应的最大行数时候,自动换页,而且打完后,
也自动换页。