Звучит так, как будто вы спрашиваете, как печатать квитанции непрерывным потоком, а не постранично. Код, на который вы ссылаетесь, полностью ориентирован на страницу и ориентирован на страницу. Вы можете работать в системе просмотра с преобладанием страниц, но вам придется выполнять дополнительную работу.
Вы должны иметь возможность печатать несколько элементов на одной странице, изменив код PrintPage для вывода более одного фрагмента изображения на страницу. Вам нужно будет управлять смещением каждого прямоугольника, чтобы расположить 2-е изображение ниже 1-го, и вам нужно будет выяснить, что вы хотите сделать, чтобы следующая страница отчета не занимала место на текущей странице. Я ожидаю, что вывод будет обрезан до текущей страницы, поэтому, если вы рисуете за пределами страницы (за пределами конца страницы), ничего выводиться не будет.
Вы можете перейти к следующей странице, когда изображение следующего отчета не помещается в пространство, оставшееся на текущей странице.
Или вы можете напечатать столько, сколько поместится на этой странице, а затем распечатать оставшуюся часть изображения отчета в верхней части следующей страницы. Для этого вам необходимо рассчитать пересечение оставшегося пространства на странице 1 и прямоугольника изображения отчета и сохранить высоту этого пересечения. Конец страницы Когда страница 2 перевернется, напечатайте то же самое изображение отчета снова, но на этот раз смещение выходного прямоугольника на высоту прямоугольника, который был напечатан на предыдущей странице. Предполагается, что на дескрипторе печатающего устройства уже имеется ограничивающий прямоугольник (что весьма вероятно).
Недостатком разделения отчета по страницам является то, что вы можете получить графики или даже строки текста, которые будут обрезаны или разделены между страницами. Это будет трудно читать. Если вы знаете высоту шрифта и межстрочный интервал и порядок составления отчета, я полагаю, вы могли бы сделать расчетное предположение о том, где строки текста находятся в выходном прямоугольнике, и округлить выходной прямоугольник до ближайшего целого числа, кратного высоте строки. , но это все глубже проникает в хакерскую кучу.