首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为UIPrintPageRenderer / UIPrintInteractionController设置要打印的页面

为UIPrintPageRenderer / UIPrintInteractionController设置要打印的页面
EN

Stack Overflow用户
提问于 2016-01-18 09:45:03
回答 1查看 7.3K关注 0票数 2

我在我的AirPrint应用程序中使用iOS打印了一个HTML。但是,字符串是可定制的,用户可以设置页边距/填充、字体/字体大小、方向等。

因此,在第二页为空白的情况下,有时输出可能超过2页。在那里,我想设置一个范围,页要打印。实际上,不管输出是什么,我只想打印第一页。

下面是打印交互控制器对话框,您可以看到没有设置范围,输出超过一个页面:

这是我的密码:

代码语言:javascript
复制
// create an html output text
let markupText = "<div style='width: 100%; text-align: center;'><div style='display: inline-block; margin-top: 35mm; margin-left: 45mm;'>Hello, printer.</div></div>"

// initialize print formatter
let formatter = UIMarkupTextPrintFormatter(markupText: markupText)
formatter.contentInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
formatter.startPage = 0

// initialize print renderer and set its formatter
let printRenderer = UIPrintPageRenderer()
printRenderer.addPrintFormatter(formatter, startingAtPageAtIndex: 0)
printRenderer.prepareForDrawingPages(NSMakeRange(0, 1))

// initialize print controller to present print dialog
let printController = UIPrintInteractionController.sharedPrintController()
printController.printPageRenderer = printRenderer
printController.presentAnimated(true, completionHandler: nil)

我无法找到关于设置范围的足够信息,尽管我认为prepareForDrawingPages方法可以做到这一点。有什么办法来完成这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-19 18:41:08

如果要使用UIPrintPageRenderer的自定义子类,还可以重写一个numberOfPages方法来计算页数。但是,我相信您可能只是忘记将UIPrintInteractionController属性showsPageRange设置为YES

我通过将html写入PDF (NSData)并将printingItem属性设置为该项来解决这个问题。我的代码在目标-c中,但同样的原则也适用。

printingItem文档

生成PDF内容

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34851560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档