PDFПросмотреть printWithInfo: autoRotate: не удается - PullRequest
3 голосов
/ 19 марта 2010

Я пытаюсь напечатать PDFDocument, который я строю из серии изображений. В случае, если это имеет значение, я делаю все это из плагина Mozilla.

Я создаю PDFDocument и помещаю его в PDFView, затем я вызываю

[printView printWithInfo: [NSPrintInfo sharedPrintInfo] autoRotate: YES];

Откроется диалоговое окно печати (в виде отдельного окна вместо панели. Я предполагаю, что это происходит из окна Mozilla, поэтому я не слишком беспокоился об этом. Диалог показывает мой документ, и я могу просмотреть страницу через него правильно, и все выглядит хорошо.

Однако, когда я нажимаю «Печать», раскрывающийся список с «Макетом» и т. Д. Становится пустым, а представление под ним становится пустым. Окно не исчезает, а документ не печатается. Нажатие кнопки «Отмена» делает то же самое. Единственное, что я могу сделать, это принудительно бросить Мозиллу.

Я основал программу на PDFKitLinker2 с сайта Apple, и эта программа работает. Но я не вижу каких-либо существенных различий между ним и моей версией.

Любые предложения о том, где искать?

спасибо.

РЕДАКТИРОВАТЬ: Да, я знаю, что это в значительной степени точная копия Печать закадровых PDFViews , но это никогда не получало достаточного ответа ... (И я не заметил этого до сих пор ...)

Ответы [ 2 ]

7 голосов
/ 22 марта 2010

Похоже, у вас есть проблема с управлением памятью здесь.Вы проверили журнал консоли, чтобы увидеть, есть ли исключение?Как вы создаете PDFView?

Но почему бы не сделать так, как это делает WebKit ?

В частности, объявить категорию на PDFDocument

@interface PDFDocument (PDFSecretsIKnowViaWebKit)
- (NSPrintOperation *)getPrintOperationForPrintInfo:(NSPrintInfo *)printInfo autoRotate:(BOOL)doRotate;
@end

Затем, когда вы захотите распечатать свой PDFDocument, просто получите NSPrintOperation и запустите его.

NSPrintOperation *op = [myPDFDoc getPrintOperationForPrintInfo:info autoRotate:YES];
[op runOperation];
// [op runOperationModalForWindow:delegate:didRunSelector:contextInfo:] if you have a window to attach it to
1 голос
/ 15 мая 2010

Это работает и для меня.Я проверил, что getPrintOperationForPrintInfo: autoRotate: существует и работает правильно на 10.4, 10.5 и 10.6.

...