Ke sběru dat a informací se často používají formuláře PDF. Například dotazníky jsou obvykle navrženy tak, aby shromažďovaly odpovědi pro účely průzkumu. Můžete vyplňovat, upravovat a upravovat formuláře PDF v C# programově, protože v dnešním digitálním světě komunikujeme s různými vyplnitelnými formuláři PDF. Vzhledem k obrovskému rozsahu a důležitosti formulářů PDF podporuje Aspose.PDF for .NET API mnoho funkcí pro práci s formuláři PDF. Podívejme se v tomto článku na následující případy použití pomocí jazyka C#:
- Vytvářejte vyplnitelné formuláře PDF pomocí C# programově
- Vyplňte pole formuláře ve stávajícím souboru PDF pomocí C# programově
- Úprava pole formuláře v dokumentu PDF pomocí jazyka C#
- Odstranění pole formuláře ve stávajícím souboru PDF pomocí C#
- Zachovat rozšířená práva formulářů PDF pomocí jazyka C#
- Použijte JavaScript ve formuláři PDF pomocí C#
Vytvářejte vyplnitelné formuláře PDF pomocí C# programově
Vyplnitelný formulář PDF můžete vytvořit úplně od začátku pomocí Aspose.PDF for .NET API. Zde se podíváme na základní příklad přidání dvou instancí TextBoxField a RadioButton. Jedno z TextBoxField je však jednořádkové, zatímco druhé je víceřádkové. Níže jsou uvedeny kroky k vytvoření formuláře v dokumentu PDF:
- Vytvořte instanci třídy Document
- Přidejte prázdnou stránku do dokumentu PDF
- Přidejte pole TextBox do formuláře
- Nastavte různé vlastnosti polí včetně písma, ohraničení atd.
- Přidejte Tlačítko Rádio do formuláře
- Uložit dokument PDF
Následující fragment kódu ukazuje, jak vytvořit formulář v PDF pomocí C#:
Document pdfdoc = new Document();
Page page = pdfdoc.Pages.Add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 740, 440, 770));
nameBox.PartialName = "nameBox1";
nameBox.DefaultAppearance.FontSize = 10;
nameBox.Multiline = true;
Border nameBorder = new Border(nameBox);
nameBorder.Width = 1;
nameBox.Border = nameBorder;
nameBox.Characteristics.Border = System.Drawing.Color.Black;
nameBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
TextBoxField mrnBox = new TextBoxField(pdfdoc, new Aspose.Pdf.Rectangle(275, 718, 440, 738));
mrnBox.PartialName = "Box1";
mrnBox.DefaultAppearance.FontSize = 10;
Border mrnBorder = new Border(mrnBox);
mrnBorder.Width = 1;
mrnBox.Border = mrnBorder;
mrnBox.Characteristics.Border = System.Drawing.Color.Black;
mrnBox.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Red);
// Přidejte pole formuláře na první stránku dokumentu PDF
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);
//Přidejte přepínací tlačítka na konkrétní souřadnice polohy v PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Zde nastavte pozici
table.Left = 200;
table.Top = 300;
table.ColumnWidths = "120";
page.Paragraphs.Add(table);
Aspose.Pdf.Row r1 = table.Rows.Add();
Aspose.Pdf.Row r2 = table.Rows.Add();
Aspose.Pdf.Cell c1 = r1.Cells.Add();
Aspose.Pdf.Cell c2 = r2.Cells.Add();
RadioButtonField rf = new RadioButtonField(page);
rf.PartialName = "radio";
pdfdoc.Form.Add(rf, 1);
RadioButtonOptionField opt1 = new RadioButtonOptionField();
RadioButtonOptionField opt2 = new RadioButtonOptionField();
opt1.OptionName = "Yes";
opt2.OptionName = "No";
opt1.Width = 15;
opt1.Height = 15;
opt2.Width = 15;
opt2.Height = 15;
rf.Add(opt1);
rf.Add(opt2);
opt1.Border = new Border(opt1);
opt1.Border.Width = 1;
opt1.Border.Style = BorderStyle.Solid;
opt1.Characteristics.Border = System.Drawing.Color.Black;
opt1.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt1.Caption = new TextFragment("Yes");
opt2.Border = new Border(opt1);
opt2.Border.Width = 1;
opt2.Border.Style = BorderStyle.Solid;
opt2.Characteristics.Border = System.Drawing.Color.Black;
opt2.DefaultAppearance.TextColor = System.Drawing.Color.Red;
opt2.Caption = new TextFragment("No");
c1.Paragraphs.Add(opt1);
c2.Paragraphs.Add(opt2);
pdfdoc.Save(dataDir + "Fillable_PDF_Form.pdf");
Snímek obrazovky níže ukazuje výstupní dokument PDF obsahující pole formuláře, jak je uvedeno ve výše uvedeném úryvku kódu:
Vyplňte, upravte nebo odstraňte pole formuláře ve stávajícím PDF pomocí C#
Jak jsme prozkoumali vytváření formuláře v dokumentu PDF pomocí jazyka C#, Aspose.PDF for .NET API podporuje také práci s existujícími formuláři PDF. Pojďme diskutovat o následujících funkcích API.
i) Vyplňte pole formuláře ve existujícím souboru PDF pomocí C# programově
Při vyplňování formulářů PDF budeme pokračovat dokumentem PDF, který byl vytvořen v příkladu výše. Níže jsou uvedeny kroky k vyplnění polí v existujícím dokumentu PDF:
- Načíst zdrojový dokument PDF
- Získejte Textbox Pole a hodnoty výplně
- Získejte Radio button field a vyberte možnost ze skupiny
- Uložte vyplněný formulář PDF
Následující fragment kódu následuje tyto kroky a vysvětluje, jak vyplnit pole v dokumentu PDF pomocí C#:
// Otevřete dokument
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");
// Získejte pole
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Vyplňte hodnoty polí formuláře
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";
// Získat pole přepínače
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Zadejte index přepínacího tlačítka ze skupiny
radioField.Selected = 1;
dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Uložit aktualizovaný dokument
pdfDocument.Save(dataDir);
Níže uvedený snímek obrazovky ukazuje vyplněná pole formuláře formuláře PDF pomocí C#:
ii) Upravte pole formuláře v dokumentu PDF pomocí jazyka C#
Někdy může být nutné změnit hodnotu v libovolném poli formuláře PDF. Změna hodnoty v poli formuláře je základní případ použití, kterého lze dosáhnout pomocí následujících kroků:
- Načtěte formulář PDF
- Získejte konkrétní pole pomocí jeho názvu
- Upravit hodnotu pole
- Uložte aktualizovaný dokument PDF
Následující fragment kódu ukazuje, jak změnit hodnotu v poli formuláře dokumentu PDF:
// Otevřete dokument
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Získejte pole
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Upravit hodnotu pole
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Uložit aktualizovaný dokument
pdfDocument.Save(dataDir);
Zde je pozoruhodné, že můžete nejen změnit hodnotu formuláře, ale lze aktualizovat i další vlastnosti. Pole bylo například ve výše uvedeném úryvku kódu označeno jako Pouze pro čtení.
iii) Odstraňte pole formuláře ze stávajícího souboru PDF pomocí jazyka C#
Již jsme se dozvěděli o přidávání a vyplňování polí formuláře PDF. Nyní se podívejme na odstranění pole formuláře. Musíte postupovat podle následujících kroků:
- Načtěte dokument PDF
- Volejte metodu Delete s názvem pole formuláře
- Uložit dokument PDF
Následující fragment kódu ukazuje, jak odstranit pole formuláře ze souboru PDF pomocí C#:
// Otevřete dokument
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Odstraňte konkrétní pole podle názvu
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Uložte upravený dokument
pdfDocument.Save(dataDir);
Zachovat rozšířená práva formulářů PDF pomocí jazyka C#
Formulář PDF může mít rozšířená práva, označovaná také jako rozšířené funkce, která byste chtěli zachovat během manipulace s formulářem. Měli byste jej ukládat postupně podle následujících kroků:
- Načtěte dokument PDF do Stream
- Práce s formulářem
- Uložte soubor bez parametru
Následující fragment kódu C# vysvětluje, jak zachovat rozšířená práva na formulář PDF:
// Přečtěte si zdrojový formulář PDF pomocí FileAccess of Read and Write.
// Potřebujeme oprávnění ReadWrite, protože po úpravě
// Aktualizovaný obsah musíme uložit do stejného dokumentu/souboru.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Instancia dokumentu instance
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Získejte hodnoty ze všech polí
foreach (Field formField in pdfDocument.Form)
{
// Pokud celý název pole obsahuje A1, proveďte operaci
if (formField.FullName.Contains("nameBox1"))
{
// Přenést pole formuláře jako textové pole
TextBoxField textBoxField = formField as TextBoxField;
// Upravit hodnotu pole
textBoxField.Value = "Preserve Extended Features";
}
}
// Uložte aktualizovaný dokument do save FileStream
pdfDocument.Save();
// Zavřete objekt File Stream
fs.Close();
Použijte JavaScript ve formuláři PDF pomocí C#
Pomocí Aspose.PDF for .NET API můžete použít JavaScript v polích formuláře PDF. K dosažení tohoto požadavku postupujte podle následujících kroků:
- Spusťte instanci třídy Document
- Přidejte TextBoxField na první stránku na konkrétní souřadnice stránky
- Nastavte JavaScript
- Zadejte akci dokumentu
- Uložit dokument PDF
Následující fragment kódu ukazuje, jak přidat JavaScript ve formě PDF pomocí C#:
Aspose.Pdf.Document pdfdoc = new Aspose.Pdf.Document();
pdfdoc.Pages.Add();
Aspose.Pdf.Forms.TextBoxField textBoxField = new Aspose.Pdf.Forms.TextBoxField(pdfdoc.Pages[1], new Aspose.Pdf.Rectangle(85, 750, 215, 770));
textBoxField.PartialName = "textbox1";
textBoxField.Value = "Text Box";
//TextBoxField.Border = new Border();
Border border = new Border(textBoxField);
border.Width = 2;
border.Dash = new Dash(1, 1);
textBoxField.Border = border;
textBoxField.DefaultAppearance.FontSize = 10;
textBoxField.Color = Aspose.Pdf.Color.FromRgb(System.Drawing.Color.Green);
// Přidejte pole do dokumentu
pdfdoc.Form.Add(textBoxField, 1);
string JS = @"var w = this.getField('" + textBoxField.PartialName + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.OpenAction = new JavascriptAction(JS);
pdfdoc.Save(dataDir + "JS_Form.pdf");
JavaScript získá aktuální datum a čas systému při otevření dokumentu PDF a tato hodnota se vyplní do textového pole.
Závěr
V tomto článku jsme se naučili různé aspekty práce s formulářem v dokumentech PDF. Vytváření, vyplňování nebo úprava formulářů PDF je s Aspose.PDF for .NET API jednoduché. Rozhraní API nabízí mnoho zajímavých funkcí pro práci s různými soubory. Sdělte nám svůj názor nebo komentáře prostřednictvím Free Support Forum.