この記事では主に、PDF にフィールドを作成および入力するための C# を紹介します。非常に優れた参考値です。エディターで見てみましょう
ご存知のとおり、PDF ドキュメントは通常、編集または変更できません。ユーザーが PDF ドキュメント内の他のコンテンツに署名または入力する必要がある場合、PDF ドキュメントには編集可能なフィールドが必要です。開発者は、プログラミングを通じて PDF テンプレート フィールドにデータを入力する必要に遭遇することもよくあります。現時点では、次の 2 つの問題を解決する必要があります:
PDF で編集可能なフィールドを作成するには?
これらのフィールドにコンテンツを正確に入力するにはどうすればよいですか?
ここでは、C# と Free Spire.PDF コンポーネントを使用してこの機能を実現する方法を紹介します。
Free Spire.PDFコンポーネントの概要
Free Spire.PDF は、.NET アプリケーションで PDF ドキュメントを作成、編集、処理、読み取りするための無料のプロフェッショナルな PDF コンポーネントです。 PDFドキュメントの結合/分割、変換(HTMLからPDF、PDFから画像など)、印刷(サイレント印刷を含む)、圧縮、コメントの追加、セキュリティ設定(デジタル署名を含む)など、豊富なPDFドキュメント処理操作をサポートします。 、フィールドの作成と入力、画像の挿入と抽出、テキストの抽出と強調表示など。 Adobe Acrobatに依存せず、中国語にも対応。
インストールに関しては、公式 Web サイトや、開発者が最もお気に入りで一般的に使用する方法である NuGet など、多くのチャネルがあります。 Visual Studio の NuGet パッケージ マネージャー コンソールで次の PowerShell コマンドを入力し、Enter キーを押すと、コンポーネント DLL がプロジェクトに自動的に参照されます:
PM> Install-Package FreeSpire.PDF
の作成と入力の実装ドメイン
1.ドメインを作成する
このコンポーネントは、さまざまな PDF ドメインを作成できる対応するクラスを多数提供します。多くの型があるため、いくつかの共通フィールドと、コンポーネント内のフィールドに対応するクラス名のみをリストします。
ドメイン名 |
クラス名 |
テキストフィールド |
PdfTextBoxフィールド |
署名フィールド |
PdfSignatureField |
PdfCheckBoxField |
|
ComboBox |
PdfComboBoxField |
ListBox |
PdfListBoxフィールド |
PdfRadioButtonListField (ラジオボタン) PdfButtonField (通常ボタン) |
ここでは、導入のために PDF ドキュメントで最も一般的な 2 つの編集可能なフィールド、テキスト フィールドと署名フィールドを選択します。
1.1 テキストフィールド
まず、単純なテキストフィールドを作成しました。作成時にフィールドの名前を指定する必要があります。この利点は、ドキュメント内に同時に複数のテキスト フィールドがある場合に、プログラムでフィールドに入力するときに、コンテンツを迅速かつ正確に入力できることです。ドメイン内のフィールドの名前に従って指定されたフィールド。ドメイン名を繰り返すべきではないことに注意してください。そうしないと、ドメイン名に対応するすべてのフィールドにコンテンツが入力されてしまいます。
//创建PDF文档 PdfDocument pdf = new PdfDocument(); //添加一个新页面 PdfPageBase page = pdf.Pages.Add(PdfPageSize.A4, new PdfMargins()); //添加文本到页面 PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 10f), true); page.Canvas.DrawString("年龄:", font, PdfBrushes.DeepSkyBlue, 10, 50); //创建文本域并指定文本域的名称 PdfTextBoxField textbox = new PdfTextBoxField(page, "Age"); //设置文本域的大小、位置、字体 textbox.Bounds = new RectangleF(40, 50, 50, 12); textbox.Font = font; //添加文本域到文档 pdf.Form.Fields.Add(textbox); //保存文档 pdf.SaveToFile("Fields.pdf");
もちろん、ほとんどの場合、必要なのは単純なテキストフィールドを作成することだけではなく、境界線、背景色、フォントの色、フォントの配置の設定など、他の設定も行う必要があるかもしれません。 。日付や一定範囲の数値のみなど、指定したテキストフィールドの入力内容も入力できます。
形式を設定します:
//设置边框 textbox.BorderWidth = 0.75f; textbox.BorderStyle = PdfBorderStyle.Solid; textbox.BorderColor = Color.Black; //设置背景色 textbox.BackColor = Color.Yellow; //设置字体颜色 textbox.ForeColor = Color.Red; //设置字体排列方式 textbox.TextAlignment = PdfTextAlignment.Center;
テキストフィールドの入力コンテンツを指定します:
Adobe Acrobat は、開発者が Javascript を使用して、テキストフィールドの入力コンテンツの形式、タイプなどを事前定義することをサポートしています。テキストフィールド。このコンポーネントはこのタイプのスクリプトもサポートしており、これらの機能を実装するための対応するメソッドを提供します。次の表に、いくつかの Javascript とメソッドを示します。
AFDate_FormatEx("mm/dd/yyyy"); |
AFDate_KeythroughEx("mm/dd/yyyy");GetDateFormatString("mm/dd/yyyy"); | GetDateKeythroughString("mm/dd/yyyy"); | Date |
2008/1/31 | AFDate_FormatEx("m/d/yyyy"); AFDate_KeythroughEx("m/d/yyyy"); | GetDateFormatString("m/d/yyyy"); | |
12345 | AFSpecial_Format(0); AFSpecial_Keythrough(0); | GetSpecialFormatString(0); | |
12345-1234 | AFSpecial_Format(1); AFSpecial_Keythrough(1); | GetSpecialFormatString(1); | |
(123) 456-7890 | AFSpecial_Format(2); AFSpecial_Keythrough(2); | GetSpecialFormatString(2); | |
$12,345.00 -$12,345.00 | AFNumber_Format(2, 0, 0, 0, "$", true); AFNumber_Keythrough(2, 0, 0, 0, "$", true); |
| GetRangeValidateString(true, 1, true, 10); |
例: | //指定输入数据在1-100之间 string js = PdfJavascript.GetRangeValidateString(true, 1, true, 100); PdfJavascriptAction jsAction = new PdfJavascriptAction(js); textbox.Actions.Validate = jsAction; ログイン後にコピー |
| 署名フィールドの作成はテキストと似ていますフィールド、ドメインの境界線、サイズ、位置、その他の |
//创建签名域并指定域名 PdfSignatureField signaturefield = new PdfSignatureField(page, "Signature"); //设置域的边框 signaturefield.BorderWidth = 1.0f; signaturefield.BorderStyle = PdfBorderStyle.Solid; signaturefield.BorderColor = new PdfRGBColor(System.Drawing.Color.Black); //设置高亮模式 signaturefield.HighlightMode = PdfHighlightMode.Outline; //设置大小与位置 signaturefield.Bounds = new RectangleF(40, 150, 200, 100); //将签名域添加到页面 pdf.Form.Fields.Add(signaturefield); ログイン後にコピー | 2. フィールドに入力する |
フィールドに入力するときは、まずドキュメント内のすべてのフィールドを取得してから、指定されたフィールドを 1 つずつ入力する必要があります。同じ種類のドメインが多数ある場合は、ドメイン名をすぐに入力できます。 | りー |