Heim > Artikel > Backend-Entwicklung > Ausführliche Einführung in das Erstellen und Ausfüllen von Feldern in PDF mit C# (Bild und Text)
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:
Wie erstelle ich bearbeitbare Felder in PDF?
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 Feldern1. 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.
Domäne Name |
|
||||||||||||||
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");
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;
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:
| Beispiel | Javascript |
Methode |
||||||||||||||||||||||||||||||||
31.01.2008 | AFDate_FormatEx("mm/dd/yyyy"); AFDate_KeystrokeEx("mm/tt/jjjj"); |
GetDateFormatString("mm/tt/jjjj"); GetDateKeystrokeString("mm/dd/yyyy"); | |||||||||||||||||||||||||||||||||
31.01.2008 | AFDate_FormatEx("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);GetDateFormatString("m/d/yyyy"); GetDateKeystrokeString("m/d/yyyy"); |
|||||||||||||||||||||||||||||||||
Postleitzahl | 12345 | AFSpecial_Format(0); AFSpecial_KeyString(0); |
GetSpecialFormatString(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");Zip+4 |
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); |
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!