我正在通过代码在热敏打印机上打印收据。收据的长度总是被截断为几乎正好30厘米。矩形F的宽度设置为300(这对应于大约8厘米),所以他只打印了大约1200单位的高度。我可以将高度降低到1200以下,这进一步截断了收据的长度低于30厘米,但他打印的长度不超过30厘米,用记事本或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);
}
}
字符串
1条答案
按热度按时间yjghlzjz1#
从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中限制页面大小的值。