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
- Fyll i ett formulärfält i befintlig PDF-fil med C# Programmatically
- Ändra ett formulärfält i PDF-dokument med C#
- Ta bort ett formulärfält i befintlig PDF-fil med C#
- Bevara utökade rättigheter för PDF-formulär med C#
- Använd JavaScript i PDF-format med C#
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:
- Skapa en instans av klassen Document
- Lägg till en tom sida i PDF-dokument
- Lägg till fältet TextBox i formuläret
- Ställ in olika egenskaper för fälten inklusive teckensnitt, kant etc.
- Lägg till Radio Button i formuläret
- 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:
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:
- Ladda käll PDF-dokument
- Få Textbox Fält och fyllvärden
- Hämta Radioknappfält och välj ett alternativ från gruppen
- 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#:
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:
- Ladda PDF-formuläret
- Skaffa ett specifikt fält med dess namn
- Ändra fältvärdet
- 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:
- Ladda PDF-dokumentet
- Ring raderingsmetod med namnet på formulärfältet
- 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:
- Initiera en instans av klassen Document
- Lägg till ett TextBoxField på första sidan vid specifika sidkoordinater
- Konfigurera JavaScript
- Ange dokumentåtgärd
- 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.