打印无法使用 UIDocumentInteractionController?

Posted

技术标签:

【中文标题】打印无法使用 UIDocumentInteractionController?【英文标题】:Printing not working with UIDocumentInteractionController? 【发布时间】:2017-03-20 15:02:02 【问题描述】:

我正在使用UIDocumentInteractionController 查看 PDF。当我打开 PDF 时,单击右上角带有向上箭头的正方形,然后选择打印什么也没有发生。知道如何解决这个问题吗?

这是我的代码:

UIDocumentInteractionController *interactionController = [UIDocumentInteractionController interactionControllerWithURL:path];
interactionController.delegate = self;
dispatch_sync(dispatch_get_main_queue(), ^
    [interactionController presentPreviewAnimated:YES];
);

更新:

我忘了提,我还有下面的代码,因为没有它,状态栏会显示在文档预览菜单栏上。我必须添加以下代码,因为我的应用程序始终隐藏状态栏,并且当文档预览打开时状态栏覆盖菜单栏时没有它。如果我删除代码,打印功能就可以正常工作......

- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller

    [[[[UIApplication sharedApplication] delegate] window] setWindowLevel:UIWindowLevelStatusBar];

    return [[[[UIApplication sharedApplication] delegate] window] rootViewController];

【问题讨论】:

【参考方案1】:

在您的 .h 文件中添加这一行:

@property (strong, nonatomic) UIDocumentInteractionController *documentInteractionController;

这些到你的 .m 文件中:

self.documentInteractionController= [UIDocumentInteractionController interactionControllerWithURL:url];

//set delegate

[self.documentInteractionController setDelegate:self];

//provide button's frame from where popover will be lauched

[self.documentInteractionController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];

参考:

https://***.com/a/15664394/5184217

【讨论】:

我尝试了该代码并没有解决问题,但我发现了更多细节。我添加了更多代码和更新。感谢您的帮助!

以上是关于打印无法使用 UIDocumentInteractionController?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 ostream 打印,但可以使用 cout 打印?

打印机驱动无法使用及打印机驱动彻底删除方法

无法使用 php、javascript 在 IE 上打印 iframe,而是打印当前页面,而不是其中有打印按钮

无法在网络打印机上使用 cmd 打印 .prn 文件

javascript 命令无法使用媒体查询打印

Ghostscript.NET 无法使用选定的打印机名称进行打印