Как настроить NSView для печати?

Как настроить NSView для печати? Например, скажем, у меня есть представление, в котором я переопределил layout(), чтобы расположить элементы так же, как текст, перетекая с одной строки на другую в соответствии с шириной представления. Ничто не должно масштабироваться, и представление должно стать выше (возможно, потребуется больше страниц), поскольку оно становится более узким.

Какие шаги мне нужно предпринять, чтобы заставить работать предварительный просмотр перед печатью, а затем распечатать такой документ? Например, мне нужно изменить размер представления, чтобы оно соответствовало странице. В какой момент я бы установил границы и где бы я мог получить информацию о размере страницы? Распечатать представление, которое в данный момент отображается на экране, или создать новое представление с теми же данными?

Я прочитал Настройка содержимого для печатной страницы , Не дисплей, но я думаю, что drawRect — это более поздний шаг, чем то, что я хочу.


person arsenius    schedule 23.05.2017    source источник
comment
Вы хотите распечатать то, что на экране, или переформатировать для печати? Какие методы печати NSView вы переопределяете?   -  person Willeke    schedule 23.05.2017
comment
В настоящее время я не переопределяю ни один из них. Не уверен, где начать. Я наверное хочу переформатировать для печати. По сути, я просто хочу знать: 1. как выбрать, какое представление будет напечатано (в настоящее время оно выполняет все окно) и 2. когда и где установить рамку для этого представления в соответствии с выбранными настройками принтера (Letter, A4, пользовательский и т. д.). ...)   -  person arsenius    schedule 26.05.2017
comment
1. Реализуйте метод действия print: в представлении или контроллере представления. 2. Вероятно, проще использовать закадровый вид для печати. См. раздел Создание распечатки с автоматическим изменением размера.   -  person Willeke    schedule 27.05.2017