通过代码进行热敏打印:最大长度被截断

Thermal printing via code: max length gets truncated

提问人:AzulShiva 提问时间:11/10/2023 更新时间:11/10/2023 访问量:29

问:

我正在通过代码在热敏打印机上打印收据。收据的长度总是被截断到几乎正好 30 厘米。RectangleF 的宽度设置为 300(大约相当于 8 厘米),因此他只打印了大约 1200 个单位的高度。我可以将高度降低到1200以下,这进一步截断了30cm以下的收据长度,但他打印的长度不超过30cm。通过记事本或Word打印时,可以一次性打印无端的仪表。

private void print(string printString)
{
    PCPrint printer = new PCPrint();

    printer.TextToPrint = printString;
    printer.Print();
}
public class PCPrint : System.Drawing.Printing.PrintDocument
{
    string printText;
    RectangleF printArea = new RectangleF(0, 0, 300, 10000);
    public string TextToPrint
    {
        get { return printText; }
        set { printText = value; }
    }
    protected override void OnPrintPage(PrintPageEventArgs e)
    {
        e.Graphics.DrawString(printText, new Font("Verdana", 8), Brushes.Black, printArea);
    }
}
C# .NET WinForms 打印

评论


答:

1赞 Bart McEndree 11/10/2023 #1

与 https://learn.microsoft.com/en-us/dotnet/api/system.drawing.printing.printdocument?view=dotnet-plat-ext-7.0 相比

我读到: 通常,创建 PrintDocument 类的实例,设置 DocumentName 和 PrinterSettings 等属性,然后调用 Print 方法以启动打印过程。使用 PrintPageEventArgs 的 GraphicsGraphics 属性处理指定要打印的输出的 PrintPage 事件。

也许检查 PrinterSettings 中是否有限制页面大小的值。