使用 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,设置headerHeightfooterHeight 属性,然后使用addPrintFormatter:startingAtPage: 将您的HTML 格式化程序添加到渲染器。只需要几行额外的代码,我已经在这里发布了我的方法:Print paper size and content inset

【讨论】:

@glenc 我正在使用这种方法,但我的页面在表格行之间中断,如屏幕截图所示。

以上是关于使用 UIMarkupTextPrintFormatter 时是不是可以控制顶部和底部页边距?的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)