Ausführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text)

黄舟
Freigeben: 2017-03-31 15:05:53
Original
1918 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die relevanten Kenntnisse von C# zum Erstellen und Ausfüllen von Feldern in PDF vorgestellt. Es hat einen sehr guten Referenzwert, werfen wir einen Blick mit dem Editor unten

Wie wir alle wissen, können PDF-Dokumente normalerweise nicht bearbeitet oder geändert werden. Wenn der Benutzer das PDF-Dokument signieren oder andere Inhalte ausfüllen muss, muss das PDF-Dokument über bearbeitbare Felder verfügen. Entwickler stehen häufig vor der Notwendigkeit, Daten programmgesteuert in PDF-Vorlagenfelder einzutragen. Zu diesem Zeitpunkt müssen Sie die folgenden zwei Fragen lösen:

  1. Wie erstelle ich bearbeitbare Felder in PDF?

  2. Wie fülle ich den Inhalt dieser Felder genau aus?

Hier werde ich vorstellen, wie man C#- und Free Spire.PDF-Komponenten verwendet, um diese Funktion zu erreichen.

Free Spire.PDFKomponentenübersicht

Free Spire.PDF ist eine kostenlose professionelle PDF-Komponente zur Verwendung in .NET-Anwendungen. Erstellen, bearbeiten, PDF-Dokumente verarbeiten und lesen. Unterstützt umfassende Verarbeitungsvorgänge für PDF-Dokumente, wie Zusammenführen/Aufteilen von PDF-Dokumenten, Konvertierung (z. B. HTML in PDF, PDF in Bilder usw.), Drucken (einschließlich stillem Drucken), Komprimierung, Hinzufügen von Kommentaren und Sicherheitseinstellungen (einschließlich digitaler Signaturen). , Felder erstellen und ausfüllen, Bilder einfügen und extrahieren, Text extrahieren und hervorheben usw. Hängt nicht von Adobe Acrobat ab und unterstützt Chinesisch.

Was die Installation betrifft, gibt es viele Kanäle, darunter die offizielle Website und NuGet, die beliebteste und am häufigsten von Entwicklern verwendete Methode. Geben Sie den folgenden PowerShell-Befehl in die NuGet Package Manager-Konsole von Visual Studio ein und drücken Sie die Eingabetaste. Die Komponenten-DLL wird automatisch im Projekt referenziert:

PM> 🎜 >

Umsetzung des Anlegens und Ausfüllens von Feldern

1. Domäne erstellen

Diese Komponente stellt viele entsprechende Klassen bereit, mit denen wir eine Vielzahl von PDF-Domänen erstellen können. Da es viele Typen gibt, liste ich nur einige allgemeine Felder und die Klassennamen auf, die den Feldern in den Komponenten entsprechen.

ListBox

Domäne Name

域名

类名

文本域

PdfTextBoxField

签名域

PdfSignatureField

复选框

PdfCheckBoxField

组合框

PdfComboBoxField

列表框

PdfListBoxField

按钮

PdfRadioButtonListField(单选按钮)

PdfButtonField (普通按钮)

Klassenname
Textfeld PdfTextBoxField
Signaturfeld PdfSignatureField
Kontrollkästchen PdfCheckBoxField
ComboBox PdfComboBoxField
PdfListBoxField
Schaltfläche PdfRadioButtonListField (Optionsschaltfläche)PdfButtonField (normale Schaltfläche)

Hier wähle ich die beiden häufigsten bearbeitbaren Felder in PDF-Dokumenten aus, um sie vorzustellen: Textfelder und Signaturfelder.

1.1 Textfeld

Zuerst habe ich ein einfaches Textfeld erstellt. Sie müssen beim Erstellen den Namen des Felds angeben. Dies hat den Vorteil, dass wir den Inhalt schnell und genau ausfüllen können, wenn das Dokument mehrere Textfelder gleichzeitig enthält das angegebene Feld entsprechend dem Namen des Feldes in der Domäne. Es ist zu beachten, dass der Domainname nicht wiederholt werden sollte, da sonst der Inhalt in allen Feldern ausgefüllt wird, die dem Domainnamen entsprechen.

//创建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");
Nach dem Login kopieren

Ausführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text)

Natürlich bestehen unsere Anforderungen meistens nicht nur darin, ein einfaches Textfeld zu erstellen, sondern müssen auch einige andere Einstellungen vornehmen, z Ränder, Hintergrundfarben und Schriftfarben, Schriftanordnung. Sogar der Eingabeinhalt eines bestimmten Textfeldes, beispielsweise nur Datumsangaben oder Zahlen innerhalb eines bestimmten Bereichs, kann eingegeben werden.

Legen Sie das Format fest:

//设置边框
textbox.BorderWidth = 0.75f;
textbox.BorderStyle = PdfBorderStyle.Solid;
textbox.BorderColor = Color.Black;
//设置背景色
textbox.BackColor = Color.Yellow;
//设置字体颜色
textbox.ForeColor = Color.Red;
//设置字体排列方式 
textbox.TextAlignment = PdfTextAlignment.Center;
Nach dem Login kopieren

Ausführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text)

Geben Sie den Eingabeinhalt des Textfelds an:

Adobe Acrobat unterstützt Entwickler bei der Verwendung von Javascript, um das Format, den Typ usw. des Eingabeinhalts von Textfeldern vorab zu definieren. Diese Komponente unterstützt auch diese Art von Skripten und stellt entsprechende Methoden zur Implementierung dieser Funktionen bereit. In der folgenden Tabelle sind einige Javascripte und Methoden aufgeführt:

< td>
//指定输入数据在1-100之间
string js = PdfJavascript.GetRangeValidateString(true, 1, true, 100);
PdfJavascriptAction jsAction = new PdfJavascriptAction(js);
textbox.Actions.Validate = jsAction;
Nach dem Login kopieren
Datum

Beispiel: 1.2 SignaturfeldDas Erstellen eines Signaturfelds ähnelt einem Textfeld. Sie können auch den Rahmen festlegen. Größe und Position des Feldes. Warten Sie auf Attribute. Ich werde hier nicht auf Details eingehen. 2. Ausfüllen der Felder Sie müssen das Dokument erhalten Füllen Sie beim Ausfüllen der Felder zunächst alle Felder im Feld aus und füllen Sie dann die angegebenen Felder nacheinander aus. Wenn es viele Domänen desselben Typs gibt, können Sie die Domänennamen schnell eingeben.

Das obige ist der detaillierte Inhalt vonAusführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage

描述

示例

Javascript

方法

Date

01/31/2008

AFDate_FormatEx("mm/dd/yyyy");
AFDate_KeystrokeEx("mm/dd/yyyy");

GetDateFormatString("mm/dd/yyyy");
GetDateKeystrokeString("mm/dd/yyyy");

Date

1/31/2008

AFDate_FormatEx("m/d/yyyy");
AFDate_KeystrokeEx("m/d/yyyy");

GetDateFormatString("m/d/yyyy");
GetDateKeystrokeString("m/d/yyyy");

Zip code

12345

AFSpecial_Format(0);
AFSpecial_Keystroke(0);

GetSpecialFormatString(0);
GetSpecialKeystrokeString(0);

Zip+4

12345-1234

AFSpecial_Format(1);
AFSpecial_Keystroke(1);

GetSpecialFormatString(1);
GetSpecialKeystrokeString(1);

Phone number

(123) 456-7890

AFSpecial_Format(2);
AFSpecial_Keystroke(2);

GetSpecialFormatString(2);
GetSpecialKeystrokeString(2);

Money

,345.00
-,345.00

AFNumber_Format(2, 0, 0, 0, "$", true);
AFNumber_Keystroke(2, 0, 0, 0, "$", true);

GetNumberFormatString(2, 0, 0, 0, "$", true);
GetNumberKeystrokeString(2, 0, 0, 0, "$", true);

Validate

1≤input value≤10

AFRange_Validate(true,1,true,10)

GetRangeValidateString(true, 1, true, 10);

Description

Beispiel

Javascript


Methode

Ausführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text)31.01.2008

AFDate_FormatEx("mm/dd/yyyy"); AFDate_KeystrokeEx("mm/tt/jjjj");

GetDateFormatString("mm/tt/jjjj"); GetDateKeystrokeString("mm/dd/yyyy");

Datum

31.01.2008

AFDate_FormatEx("m/d/yyyy");
AFDate_KeystrokeEx("m/d/yyyy");

//创建签名域并指定域名
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);
Nach dem Login kopieren
GetDateFormatString("m/d/yyyy");

GetDateKeystrokeString("m/d/yyyy");Ausführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text)

Postleitzahl

12345

AFSpecial_Format(0);

AFSpecial_KeyString(0);

GetSpecialFormatString(0);
GetSpecialKeystrokeString(0);

//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Fields.pdf");
//获取第一页
PdfPageBase page = pdf.Pages[0];
//获取文档的所有域
PdfFormWidget form = pdf.Form as PdfFormWidget;
//填充第一个文本域
PdfTextBoxFieldWidget textboxField = form.FieldsWidget[0] as PdfTextBoxFieldWidget;
textboxField.Text = "25";
//填充第二个签名域
PdfSignatureFieldWidget signatureField = form.FieldsWidget[1] as PdfSignatureFieldWidget;
String pfxPath = @"gary.pfx";
PdfCertificate digi = new PdfCertificate(pfxPath, "123456");   
PdfSignature signature = new PdfSignature(pdf, page, digi, "demo", signatureField);
signature.IsTag = true;
signature.DigitalSigner = "Gary";
signature.ConfigGraphicType = ConfiguerGraphicType.TextSignInformation;
//保存文档
pdf.SaveToFile("Fill.pdf");
Nach dem Login kopieren
Zip+4

Ausführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text)12345-1234 AFSpecial_Format(1); AFSpecial_KeyString(1); GetSpecialFormatString(1); GetSpecialKeystrokeString(1);
Telefonnummer (123) 456-7890 AFSpecial_Format(2); AFSpecial_KeyString(2); GetSpecialFormatString(2); GetSpecialKeystrokeString(2);
Geld 12.345,00 $ -12.345,00 $ AFNumber_Format(2, 0, 0, 0, "$", true); AFNumber_KeyString(2, 0, 0, 0, "$", true); GetNumberFormatString(2, 0, 0, 0, "$", true); GetNumberKeystrokeString(2, 0, 0, 0, "$", true);
Validate 1≤Eingabewert≤10 AFRange_Validate(true,1,true,10) GetRangeValidateString(true, 1, true , 10);