• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何使用 AirPrint 在半页或 A5 上打印?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:14:17 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个应用程序需要从 iPad 打印收据和通行证。我已经实现了运行良好的 AirPrint SDK,也就是说,我可以使用兼容 AirPrint 的打印机从 iPad 打印文档。

问题是我需要将这些收据和通行证放在半页(即 A4 页的一半)或 A5 页上。无论我对打印作业进行什么更改,它总是以完整的 A4 页面和横向打印。

这是我要打印的代码:

UIPrintInteractionController *printer = [UIPrintInteractionController sharedPrintController];
UIPrintInfo *printObject = [UIPrintInfo printInfo];
[printObject setJobName"Receipt"];
[printObject setOutputType:UIPrintInfoOutputGeneral];
[printObject setOrientation:UIPrintInfoOrientationLandscape];

UIPrintFormatter *printFormatter = [[UIPrintFormatter alloc] init];
[printFormatter setContentInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

[printer setPrintFormatter:printFormatter];
[printer setPrintInfo:printObject];
[printer setDelegate:self];
[printer setPrintingItem:targetURL];
[printer presentFromRect:sender inView:view animated:YES completionHandler:^(UIPrintInteractionController *printInteractionController,BOOL completed, NSError *error){}];

我也尝试实现 choosePaper 委托(delegate)方法,但它也没有帮助。哦,在创建文档时,我指定了大小:

CGSize pageSize = CGSizeMake(595, 420);
NSString* fileName = @"GatePass.PDF";

NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [arrayPaths objectAtIndex:0];
NSString* pdfFileName = [path stringByAppendingPathComponent:fileName];

UIGraphicsBeginPDFContextToFile(pdfFileName, CGRectZero, nil);

UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);

理想的工作方式是,如果用户在打印中使用 A5 纸,则正常打印。如果用户使用 A4 纸,只打印一半页面等等。

知道如何实现吗?



Best Answer-推荐答案


使用 selectedPaper 委托(delegate)方法。如果 A5 列在给你的列表中,那么选择那张纸。如果打印机有 A5 并且知道它有 A5,那么您应该得到 A5 输出。您还需要以从 selectedPaper 返回的大小创建 PDF。

您可以使用打印机模拟器对此进行测试。使用加载纸张尺寸按钮设置其中一台带有“模拟纸张传感器”并在其中一个纸盘中加载 A5 的打印机。

关于ios - 如何使用 AirPrint 在半页或 A5 上打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23523337/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap