c#打印中的表单馈送
我正在尝试做一个表单提要&打印时跳过1页,但是由于下面的代码行,我无法生成表单提要c#打印中的表单馈送,c#,.net,vb.net,winforms,printing,C#,.net,Vb.net,Winforms,Printing,我正在尝试做一个表单提要&打印时跳过1页,但是由于下面的代码行,我无法生成表单提要 private void InserPageBreak(System.Drawing.Printing.PrintPageEventArgs e) { Font sFont = new Font("Arial", 10); Brush sBrush = Brushes.White; e.Graphics.DrawString("\f", sFont, sBrush, 0, 0)
private void InserPageBreak(System.Drawing.Printing.PrintPageEventArgs e)
{
Font sFont = new Font("Arial", 10);
Brush sBrush = Brushes.White;
e.Graphics.DrawString("\f", sFont, sBrush, 0, 0);
}
我使用PrintDialog打印页面内容。我正在使用“\f”C#的换行符
关于如何实现/使此表单提要工作,您有何想法
PS:我甚至试过这个:
//ASCII代码12-打印机的进纸控制代码
string test = char.ConvertFromUtf32(12);
e.Graphics.DrawString(test, sFont, sBrush, 0, 0);
在内部,c#将其转换为“\f”,但没有执行表单提要,任何实现“\f”的人,请分享您的想法。在.NET中,应使用PrintPageEventArgs.HasMorePage属性将表单提要发送到打印机。通过调用e.Graphics.DrawString(“\f”、sFont、sBrush、0、0),您只需将文本呈现给要打印的文档,打印机永远不会将其解释为表单提要
private void InserPageBreak(System.Drawing.Printing.PrintPageEventArgs e)
{
Font sFont = new Font("Arial", 10);
Brush sBrush = Brushes.White;
e.Graphics.DrawString("\f", sFont, sBrush, 0, 0);
}
由于您知道要在何处断开页面,因此在PrintPage事件处理程序中设置PrintPageEventArgs.HasMorePages=true,而不是调用InsertPageBreak方法。这将向打印机发送一个表单提要,并且将继续激发PrintPage事件,直到将HasMorePages设置为false
我希望这有帮助。了解如何实现PrintPage事件处理程序可能会很有用
例如:
在打印之前,使用BeginPrint处理程序初始化数据
void _document_BeginPrint(object sender, PrintEventArgs e)
{
//generate some dummy strings to print
_pageData = new List<string>()
{
"Page 1 Data",
"Page 2 Data",
"Page 3 Data",
};
// get enumerator for dummy strings
_pageEnumerator = _pageData.GetEnumerator();
//position to first string to print (i.e. first page)
_pageEnumerator.MoveNext();
}
只是出于好奇,您是否尝试过将画笔更改为黑色?不,我也尝试过黑色,但没有效果。请参阅从中找到的。谢谢,我有相同的概念,不幸的是,microsoft网站链接中提供的URL没有打开。原始链接:或有效吗?谢谢。我试图将PrintPageEventArgs.HasMorePages设置为true;它没有做表单提要。你有什么快速的样本/例子可以展示吗?我添加了一个简短的样本。我在发布前测试了它,它可以打印3页。