使用 UIMarkupTextPrintFormatter 时是不是可以控制顶部和底部页边距?
Posted
技术标签:
【中文标题】使用 UIMarkupTextPrintFormatter 时是不是可以控制顶部和底部页边距?【英文标题】:Is it possible to control top & bottom page margins when using UIMarkupTextPrintFormatter?使用 UIMarkupTextPrintFormatter 时是否可以控制顶部和底部页边距? 【发布时间】:2011-02-01 23:10:02 【问题描述】:我正在尝试使用 ios 4.2 中的打印功能从我的 iPhone 应用程序打印,但我在让多页内容很好地显示时遇到了问题。正如您在通过 iOS 打印 API 生成的 PDF 的附加屏幕截图中看到的那样,UIMarkupTextPrintFormatter 非常喜欢在渲染时使用非常小的上边距。
此外,它似乎也没有尝试很好地拆分块元素......在屏幕截图中很难看到,但分页符实际上发生在表格行的中间,而不是行之间的边界上。
我尝试使用 CSS @page 指令来指定页面边界,但是 iOS Webkit 似乎根本不支持这些。
有没有人知道任何技术,无论是在 html 中还是通过 iOS SDK 来使这些上边距更大?
我真的不想编写自定义 UIPrintPageRenderer 类,因为我试图让我的用户能够通过 HTML 模板自定义他们的打印输出......使用自定义渲染器几乎肯定会使这不可能(或者真的困难)。
非常感谢任何帮助!
【问题讨论】:
【参考方案1】:UIPrintPageRenderer
是正确的,但幸运的是,您不需要编写自定义子类来执行此操作。您需要做的就是实例化一个香草UIPrintPageRenderer
,设置headerHeight
和footerHeight
属性,然后使用addPrintFormatter:startingAtPage:
将您的HTML 格式化程序添加到渲染器。只需要几行额外的代码,我已经在这里发布了我的方法:Print paper size and content inset
【讨论】:
@glenc 我正在使用这种方法,但我的页面在表格行之间中断,如屏幕截图所示。以上是关于使用 UIMarkupTextPrintFormatter 时是不是可以控制顶部和底部页边距?的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)