我正在尝试打印一个由一系列图像构建的 PDF 文档。如果重要的话,我会在 Mozilla 插件中完成所有这些工作。
我创建 PDFDocument,并将其放入 PDFView,然后调用
[printView printWithInfo: [NSPrintInfo sharedPrintInfo] autoRotate: YES];
打印对话框出现(作为一个单独的窗口,而不是面板。我认为这是来自 mozilla 窗口内部,所以我不太担心它。该对话框显示我的文档,我可以正确地翻阅它,一切看起来都很好。
但是,当我点击“打印”时,“布局”等下拉列表将变为空,并且其下的视图也将变为空。窗口不会消失,文档也不会打印。点击“取消”会产生完全相同的效果。我唯一能做的就是强制退出 Mozillla。
我的程序基于PDFKitLinker2 http://developer.apple.com/mac/library/samplecode/PDFKitLinker2/index.html#//apple_ref/doc/uid/DTS10003594来自苹果开发网站,该程序可以运行。但我看不出它和我的版本之间有任何显着差异。
关于去哪里看有什么建议吗?
thanks.
编辑:是的,我知道这几乎是完全相同的重复打印离屏 PDF 视图 https://stackoverflow.com/questions/2058501/printing-off-screen-pdfviews但这从来没有得到足够的答案......(直到现在我才注意到......)
听起来您这里有内存管理问题。您是否检查过控制台日志以查看是否抛出异常?你如何创建你的PDFView
?
但为什么不这样做呢WebKit http://trac.webkit.org/browser/trunk/WebKit/mac/WebView/WebPDFView.mm#L71可以?
具体来说,声明一个类别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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)