В iOS, как вы можете программно заполнить поле формы PDF? - PullRequest
10 голосов
/ 03 декабря 2011

Мне нужно взять существующий файл PDF и программно заполнить список полей формы текстом, а затем сохранить файл PDF, даже не отображая его пользователю.

Например, если файл PDF содержит поля с именами «LastName» и «FirstName», я хотел бы установить значение «FirstName» в «Louis», а затем сохранить файл.

Я долго искал и не могу найти никаких указаний даже о том, с чего начать, поскольку документация iOS (и большинство вопросов здесь), похоже, ориентирована на отображение или создание pdf-контента вместо его модификации.

EDIT:
Мой главный вопрос: можно ли открыть поток PDF (я знаю, как это сделать) и скопировать каждый существующий элемент словаря PDF в новый PDF? Я не смог найти способ записать элементы словаря в PDF.

Ответы [ 2 ]

1 голос
/ 04 декабря 2011

Я сомневаюсь, что такая функциональность когда-либо будет в платформах iOS.Причина, по которой большая часть связанной информации, которую вы можете найти, «кажется, направлена ​​на отображение или создание содержимого PDF вместо его изменения», заключается в том, что именно этого и потребует подавляющее большинство вариантов использования для функциональности PDF.

Вам нужно будет найти стороннюю библиотеку, которая может открывать PDF-файлы, заполнять поля AcroForm и затем печатать PDF-файл.Я использую iText на Java (есть также iTextSharp для C #), но я ничего не знаю для Objective-C.

Как только вы найдете эту библиотеку, вам нужно будет интегрировать ее в свой проект.В SO, несомненно, есть несколько связанных вопросов / ответов для любой используемой версии SDK.

0 голосов
/ 04 декабря 2011

Это было бы проще сделать с HTML-страницей.Если вы хотите использовать HTML-страницу вместо .pdf формы, то вот как вы это сделаете:

[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();"];

Вам нужно создать две UILabels или UITextFields и назвать их «field2» и"field2" в вашем .h файле.Затем вы можете найти идентификатор поля, которое нужно заменить, например, # field1, а затем поместить его там, где я поставил "# field1", и снова для второго поля, где я поставил "# field2".Там также должен быть UIWebView с уже загруженной страницей.Этот код должен использоваться после загрузки страницы UIWebView.Возможно, сделайте следующее:

-(void)webViewDidFinishLoad:(UIWebView *)webView {

// Insert above code here

}

Возможно, вам нужно полное понимание Javascript, если вы хотите сделать это для всей формы, но это должно помочь вам начать.

Надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...