Печать вне экрана PDFViews

У меня есть ситуация, когда я хочу напечатать многостраничный PDF. Хотя я мог использовать служебные классы PDFKit и / или кварцевые функции, чтобы получить информацию для ручного написания кода рисования / нумерации страниц для подкласса NSView, я думал, что более быстрой альтернативой будет создание внеэкранного PDFView и указание напечатать его самому. , Когда я попробовал это решение, диалоговое окно печати неПосле этого все элементы управления настройками печати в правой половине диалогового окна печати исчезли, а приложение зависло.

Затем я написал крошечное тестовое приложение со следующим методом, который иллюстрирует проблему. Когда тестовая программа компилируется без определенного макроса препроцессора USE_PDF_VIEW, пустое представление отображается нормально. Если USE_PDF_VIEW определено, документ неt печать, большинство элементов управления диалогового окна печати исчезают, и приложение зависает. Хотя у меня есть другие способы достижения своей цели, ямне интересно, почему этот ярлык нет работа. Есть ли что-то в рисовании какао?Т понять? Я врываюсь в Apple Voodoo Magic (tm) за кулисами, которые заставляют PDFView вести себя совершенно иначе, чем другие NSViews?

- (void)printMyStuff:(id)sender {

NSPrintInfo *currInfo = [NSPrintInfo sharedPrintInfo];

#ifdef USE_PDF_VIEW


    PDFView *pdfView = [[PDFView alloc] init];
    PDFDocument *pdfDoc = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:@"/Users/wls/Documents/my_document.pdf"]];
    [pdfView setDocument: pdfDoc];
    [pdfView printWithInfo:currInfo autoRotate:YES];


#else

    NSView *myView = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 500, 500)];
    NSPrintOperation *myop = [NSPrintOperation printOperationWithView:myView printInfo:currInfo];
    [myop runOperation];


#endif

}

Ответы на вопрос(4)

Ваш ответ на вопрос