C# PrintDocument 将所有文本打印成一堆
C# PrintDocument prints all the text in one messy pile
我正在尝试通过 C# PrintDocument 选项打印两个值,但是我正在尝试打印的文本打印在一行中。就像在同一行中,第一个文本位于第二个文本的顶部。我应该怎么做才能避免这种情况?
try
{
// Assumes the default printer.
PrintDocument pd = new PrintDocument();
pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1170);
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
pd.Print();
}
catch (Exception ex)
{
MessageBox.Show("Error", ex.ToString());
}
private void pd_PrintPage(Object sender, PrintPageEventArgs ev)
{
ev.Graphics.DrawString("hello", new Font("Time New Roman", 14, FontStyle.Bold), Brushes.Black, 20, 100);
ev.Graphics.DrawString("Hi!!!!!!", new Font("Time New Roman", 14, FontStyle.Bold), Brushes.Black, 20, 100);
}
您在完全相同的坐标处打印了两者:20, 100
。
如果你不想这样做,就停止这样做。您希望文本出现在页面上的不同位置,因此将其绘制到页面上的不同位置。
我正在尝试通过 C# PrintDocument 选项打印两个值,但是我正在尝试打印的文本打印在一行中。就像在同一行中,第一个文本位于第二个文本的顶部。我应该怎么做才能避免这种情况?
try
{
// Assumes the default printer.
PrintDocument pd = new PrintDocument();
pd.DefaultPageSettings.PaperSize = new PaperSize("A4", 827, 1170);
pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
pd.Print();
}
catch (Exception ex)
{
MessageBox.Show("Error", ex.ToString());
}
private void pd_PrintPage(Object sender, PrintPageEventArgs ev)
{
ev.Graphics.DrawString("hello", new Font("Time New Roman", 14, FontStyle.Bold), Brushes.Black, 20, 100);
ev.Graphics.DrawString("Hi!!!!!!", new Font("Time New Roman", 14, FontStyle.Bold), Brushes.Black, 20, 100);
}
您在完全相同的坐标处打印了两者:20, 100
。
如果你不想这样做,就停止这样做。您希望文本出现在页面上的不同位置,因此将其绘制到页面上的不同位置。