У меня есть печатный документ формата A3, который содержит изображения, предоставленные заказчиком, и он будет заполнять документ путем вычислений (иногда для printDocument может быть рассчитано более 300 изображений одновременно). Проблема, с которой я сталкиваюсь сейчас, заключается в том, что при отправке на принтер документ слишком велик для обработки памяти принтера. Можно ли разрешить принтеру печатать страницу сразу после ее отправки, а не весь документ? Мой коллега предлагает разбить эти страницы на другой документ. Возможно ли это?
Я изучил документацию, и у printDocument или printerController, похоже, нет возможности поговорить с принтером, чтобы начать печать страницы, как только она получит.
В моем тестовом прогоне у меня есть задание, состоящее из 360 изображений, помещенных на 28 страниц, и размер буфера документа увеличился до 2,71 ГБ Снимок экрана очереди печати
private void PrintPageEventHandler(object sender, PrintPageEventArgs e)
{
//set some settings
//loop until the page has been filled up by images
while(counter < maxImageAllowedPerPage)
{
e.Graphics.DrawImage(image, currentPoint.X + posX, currentPoint.Y +
posY, newWidth, newHeight);
}
e.Graphics.Dispose();
e.HasMorePages = (PrintedImageCount != TotalImageCount);
}