iOS创建PDF发票

时间:2015-06-04 13:52:17

标签: ios objective-c swift pdf

我想在iOS App中创建PDF发票(在Objective-C或Swift中) 我的主要问题是发票可能有几页,这很难用Apple的现有API(CoreGraphics,Quartz 2D等)来实现。

到目前为止,我已经有了一个勉强工作的解决方案:

  1. 我创建了一个HTML模板,它是发票的基本结构
  2. 模板使用GRMustache
  3. 填充数据
  4. 我将生成的HTML文件加载到UIWebView并将其另存为PDF(我使用NDHTMLtoPDF执行此操作)
  5. 到目前为止,这么好。

    此解决方案的问题是分页符无法正常工作。 有一些表格和图像,页面中断通常会切断表格或图像 我曾尝试将page-break-inside: avoid; css属性用于图像和表格,但UIWebView似乎完全忽略了它们...

      

    我的问题是:

         
        
    1. 您知道如何解决分页问题吗?
    2.   
    3. 您能推荐另一种在iOS上创建PDF的解决方案吗?
    4.   
    5. 我应该在Storyboard中设计发票并从UIView生成PDF吗?这里的分页符怎么样?
    6.   

    我希望有一个模板(例如HTML),用数据填充并将其保存为PDF,而不是用代码完成所有操作。

1 个答案:

答案 0 :(得分:0)

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

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

您可以使用UIPrintPageRenderer和UIViewPrintFormatter API实现此目的,但由于您使用的是私有Apple API,因此可能会在应用商店评论中拒绝您的应用。因此,这种方法可能只适用于学术环境或开发内部应用程序。

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