Как перейти к следующей странице печати в методе C # PrintDocument - PullRequest
0 голосов
/ 03 мая 2018

Я попробовал следующий код,

Private void button1_click(object sender, EvenArgs e)
{
      PrintDoument pd = new PrintDoument();
      pd.PrintPage += new PrintPageEventHandler(this.printDocument_PrintPage1);
      pd.Print();
}

Private void printDocument_PrintPage1(object sender, system.Drawing.Printing.PrintPageEventArgs e)
{
      e.Graphics.DrawString("Test 1",new Font("Arial",8,FontStyle.Regular), Brushes.Black,50,500);
      e.Graphics.DrawString("Test 2",new Font("Arial",8,FontStyle.Regular), Brushes.Black,50,1000);
      e.HasMorePages = true;

      e.Graphics.DrawString("Test 3",new Font("Arial",8,FontStyle.Regular), Brushes.Black,50,2000);
      e.HasMorePages = false;
}

Я хочу напечатать строку «Test 3» на следующей странице, но она напечатает только одну страницу. Пожалуйста, покажите мне способ сделать это.

1 Ответ

0 голосов
/ 04 мая 2018

Фундаментальная проблема здесь - ваш метод PrintPage1. Это не разрешено.

У вас просто есть метод PrintPage. Она будет вызвана для печати первой страницы и будет вызываться до тех пор, пока она не вернется с E.HasMorePages = false; Между каждым вызовом механизм печати позаботится о фактической печати страницы и предоставлении вам новой страницы для рисования.

Кроме того, не имеет отношения к вашему вопросу: здесь вы пропускаете объекты Font. У них есть неуправляемые ресурсы, вы должны ими распоряжаться. Создавайте их, когда начинаете печатать, утилизируйте их, когда закончите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...