Fyll i PDF-formulär

PDF-formulär används ofta för att samla in data och information. Till exempel är frågeformulär vanligtvis utformade för att samla in svar för undersökningsändamål. Du kan fylla, redigera, ändra PDF-formulär i C# programmatiskt när vi interagerar med olika ifyllbara PDF-formulär i dagens digitala värld. Med tanke på PDF-formulärens enorma omfattning och betydelse, stöder Aspose.PDF for .NET API många funktioner för att arbeta med PDF-formulär. Låt oss utforska följande användningsfall med C#-språket i den här artikeln:

Skapa ifyllbara PDF-formulär med C# Programmatically

Du kan skapa ett ifyllbart PDF-formulär från början med Aspose.PDF för .NET API. Här kommer vi att överväga det grundläggande exemplet på att lägga till två TextBoxField-instanser och RadioButton. En av TextBoxField är dock en rad medan den andra är multi-line. Nedan följer stegen för att skapa ett formulär i PDF-dokument:

  1. Skapa en instans av klassen Document
  2. Lägg till en tom sida i PDF-dokument
  3. Lägg till fältet TextBox i formuläret
  4. Ställ in olika egenskaper för fälten inklusive teckensnitt, kant etc.
  5. Lägg till Radio Button i formuläret
  6. Spara PDF-dokument

Följande kodavsnitt visar hur man skapar formulär i PDF med 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);
// Lägg till formulärfält på första sidan i PDF-dokumentet            
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);

//Lägg till radioknappar vid specifika positionskoordinater i PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Ställ in position här
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");

Skärmdumpen nedan visar utdata-PDF-dokument som innehåller formulärfält enligt ovanstående kodavsnitt:

PDF-formulär

Fyll, ändra eller ta bort formulärfält i befintlig PDF med C#

När vi har utforskat att skapa ett formulär i PDF-dokument med C#, stöder Aspose.PDF för .NET API att arbeta med befintliga PDF-formulär också. Låt oss diskutera följande funktioner i API:et.

i) Fyll ett formulärfält i befintlig PDF-fil med C# Programmatically

För att fylla i PDF-formulären fortsätter vi med PDF-dokumentet som skapades i exemplet ovan. Nedan följer stegen för att fylla i fält i ett befintligt PDF-dokument:

  1. Ladda käll PDF-dokument
  2. Textbox Fält och fyllvärden
  3. Hämta Radioknappfält och välj ett alternativ från gruppen
  4. Spara ifyllt PDF-formulär

Följande kodavsnitt följer dessa steg och förklarar hur man fyller i fält i ett PDF-dokument med C#:

// Öppna dokumentet
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");

// Få fälten
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Fyll i formulärfältens värden
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";

// Hämta alternativknappsfält
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Ange indexet för alternativknappen från gruppen
radioField.Selected = 1;

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Spara uppdaterat dokument
pdfDocument.Save(dataDir);

Skärmbilden nedan visar ifyllda formulärfält i PDF-formulär med C#:

Fyllbar PDF

ii) Ändra ett formulärfält i PDF-dokument med C#

Ibland kan du behöva ändra värde i vilket fält som helst i ett PDF-formulär. Att ändra ett värde i ett formulärfält är ett grundläggande användningsfall som kan uppnås med följande steg:

  1. Ladda PDF-formuläret
  2. Skaffa ett specifikt fält med dess namn
  3. Ändra fältvärdet
  4. Spara det uppdaterade PDF-dokumentet

Följande kodavsnitt visar hur du ändrar ett värde i ett formulärfält i PDF-dokument:

// Öppna dokumentet
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Skaffa ett fält
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Ändra fältvärdet
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Spara uppdaterat dokument
pdfDocument.Save(dataDir);

Det är anmärkningsvärt här att du inte bara kan ändra värdet på formuläret utan även andra egenskaper kan uppdateras. Till exempel har fältet markerats som skrivskyddat i kodavsnittet ovan.

iii) Ta bort ett formulärfält i befintlig PDF-fil med C#

Vi har redan lärt oss hur man lägger till och fyller i PDF-formulärfält. Låt oss nu utforska hur man tar bort ett formulärfält. Du måste följa stegen nedan:

  1. Ladda PDF-dokumentet
  2. Ring raderingsmetod med namnet på formulärfältet
  3. Spara PDF-dokument

Följande kodavsnitt visar hur man tar bort formulärfält från PDF-fil med C#:

// Öppna dokumentet
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Ta bort ett visst fält efter namn
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Spara ändrat dokument
pdfDocument.Save(dataDir);

Bevara utökade rättigheter för PDF-formulär med C#

Ett PDF-formulär kan ha utökade rättigheter, även kallade utökade funktioner, som du skulle vilja bevara under formulärmanipulering. Du bör spara det stegvis medan du följer stegen nedan:

  • Ladda PDF-dokumentet i Stream
  • Arbeta med form
  • Spara filen utan någon parameter

Följande C#-kodavsnitt förklarar hur man bevarar utökade rättigheter för PDF-formulär:

// Läs käll-PDF-formuläret med FileAccess of Read and Write.
// Vi behöver ReadWrite-tillstånd eftersom efter ändring,
// Vi måste spara det uppdaterade innehållet i samma dokument/fil.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Instantiera dokumentinstans
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Få värden från alla fält
foreach (Field formField in pdfDocument.Form)
{
    // Om fältets fullständiga namn innehåller A1, utför åtgärden
    if (formField.FullName.Contains("nameBox1"))
    {
        // Cast formulärfält som TextBox
        TextBoxField textBoxField = formField as TextBoxField;
        // Ändra fältvärdet
        textBoxField.Value = "Preserve Extended Features";
    }
}
// Spara det uppdaterade dokumentet i save FileStream
pdfDocument.Save();
// Stäng File Stream-objektet
fs.Close();

Använd JavaScript i PDF-format med C#

Du kan använda JavaScript i PDF-formulärfält med Aspose.PDF för .NET API. Låt oss följa stegen nedan för att uppnå detta krav:

  1. Initiera en instans av klassen Document
  2. Lägg till ett TextBoxField på första sidan vid specifika sidkoordinater
  3. Konfigurera JavaScript
  4. Ange dokumentåtgärd
  5. Spara PDF-dokument

Följande kodavsnitt visar hur man lägger till JavaScript i PDF-form med 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);
// Lägg till fält i dokumentet
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 får det aktuella datumet och tiden för systemet när PDF-dokumentet öppnas och det värdet fylls i en textruta.

Slutsats

I den här artikeln har vi lärt oss olika aspekter av att arbeta med form i PDF-dokument. Att skapa, fylla eller redigera PDF-formulär är enkelt med Aspose.PDF för .NET API. API:et erbjuder många sådana spännande funktioner för att arbeta med olika filer. Låt oss veta din feedback eller kommentarer via Free Support Forum.

Se även