Увеличение высоты бумаги за итерацию с использованием printdocument

Я использую printdocument для распечатки. Я хочу увеличить размер бумаги после добавления каждой строки. Я нашел похожий вопрос здесь и здесь. Но решение не работает. Я использую класс Component, чтобы переопределить базовый метод Printdocument, и я устанавливаю размер страницы в событии OnBeginPrint

int pageHt = 288, pageWt = 314;
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
        {
            // Run base code
            base.OnBeginPrint(e);
            base.DefaultPageSettings.PaperSize = new PaperSize("Custom", pageWt, pageHt);
            base.DefaultPageSettings.Landscape = false;
        }

Затем для каждой итерации я пытаюсь увеличить высоту бумаги

base.DefaultPageSettings.PaperSize.Height += 22;

Но высота бумаги не увеличивается. Помощь приветствуется. Thanx.

1 ответ

Решение

Я нашел ответ на этот вопрос после двух дней борьбы. Это было довольно просто

public void PrintEstimate(PrintPageEventArgs e)
{
  e.PageSettings.PaperSize = new PaperSize("Custom", pageWt, pageHt);//initialize the height and width of the page
  foreach(.. )
  {   
    /* ...
     Write the loop here
     ...
     ...
   */
     e.PageSettings.PaperSize.Height = e.PageSettings.PaperSize.Height + 22;// foreach iteration, increment the page height.
   }
}
Другие вопросы по тегам