2011-12-03 4 views
10

기존 pdf 파일을 가져 와서 프로그래밍 방식으로 양식 필드 목록을 텍스트로 채운 다음 pdf를 사용자에게 표시하지 않고 저장해야합니다.iOS에서 어떻게 프로그래밍 방식으로 PDF 양식 필드를 채울 수 있습니까?

예를 들어, pdf 파일에 "LastName"및 "FirstName"이라는 필드가 들어있는 경우 "FirstName"값을 "Louis"로 설정하고 파일을 저장하려고합니다.

오랫동안 검색해 왔으며 iOS 설명서 (및 여기에 나오는 대부분의 질문)가 수정되지 않고 PDF 콘텐츠를 표시하거나 만드는 데 중점을 둔 것처럼 보입니다. .

편집 :
내 주요 질문은 : 그것은 PDF 스트림 (나는이 작업을 수행하는 방법을 알고) 열고 새 PDF로 기존의 각 PDF 사전 항목을 복사 할 수 있습니까? 나는 pdf에 사전 항목을 쓰는 방법을 찾을 수 없었습니다.

+0

이렇게하는 방법을 찾아 냈습니까? 네가 생각해 낸 것을 나눠 주겠니? – xizor

+0

불행히도, 아니에요. 방금 양식 필드를 비워두고 파일에 직접 작성한 문자열을 남겼습니다. – lnafziger

+0

@lnafziger 문자열을 파일에 직접 작성하는 방법에 대한 코드를 게시 할 수 있습니까? 나는이 작업을 해왔지만 형식 값을 수정하면 파일의 모든 이진 데이터가 손상됩니다. – paulrehkugler

답변

0

이렇게하면 HTML 페이지로 작업하기가 더 쉬울 것입니다. 당신이 대신 된 .pdf 형식의 HTML 페이지를 사용하려면 다음 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();"]; 

당신은 "FIELD2"와 "FIELD2 두 개의 UILabels를 만들거나 UITextFields를하고 전화를해야합니다 ".h 파일에서. 예를 들어 교체해야 할 입력란의 ID를 찾을 수 있습니다. # field1 다음에 "# field1"을 넣은 곳과 "# field2"를 넣은 두 번째 입력란에 넣으십시오. 이미로드 된 페이지가있는 UIWebView가 있어야합니다. 이 코드는 이후에 으로 사용되며 UIWebView 페이지가로드되었습니다. 어쩌면 다음을 수행하면 전체 양식이 작업을 수행하려면

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

// Insert above code here 

} 

당신은 아마 자바 스크립트의 완전한 이해를 필요로하지만, 이것은 당신이 시작할 수 있어야합니다.

호프가 도움이됩니다.

+0

예를 들어 주셔서 감사합니다, 그러나 이것은 pdf에 있어야합니다! – lnafziger

+2

html을 PDF로 변환 할 수 없습니까? – pixelbitlabs

+1

불행히도, 이것은 기존의 매우 복잡한 pdf로 정기적으로 변경되므로 코드에서 다시 작성 (유지 관리)하고 싶지는 않습니다 (웹 페이지 또는 pdf 작성 중). – lnafziger

1

나는 그 종류의 기능이 iOS 프레임 워크에 있을지 의심 스럽다. pdf 내용을 수정하는 대신에 표시하거나 작성하는 것과 관련이있는 대부분의 관련 정보는 PDF 기능에 대한 대다수의 유스 케이스가 원하거나 필요하기 때문에 나타납니다.

PDF를 열고 AcroForm 필드를 채운 다음 PDF를 스탬프 처리 할 수있는 타사 라이브러리를 찾아야합니다. 나는 iText를 자바에서 사용한다. (C#에서는 iTextSharp도있다.) Objective-C에 대해서는 아무 것도 모른다. 당신이 그 라이브러리를 찾으면

, 당신은 당신의 프로젝트에 통합해야합니다. 당신이 사용하고있는 SDK 버전에 상관없이 의심 할 여지없이 여기에 몇 가지 관련 질문/답변이 있습니다.

+0

입력 해 주셔서 감사합니다. 그러나 제 3 자 라이브러리가 필요하지 않습니다. 일반적인 솔루션을 작성하기 위해 iOS 프레임 워크 함수를 사용하고 싶습니다 (완성 할 때 다른 사람들과 공유 할 것입니다). 많은 iOS 문서를 읽은 후에는이 작업을 수행 할 수 있다고 확신하지만 더 익숙한 사람이 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. – lnafziger

+0

Shaggy Frog이 맞습니다. CGPDF * API는 양식 필드 채우기를 포함하여 PDF 수정을 지원하지 않습니다. – iPDFdev

+2

CGPDF는 직접 수정을 허용하지 않지만 최종 결과는 내가 찾고있는 것입니다. 내가 생각하고있는 접근 방식은 PDF 스트림을 열고, 각 사전 항목을 복사하고, 양식 필드의 내용을 수정하고, 새로운 pdf에 저장하는 것입니다. 내가 도움이 필요한 부분은 내가 보았던 루틴이 전체 문서에 대한 액세스 권한을 부여하는 대신 pdf에서 특정 부분을 가져올 수 있기 때문에 전체 PDF를 복사하도록 보장합니다. 내가 찾고있는 것이 스트림을 열고 한 번에 하나의 요소를 동일한 파일로 끝나는 새 파일로 복사하는 방법입니다. – lnafziger

관련 문제