iOS创buildPDF发票

我想在我的iOS应用程序(Objective-C或Swift)中创build一个PDF发票。
我的主要问题是,发票可能有几个页面,这是很难用苹果现有的API(CoreGraphics,Quartz 2D等)实现的。

到目前为止,我已经有一个几乎没有工作的解决scheme:

  1. 我创build了一个HTML模板,这是发票的基本结构
  2. 模板使用GRMustache填充数据
  3. 我将生成的HTML文件加载到一个UIWebView并保存为PDF(我使用NDHTMLtoPDF来做到这一点)

到现在为止还挺好。

此解决scheme的问题是分页符无法正常工作。 有一些表和图像和分页通常切断的表或图像。
我试图使用page-break-inside: avoid; 图像和表格的CSS属性,但UIWebView似乎完全忽略它们…

我的问题是:

  1. 你知道如何解决分页问题吗?
  2. 你能推荐另一种解决scheme来在iOS上创buildPDF文件吗?
  3. 我应该在Storyboard中devise发票并从UIView生成PDF吗? 那么这里的分页符呢?

我宁愿有一个模板(如HTML),填充数据并保存为PDF,而不是做所有的代码。

我实际上自己编写了一个PDF报告组件,这个组件大概是类似的要求:

  • 模板是通过HTML / CSS完成的
  • 每页上的静态页眉/页脚

你可以使用UIPrintPageRenderer和UIViewPrintFormatter API来实现这个function,但是由于你使用的是私有的Apple API,所以可能会让你的应用在app store评论中被拒绝。 所以这种方法可能只适用于学术环境或开发内部应用程序。

有一些关于如何做到这一点的教程,我不打算重复,但对我来说这些资源非常有用: