gpt4 book ai didi

objective-c - AirPrint 连接被拒绝错误

转载 作者:太空狗 更新时间:2023-10-30 03:40:05 25 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我有以下代码用于 AirPrinting 一个简单的 NSString。

#pragma mark - Print
-(IBAction)print:(id)sender {

UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
pic.delegate = self;

UIPrintInfo *printInfo = [UIPrintInfo printInfo];
printInfo.outputType = UIPrintInfoOutputGeneral;
printInfo.jobName = @"Message";
pic.printInfo = printInfo;

UISimpleTextPrintFormatter *textFormatter = [[UISimpleTextPrintFormatter alloc]initWithText:self.Message.text];
textFormatter.startPage = 0;
textFormatter.contentInsets = UIEdgeInsetsMake(72.0, 72.0, 72.0, 72.0); // 1 inch margins
textFormatter.maximumContentWidth = 6 * 72.0;
pic.printFormatter = textFormatter;
pic.showsPageRange = YES;

void (^completionHandler)(UIPrintInteractionController *, BOOL, NSError *) =
^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
if (!completed && error) {
NSLog(@"Printing could not complete because of error: %@", error);
}
};
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
[pic presentFromBarButtonItem:sender animated:YES completionHandler:completionHandler];
} else {
[pic presentAnimated:YES completionHandler:completionHandler];
}
}

当我运行我的项目(以测试它)时,这是我在 UIPrintInteractionController 上点击“打印”时在输出调试器窗口中遇到的错误:

Simulated\032InkJet\032@\032USER\032NAME\032iMac._ipp._tcp.local.: startJob: Unable to connect to printd: Connection refused

我在使用打印模拟器的 iOS 5.1 模拟器中遇到此错误。 为什么会出现此错误?我感觉这与我使用打印模拟器的方式有关。

感谢任何帮助,作为旁注,有谁知道如何从 iPad 上的普通 UIButton 而不是 BarButtonItem 显示 UIPrintInteraction Controller ?

编辑:需要注意的是,在 iOS 6.0+ 中使用 Share Sheets 时会自动设置 AirPrint。

最佳答案

我遇到了完全相同的问题,基本上 mincemeat 的回答解决了这个问题。但是,我确实必须先跳过几个圈。最终这是某种文件权限问题。

我执行了以下操作(注意,需要管理员权限):

  1. 打开终端并导航到文件夹/private/var/tmp/

  2. 键入“whoami”以查看您的确切用户名。

  3. 假设您的用户名为“dogtest”。输入“sudo chown dogtest:admin printd”。您会收到一条警告,基本上是要求您确保自己知道自己在做什么。

  4. 输入您的管理员密码并按回车键。

  5. 现在您拥有 printd 文件的所有权,可以用它做任何您想做的事。通过键入“mv printd printd-ren”将文件重命名为其他名称。

  6. 打开 iOS 模拟器和打印机模拟器。

  7. 在 iOS 模拟器中打开 Safari 并转到任何网页。

  8. 点击底部中心的“共享”按钮并选择“打印”。

  9. 按照提示完成打印。您应该会在 Printer Simulator 日志窗口中看到更多事件。此时,使用您的帐户权限重新创建了 printd 文件(这很好)。

  10. 同时退出 iOS 模拟器和打印机模拟器。

  11. 在模拟器中重新运行您的 iOS 应用,然后重新打开打印机模拟器。

  12. 现在您应该能够从您的应用模拟 Air Print,并且打印输出将以 PDF 格式在预览中打开。

我希望这能为您解决问题或至少为您指明正确的方向。祝你好运。

关于objective-c - AirPrint 连接被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com