У нас есть приложение, в котором есть много отчетов, и некоторые из этих отчетов имеют сложные циклы печати.
В прошлом (IE PowerPlant, Carbon, Core Printing) мы использовали для создания циклов печати, которые была какая-то пара BeginPage () / EndPage (). Часто эти пары встраивались в распечатку отчета l oop logi c.
Эффект net заключался в том, что многие отчеты не были разбиты на страницы перед печатью, а разбиты на страницы, КАК они печатались. Эти отчеты повторяли тысячи объектов и заполняли как можно большую часть страницы, затем вызывали EndPage (), а затем переходили к следующей странице, вызывая BeginPage (), сохраняя при этом сложное «состояние» объекта. отчет о ходе печати.
Поскольку большая часть Core Printing устарела, ПОЭТОМУ, что с логикой NSPrint c, подход печатного отчета, управляющий разбиением на страницы, невозможен. NSPrintOperation в значительной степени хочет иметь возможность запросить полную страницу для рисования собственного NSView drawRect, и этот пользовательский NSView лучше иметь возможность начать на любой странице. Означает ли это, что КАЖДЫЙ отчет должен быть предварительно разбит на страницы?
Кажется, существует другой метод, который является частью "автоматической" нумерации страниц:
- (void)adjustPageHeightNew:(CGFloat *)newBottom top:(CGFloat)oldTop bottom:(CGFloat)oldBottom limit:(CGFloat)bottomLimit;
Если я читаю документация правильно, скажем, у меня был отчет на 10 страниц, где мне нужно было найти подходящие места для разделения. Это выглядит так, будто я могу рассматривать этот отчет как одно длинное представление, а затем вызвать вышеупомянутый метод, пока я нахожусь в моем drawRect, в результате чего страница, которую я рисую, становится SHORTER, и, таким образом, отодвигает материал на следующую страницу.
Документация не дает подробных сведений о том, как такие настройки будут распространяться на десятки (или сотни) страниц.
Существуют ли какие-либо другие методы, позволяющие выводить печать и нумерацию страниц из кода генерации отчетов, а не пассивные подходы, описанные выше?