1. 程式人生 > >C#列印文件換行

C#列印文件換行

textbox設定為多行,輸入文字後,一段很長的文字在textbox裡是可以自動換行。但是列印時textbox裡面會自動換行的地方在紙張上卻不會自動換行。結果導致一段很長的文字無法列印完,紙張上僅能打印出部分文字,出界的文字全部丟失。

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    string str="";
    int y=textBox1.TextLength/5;
    for(int i=0;i<=textBox1.TextLength/5;i++)//5個字元就換行
    {
         if(i<y)
         {
            str+=textBox1.Text.Substring(i*5,5)+Environment.NewLine;       //從第i*5個開始,擷取5個字串
         }
            else
            {
               str+=textBox1.Text.Substring(i*5);
            }
    }
    e.Graphics.DrawString(str, new Font("Arial",12,FontStyle.Regular),Brushes.Black,80,80);
}

private void btnPrint_Click(object sender, System.EventArgs e)      //列印按鈕單擊事件
{
    printDocument1.PrintPage+=new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage);
    printDocument1.Print();
}

注:中英文都是一個字元代表一個長度。