打印到点阵打印机

本文关键字:点阵打印机 打印 | 更新日期: 2023-09-27 17:59:49

我正在使用此代码将rdlc报告打印到点阵打印机。该报告采用票据收据的格式。我想要的是,打印机应该完全停在收据打印完毕的地方(即要打印的文本的末尾),而不是把剩下的纸收进去,什么也不打印。

由于要打印大量收据,可能会排起长队,如果最终用户必须将纸张(已浪费)重新装入打印机,这将非常耗时。因此,我正在寻找一种方法,一旦要打印的文本完成,打印机就可以停止进纸。

打印到点阵打印机

听起来您想要的是如何将收据打印为连续流,而不是逐页打印。您链接到的代码完全是页面驱动和面向页面的。您可以在页面主导的视图系统中工作,但您将不得不做额外的工作。

通过更改PrintPage代码以每页输出多个图像块,您应该能够在一个页面上打印多个内容。您必须管理每个矩形的偏移量,才能将第二个图像放置在第一个图像下方,并且您必须弄清楚您想对下一个报告页面做什么。当前页面上的剩余空间不适合下一个页面。我预计输出将被剪切到当前页面,因此如果在页面边界之外(超过页面末尾)绘制,则不会输出任何内容。

当下一个报表图像不适合当前页面的剩余空间时,您可以选择前进到下一页。

或者,您可以打印本页所需的内容,然后将该报告图像的其余部分打印在下一页的顶部。为此,您需要计算第1页上剩余空间与报表图像矩形的交点,并保存该交点的高度。结束页面。当第2页滚动时,再次打印相同的报告图像,但这次将输出矩形偏移上一页上打印的矩形的高度。这是假设剪切矩形已经在打印设备手柄上就位(这很可能)。

这样将报告拆分为多页的缺点是,最终可能会出现在多页之间剪切或拆分的图形甚至文本行。这些将很难阅读。如果你知道字体高度和行距以及报告的布局方式,我想你可以对文本行在输出矩形中的位置进行计算猜测,并将输出矩形四舍五入到最接近的行高度的整数倍,但这已经进入了一个混乱的领域。