我正在尝试打印我正在构建的一系列图像的PDF文档。如果它很重要,我会在Mozilla插件中完成所有这些操作。
我创建PDFDocument,并将其放入PDFView,然后我调用
[printView printWithInfo: [NSPrintInfo sharedPrintInfo] autoRotate: YES];
打印对话框出现(作为一个单独的窗口,而不是面板。我假设它来自于一个mozilla窗口,所以我不太担心它。对话框显示我的文档,我可以页面正确地通过它,一切看起来都很好。
然而,当我点击“打印”时,带有“布局”等的下拉列表变空,并且其下的视图变为空白。窗口不会消失,文档不会打印。点击取消完全相同。我唯一能做的就是强行退出Mozillla。
我基于PDFKitLinker2的程序来自apple dev网站,该程序有效。但我看不出它与我的版本之间有任何显着差异。
关于在哪里寻找的任何建议?
感谢。
编辑:是的,我知道这几乎与Printing Off-screen PDFViews完全重复,但从来没有得到足够的答案......(直到现在才注意到它......)
答案 0 :(得分:7)
听起来你在这里遇到了内存管理问题。您是否检查过控制台日志以查看是否抛出了异常?您是如何创建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 :(得分:1)
这也适合我。我已经验证了getPrintOperationForPrintInfo:autoRotate:存在并且似乎在10.4,10.5和10.6上正常工作。