Вы можете создать вид, который отображает то, что вы хотите напечатать. Затем вы используете его для создания операции печати.
Обычно вы создаете представление, отображающее ваше изображение. Вы реализуете алгоритм, чтобы выяснить, какое изображение вы хотите отобразить на какой странице. Затем вы возвращаете количество страниц, доступных для печати, и применяете метод для печати конкретной страницы.
- Если у вас есть 10 изображений, и вы хотите
напечатать по одной на странице, это просто.
- Если вы хотите распечатать записи на странице
и у вас есть 100 записей, то вы
посчитайте, сколько записей вы можете
поместиться на странице (используя текущий шрифт
размер и количество строк в записи).
- Тогда вы выясните из записей в
страница, сколько страниц вам нужно
показать все записи - это ваше
количество страниц (диапазон страниц).
- При запросе на печать
диапазон страниц, которые вы выбираете записи
это должно быть показано на данной странице и
показать их.
- См. Ссылки ниже о том, как
реализовать эти шаги. См.
пользовательская нумерация страниц информация для
Пример того, как реализовать эти шаги, это не сложно.
См. Темы программирования печати , или полный пример, на который я ссылаюсь ниже из книги, имеет нумерацию страниц, которую я здесь не включил. Посмотрите на пользовательскую нумерацию страниц , чтобы узнать больше подсказок.
Если у вас есть приложение на основе документов и представление, которое вы хотите выгрузить на принтер, то в нашем MyDocument
(или как вы его называете), который расширяет NSDocument
, вы бы реализовали:
- (NSPrintOperation *)printOperationWithSettings:(NSDictionary *)ps
error:(NSError **)e
Вид затем использует стандартный drawRect:
для рисования.
Например, здесь PeopleView
просто рисует table
данных о людях, здесь требуется NSDictonary
людей employees
здесь:
- (NSPrintOperation *)printOperationWithSettings:(NSDictionary *)ps
error:(NSError **)e
{
PeopleView * view = [[PeopleView alloc] initWithPeople:employees];
NSPrintInfo * printInfo = [self printInfo];
NSPrintOperation * printOp
= [NSPrintOperation printOperationWithView:view
printInfo:printInfo];
[view release];
return printOp;
}
Более подробную информацию вы можете найти в главе 27, «Печать», в Программе какао Hillegass для Mac OS X.