【发布时间】:2015-06-04 13:52:17
【问题描述】:
我想在我的 iOS 应用(Objective-C 或 Swift 中)中创建 PDF 发票。
我的主要问题是发票可能有几页,这很难用 Apple 的现有 API(CoreGraphics、Quartz 2D 等)实现。
到目前为止,我已经有了一个勉强可行的解决方案:
- 我创建了一个 HTML 模板,它是发票的基本结构
- 模板使用GRMustache填充数据
- 我将生成的 HTML 文件加载到
UIWebView并保存为 PDF(我使用 NDHTMLtoPDF 来执行此操作)
到目前为止,一切都很好。
此解决方案的问题是分页符无法正常工作。
有一些表格和图像,分页符经常会切断表格或图像。
我曾尝试对图像和表格使用 page-break-inside: avoid; css 属性,但 UIWebView 似乎完全忽略了它们......
我的问题是:
- 你知道如何解决分页问题吗?
- 能否推荐另一种在 iOS 上创建 PDF 的解决方案?
- 我应该在 Storyboard 中设计发票并从
UIView生成 PDF 吗?这里的分页符怎么办?
我希望有一个模板(例如 HTML),用数据填充它并将其保存为 PDF,而不是在代码中做所有事情。
【问题讨论】:
-
你有什么理由想要浏览 HTML 吗? iOS 允许您使用 CG 调用自己创建包含内容的 PDF 文件,这可能需要更多的工作,但您可以完全控制生成的内容、中断或不中断页面的位置等...
-
之所以要使用 HTML,是因为我可以轻松地创建模板并在其中填充信息。此外,我可以在其他(也非 iOS)项目中重复使用该模板。此外,我认为在 CG 中手动创建布局更加困难(我自己还必须关心分页符和其他东西)。如果没有其他解决方案,我想我必须使用CG。
-
如果您想在 iOS 上使用 Objective C 创建 PDF 发票,请查看tutorial。
标签: ios objective-c swift pdf