我正在尝试打印我从一系列图像构建的 PDFDocument。万一重要,我正在从 Mozilla 插件中完成所有这些。

我创建了 PDFDocument,并将其放入 PDFView,然后调用

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

打印对话框出现(作为一个单独的窗口,而不是面板。我假设它来自一个 mozilla 窗口,所以我不太担心它。对话框显示我的文档,我可以正确地翻阅它,一切看起来都不错。

但是,当我点击“打印”时,带有“布局”等的下拉列表变为空,其下的 View 变为空。窗口不会消失,文档也不会打印。点击取消完全相同。我唯一能做的就是强制退出 Mozilla。

我基于来自苹果开发站点的 PDFKitLinker2 的程序,并且该程序有效。但我看不出它和我的版本之间有任何显着差异。

关于在哪里看的任何建议?

谢谢。

编辑:是的,我知道这几乎是 Printing Off-screen PDFViews 的完全重复,但从来没有得到足够的答案......(我直到现在才注意到......)

最佳答案

听起来您在这里遇到了内存管理问题。您是否检查了控制台日志以查看是否有异常被抛出?你是如何创建你的 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

关于objective-c - PDFView printWithInfo :autoRotate: fails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2478271/

10-12 16:17