c# - 在卷纸上打印

标签 c# .net printing crystal-reports gdi

我正在使用 C# 和 Winforms。我正在尝试在纸卷上打印账单。纸张的宽度为 3 英寸,但纸张的长度是动态的(它是卷纸)。长度取决于列表中有多少项。例如。在一次购买中,如果售出 100 件商品,那么它会很长,而对于购买的单个商品,它的长度会很短。

当我打印报告时,在结束作业后,打印机弹出的最后一页超出了我的需要。它弹出 A4 大小的纸张。我想打印所需的行,然后停止打印。 我使用的是一卷纸,不是 A4 或 A3,还有一台爱普生 LQ-300 + II 打印机。

更具体地说,打印总是以页面大小为单位进行。如果我将页面设置为 3 英寸 x 8 英寸,那么最终打印输出的长度总是 8 英寸的倍数。如果我要打印一张 9 英寸的账单,我最终会打印出 16 英寸的打印输出,浪费 7 英寸的纸张。如何打印最后一页,只要它需要那么长?

代码如下:

private void printDoc_PrintPage(Object sender, PrintPageEventArgs e)
        {
            Font printFont = new Font("Courier New", 12);
            int y = 15;
            e.Graphics.DrawString("a Line", printFont, Brushes.Black, 0, y); y = y + 20;
            e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 25;
            e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 35;
            e.Graphics.DrawString(" Line", printFont, Brushes.Black, 0, y); y = y + 45;
        }

最佳答案

您是否尝试过使用只有“一行”长的页面?

省略上下边框,可以不停打印。

现在添加一点(这样页面就可以撕掉)然后弹出。

试试这个:

            PaperSize pkCustomSize1 = new PaperSize("First custom size", 100, 200);

            printDoc.DefaultPageSettings.PaperSize = pkCustomSize1

参见: http://msdn.microsoft.com/en-us/library/system.drawing.printing.pagesettings.papersize.aspx

关于c# - 在卷纸上打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365360/

相关文章:

javascript - Json 数据上的 jquery $each 未定义

c# - 为什么在 c# .net Windows 应用程序中添加 dll 引用时出错?

c# - 无法从 C# 应用程序连接远程服务器 mysql 数据库

php - 计算具有相同名称的变量并显示名称和编号

android - 如何在 MobiWire MobiPrint 3 (Android) 上打印

c# - 如何编写用于 Elasticsearch 匹配和模糊查询的 LINQ 表达式(NEST)

c# - 将 ComboBox 列添加到具有相同数据源的 DataGridView 时出现 ArgumentException

c# - 如果默认字符串为空,为什么我不能使用 String.Contains()?

asp.net - MacOSX 上的单声道 - "The runtime version supported by this application is unavailable."v4.5

HTML/CSS : hide overflow of fixed height div in pdf print