Vyplňte formulář PDF

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ě

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:

  1. Vytvořte instanci třídy Document
  2. Přidejte prázdnou stránku do dokumentu PDF
  3. Přidejte pole TextBox do formuláře
  4. Nastavte různé vlastnosti polí včetně písma, ohraničení atd.
  5. Přidejte Tlačítko Rádio do formuláře
  6. 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:

PDF formulář

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:

  1. Načíst zdrojový dokument PDF
  2. Získejte Textbox Pole a hodnoty výplně
  3. Získejte Radio button field a vyberte možnost ze skupiny
  4. 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#:

Plnitelné PDF

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ů:

  1. Načtěte formulář PDF
  2. Získejte konkrétní pole pomocí jeho názvu
  3. Upravit hodnotu pole
  4. 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ů:

  1. Načtěte dokument PDF
  2. Volejte metodu Delete s názvem pole formuláře
  3. 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ů:

  1. Spusťte instanci třídy Document
  2. Přidejte TextBoxField na první stránku na konkrétní souřadnice stránky
  3. Nastavte JavaScript
  4. Zadejte akci dokumentu
  5. 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.

Viz také