我正在使用UIViewPrintFormatter来帮助我将UI内容从HTMLWeb内容渲染到PDF上下文(我正在为内容创建多个列)。一切似乎都运行良好,除了UIViewPrintFormatter似乎在它认为合适的地方插入“额外”间距这一事实(我甚至无法确切地确定它为什么)。我正在使用自定义UIPrintPageRenderer。
据我所知,额外的间距都发生在print formatter类中。我以这种方式从print formatter获取rect:
CGRect formatterRect = [formatter rectForPageAtIndex:column];
然后我以下列方式使用该rect(仅修改了原始的x值以支持列:
[self.printTask.formatter drawInRect:renderRect forPageAtIndex:i];
您可以在下面的示例中看到正在插入额外的间距(请参阅我添加的红色矩形)。
有没有人看过这个或知道解决这个问题的方法?我显然知道我可以通过添加和定位每个项目并一起跳过HTML / UIWebView来重新创建相同的内容(如果我无法使其工作,这可能就是我所做的事情。)
答案 0 :(得分:1)
简而言之,我发现无法使用公共方法(或私有方法)解决此问题。如果您遇到类似的挑战,我建议您利用TextKit / CoreText确保格式符合您的需求。