2011-12-03 2 views
10

私は既存のpdfファイルを取って、プログラムでフォームフィールドのリストをテキストで入力し、それをユーザーに表示することなくpdfを保存する必要があります。iOSでは、どのようにプログラム形式でPDFフォームフィールドに記入できますか?

たとえば、「LastName」と「FirstName」という名前のフィールドがpdfファイルに含まれている場合、「FirstName」の値を「Louis」に設定してファイルを保存したいとします。

私は長い間検索してきましたが、iOSのドキュメント(およびここでの質問のほとんど)は、PDFコンテンツを表示または作成するのではなく、表示または作成するようになっているようです。

EDIT:
私の主な質問は:それは、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();"]; 

あなたは、「フィールド2」と「フィールド2を2 UILabelsを作成したり、UITextFieldsをし、それらを呼び出す必要があります"あなたの.hファイルで。次に、置き換える必要があるフィールドのIDを見つけることができます。 #field1を入力して、「#field1」と「#field2」を置いた2番目のフィールドを入れてください。ページが既にロードされているUIWebViewも必要です。このコードはの後にのUIWebViewページが読み込まれた後に使用されます。たぶん、次の操作を行います

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

// Insert above code here 

} 

あなたが全体のフォームのためにこれを行うにしたい場合は、おそらくJavaScriptを完全に理解する必要があるが、これはあなたが始める必要があります。

希望はあなたを助けます。

+0

例をお寄せいただきありがとうございますが、これはpdfにする必要があります! – lnafziger

+2

htmlをPDFに変換できませんか? – pixelbitlabs

+1

残念ながら、これは定期的に変更される既存の非常に複雑なpdfなので、コードで再作成(保守)したくはありません(Webページとしてもpdfを作成することでもありません)。 – lnafziger

1

私はその種の機能がiOSフレームワークに存在するとは思っていません。関連する情報のほとんどが、「変更する代わりにpdfコンテンツを表示または作成するように見える」と思われる理由は、PDF機能の大部分のユースケースで必要とされるものであるからです。

PDFを開き、AcroFormフィールドに入力してからPDFをスタンプすることができるサードパーティのライブラリが必要です。私はJavaでiTextを使用しています(C#にはiTextSharpもありますが)Objective-Cのためのものは何も分かりません。

ライブラリを見つけたら、プロジェクトに統合する必要があります。間違いなく、使用しているSDKのバージョンに関係なく、ここにはいくつかの関連する質問/回答があります。

+0

入力いただきありがとうございますが、私は第三者のライブラリを望んでいません。私は、一般的なソリューション(私はそれを完了すると私は他の人と共有する)を書くために、IOSのフレームワーク関数を使用したい。たくさんのiOSドキュメントを読んだ後、私はそれができると確信していますが、より親しみやすい人が私に正しい方向を向けることができると期待していました! – lnafziger

+0

シャギーフロッグが正しいです、CGPDF * APIはフォームフィールドの塗りつぶしを含むPDFの変更をサポートしていません。 – iPDFdev

+2

CGPDFでは直接修正はできませんが、最終的な結果は私が探しているものです。私が考えているアプローチは、PDFストリームを開き、各辞書項目をコピーし、フォームフィールドの内容を変更し、新しいpdfに保存することです。私が助けが必要な部分は、私が見てきたルーチンが文書全体にアクセスするのではなく、PDFから特定の部分を取り出すことができるので、pdf全体をコピーすることです。私が探しているのは、ストリームを開き、一度に1つの要素を同じファイルで終わる新しいファイルにコピーする方法です。 – lnafziger

関連する問題