在iOS中,你怎样才能以编程方式填写一个PDF表单字段?

我需要一个现有的PDF文件,并以编程方式填写表单域的文本列表,然后保存PDF,而不会显示给用户。

例如,如果pdf文件包含名为“LastName”和“FirstName”的字段,我想将“FirstName”的值设置为“Louis”,然后保存该文件。

我一直在寻找很长一段时间,甚至没有find任何指导,因为iOS文档(和这里的大多数问题)似乎适用于显示或创buildPDF内容,而不是修改它。

编辑:
我的主要问题是:是否有可能打开一个PDFstream(我知道如何做到这一点),并将每个现有的PDF字典项目复制到一个新的PDF? 我一直无法find一种方法来将字典项目写成pdf。

我怀疑这种function将永远在iOS框架中。 大部分相关信息的原因是“似乎适用于显示或创buildPDF内容而不是修改它”,因为绝大多数用例都希望或需要PDFfunction。

您需要find可打开PDF的第三方库,填写AcroForm字段,然后盖上PDF。 我在Java上使用iText(也有用于C#的iTextSharp),但是我不知道Objective-C的任何东西。

一旦你find这个库,你需要把它整合到你的项目中。 无论您使用的是哪个版本的SDK,在这里无疑都有几个相关的问题/答案。

这对HTML页面来说更容易些。 如果你想使用一个HTML页面,而不是一个.pdfforms,那么thius是你将如何去做到这一点:

[field1 setText:@"Field 1 Text"]; [field2 setText:@"Field 2 Text"]; NSString *result; result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#field1').val('%@');", field1.text]]; result = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"$('#pfield2').val('%@');", field2.text]]; result = [webView stringByEvaluatingJavaScriptFromString:@"$('#submitbutton').click();"]; 

您需要创build两个UILabels或UITextField,并在您的.h文件中将它们称为“field2”和“field2”。 然后你可以find你需要replace的字段的ID,例如#field1,然后把它放在我放置“#field1”的地方,再把第二个字段放在“#field2”的地方。 还需要有一个已加载页面的UIWebView。 该代码将 UIWebView页面加载后使用。 也许做到以下几点:

 -(void)webViewDidFinishLoad:(UIWebView *)webView { // Insert above code here } 

如果你想为整个表单做这个,你可能需要对Javascript有一个完整的理解,但是这会让你开始。

希望能帮助你。