// 这段代码显示打印预览,可以正常打印出来
private void button1_Click(object sender, System.EventArgs e)
{
PrintDoc = new PrintDocument();
PrintDoc.PrintPage += new PrintPageEventHandler(PrintPageDocument);
PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
printPreviewDialog.Document = PrintDoc;
printPreviewDialog.ShowDialog();
}
// 如果弹出页面设置对话框,然后再打印就会将内容打印到纸的中间
private void button2_Click(object sender, System.EventArgs e)
{
PageSetupDialog pageSetupDialog = new PageSetupDialog();
pageSetupDialog.Document = PrintDoc;
if (pageSetupDialog.ShowDialog() == DialogResult.OK)
{
try
{
PrintDoc.Print();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
怎么解决这个问题哪?

解决方案 »

  1.   

    你的PrintPageDocument方法怎么写的
      

  2.   

    private void PrintPageDocument(object sender, PrintPageEventArgs e)
    {
    Font PrintFont = new Font("宋体", 16);

    e.Graphics.DrawString(textBox1.Text, PrintFont, Brushes.Black, 0, 0);
    }
      

  3.   

    private void PrintPageDocument(object sender, PrintPageEventArgs e)
    {
    Font PrintFont = new Font("宋体", 16);

    e.Graphics.DrawString(textBox1.Text, PrintFont, Brushes.Black, 0, 0);
    }
    0,0的问题!
    如果你要居中的话,可以使用StringFormat参数