在 iOS 上修改 PDF 交互式表单域的最佳方法是啥?

Posted

技术标签:

【中文标题】在 iOS 上修改 PDF 交互式表单域的最佳方法是啥?【英文标题】:What's the best approach for modifying PDF interactive form fields on iOS?在 iOS 上修改 PDF 交互式表单域的最佳方法是什么? 【发布时间】:2011-06-09 10:12:45 【问题描述】:

我一直在研究这个问题并征求您的意见。

我正在构建一个应用程序,它的一部分功能是呈现 PDF 表单;意思是显示它们,允许更改字段并将修改后的 PDF 文件保存回来。 UIWebViews 不支持 PDF 交互表单。

使用 CGPDF api(并从此处和其他地方发布的其他问题中受益),我当然可以呈现 PDF(没有表单字段/小部件),扫描并找到文档中的字段,找出屏幕上的位置画一些东西并让它们互动。

我似乎无法弄清楚如何更改 CGPDFDictionary 对象并将它们写回文件。可以使用 CGPDF APIs 来创建一个新的 PDF 文档,但是如何使用它来修改现有文件呢?

我是否应该寻找其他地方,例如 PoDoFo 或 libHaru 之类的第 3 方 PDF 库?

我很想听听任何成功修改 PDF 并将其写回的人的意见。

【问题讨论】:

我已经问过这个问题几次(有赏金),但没有结果。经过大量研究和工作,您需要编写一个库来使用 C/C++ 来完成它。 PoDoFo 不会保存回来,libHaru 不会打开现有的 pdf(基于内存,可能是向后的)。从那以后,我刚刚离开那个项目,并试图忘记 CGPDF* API 的可怕之处。 颤抖 同意。你很可能不得不自己动手。如果您不要求结果是可编辑的,您也许还可以从头开始创建 PDF (UIGraphicsBeginPDFContextToFile) 并呈现您现有的 PDF 以及您在其中创建的任何其他覆盖/文本。不过这会很慢,而且结果将不再是交互式的。 【参考方案1】:

我曾经通过翻阅 PDF(我的意思是使用正则表达式)非常便宜地做到了这一点,并且只是肮脏地更改了原始 PDF 数据文件的实际原始文本。

它可以在简单的情况下完美地工作,您可以轻松找到有问题的值。

不知道你想在这里做什么,只是一个横向的想法!希望对您有所帮助!

【讨论】:

感谢大家的cmets。 @joe Blow,您能否详细解释一下您是如何做到的。可能是一些示例代码等。谢谢 @joe Blow,这听起来对我来说是一个完美的解决方案。能否详细说明在 Objective-c 中如何读取原始 pdf 数据?

以上是关于在 iOS 上修改 PDF 交互式表单域的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Java 创建填充PDF表单域

Java创建填充pdf表单域

带有可填写表单域的 PDF +“另存为”=带有固定文本的 PDF - 如何?

从 Excel VBA 生成包含表单域的 PDF

Java 创建填充PDF表单域

5.简述Servlet与表单如何交互?