Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS创建PDF发票_Ios_Objective C_Swift_Pdf - Fatal编程技术网

iOS创建PDF发票

iOS创建PDF发票,ios,objective-c,swift,pdf,Ios,Objective C,Swift,Pdf,我想在iOS应用程序中创建PDF发票(Objective-C或Swift)。 我的主要问题是发票可能有几个页面,这很难用苹果现有的API(CoreGraphics、Quartz 2D等)实现 到目前为止,我已经有了一个勉强可行的解决方案: 我创建了一个HTML模板,它是发票的基本结构 模板中填充了使用 我将生成的HTML文件加载到UIWebView中,并将其另存为PDF(我曾经这样做过) 到目前为止,一切顺利 这个解决方案的问题是分页符不能正常工作。 有一些表格和图像,分页符通常会切断表格或图像

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

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

  • 我创建了一个HTML模板,它是发票的基本结构
  • 模板中填充了使用
  • 我将生成的HTML文件加载到
    UIWebView
    中,并将其另存为PDF(我曾经这样做过)
  • 到目前为止,一切顺利

    这个解决方案的问题是分页符不能正常工作。 有一些表格和图像,分页符通常会切断表格或图像。
    我试着在内部使用
    分页符:避免图像和表格的css属性,但
    UIWebView
    似乎完全忽略了它们

    我的问题是:

  • 你知道如何解决分页符问题吗
  • 您能推荐另一种在iOS上创建PDF的解决方案吗
  • 我是否应该在序列图像板中设计发票,并从
    ui视图
    生成PDF?这里的分页符怎么办

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

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

    • 模板是通过HTML/CSS完成的
    • 每页上的静态页眉/页脚
    您可以使用UIPrintPageRenderer和UIViewPrintFormatter API来实现这一点,但其缺点可能是您的应用程序在应用商店审查中被拒绝,因为您使用的是私有的Apple API。因此,这种方法可能只在学术环境中可行,或者如果您正在开发内部应用程序

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


    您想浏览HTML有什么原因吗?iOS允许您使用CG调用自己创建包含内容的PDF文件,这可能需要更多的工作,但您可以完全控制生成内容、在何处断开或不断开页面等。我之所以想使用HTML,是因为我可以轻松创建模板并用信息填充它。此外,我还可以在其他(也是非iOS)项目中重复使用该模板。此外,我认为在CG中手动创建布局更加困难(我自己也必须关心分页符和其他东西)。如果没有其他解决方案,我想我必须使用CG。如果您想使用Objective C在iOS上创建PDF发票,请选中此项。