I moduli PDF vengono spesso utilizzati per raccogliere dati e informazioni. Ad esempio, i questionari sono generalmente progettati per raccogliere risposte a scopo di indagine. Interagiamo con diversi moduli PDF compilabili nel mondo digitale di oggi. Considerando l’enorme portata e importanza dei moduli PDF, l’API Aspose.PDF for .NET supporta molte funzionalità per lavorare con i moduli PDF. Esaminiamo i seguenti casi d’uso usando il linguaggio C# in questo articolo:
- Crea moduli PDF compilabili utilizzando C#
- Compila un campo modulo in un file PDF esistente utilizzando C#
- Modifica un campo modulo nel documento PDF utilizzando C#
- Elimina un campo modulo in un file PDF esistente utilizzando C#
- Conserva i diritti estesi dei moduli PDF utilizzando C#
- Usa JavaScript nel modulo PDF usando C#
Crea moduli PDF compilabili utilizzando C#
Puoi creare un modulo PDF compilabile da zero utilizzando Aspose.PDF per .NET API. Qui considereremo l’esempio di base dell’aggiunta di due istanze TextBoxField e RadioButton. Tuttavia, uno dei TextBoxField è a riga singola mentre l’altro è a più righe. Di seguito sono riportati i passaggi per creare un modulo in un documento PDF:
- Crea un’istanza della classe Document.
- Aggiungi una pagina vuota nel documento PDF
- Aggiungi Casella di testo campo nel modulo
- Imposta diverse proprietà dei campi tra cui Font, Bordo, ecc.
- Aggiungi Pulsante Radio nel modulo
- Salva documento PDF
Il seguente frammento di codice mostra come creare un modulo in PDF usando 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);
// Aggiungi campi modulo alla prima pagina del documento PDF
pdfdoc.Form.Add(nameBox, 1);
pdfdoc.Form.Add(mrnBox, 1);
//Aggiungi pulsanti di opzione a coordinate di posizione specifiche in PDF
Aspose.Pdf.Table table = new Aspose.Pdf.Table();
//Imposta qui la posizione
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");
Lo screenshot seguente mostra il documento PDF di output contenente i campi del modulo come specificato nello snippet di codice sopra:
Compila, modifica o elimina campi modulo in PDF esistenti utilizzando C#
Poiché abbiamo esplorato la creazione di un modulo in un documento PDF utilizzando C#, Aspose.PDF per .NET API supporta anche il lavoro con i moduli PDF esistenti. Discutiamo delle seguenti caratteristiche dell’API.
i) Compila un campo modulo in un file PDF esistente utilizzando C#
Per compilare i moduli PDF, continueremo con il documento PDF creato nell’esempio sopra. Di seguito sono riportati i passaggi per compilare i campi in un documento PDF esistente:
- Carica il documento PDF di origine
- Ottieni Casella di testo Campi e riempi i valori
- Ottieni Campo pulsante di opzione e seleziona un’opzione dal gruppo
- Salva il modulo PDF compilato
Il seguente frammento di codice segue questi passaggi e spiega come compilare i campi in un documento PDF utilizzando C#:
// Apri documento
Document pdfDocument = new Document(dataDir + "Fillable_PDF_Form.pdf");
// Ottieni i campi
TextBoxField textBoxField1 = pdfDocument.Form["nameBox1"] as TextBoxField;
TextBoxField textBoxField2 = pdfDocument.Form["Box1"] as TextBoxField;
// Compila i valori dei campi del modulo
textBoxField1.Value = "A quick brown fox jumped over a lazy dog.";
textBoxField2.Value = "A quick brown fox jumped over a lazy dog.";
// Ottieni campo pulsante di opzione
RadioButtonField radioField = pdfDocument.Form["radio"] as RadioButtonField;
// Specificare l'indice del pulsante di opzione dal gruppo
radioField.Selected = 1;
dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Salva documento aggiornato
pdfDocument.Save(dataDir);
La schermata seguente mostra i campi modulo compilati del modulo PDF utilizzando C#:
ii) Modifica un campo modulo nel documento PDF utilizzando C#
A volte potrebbe essere necessario modificare il valore in qualsiasi campo di un modulo PDF. La modifica di un valore in un campo modulo è un caso d’uso di base che può essere ottenuto con i passaggi seguenti:
- Carica il modulo PDF
- Ottieni un campo specifico usando il suo nome
- Modifica il valore del campo
- Salva il documento PDF aggiornato
Il seguente frammento di codice mostra come modificare un valore in un campo modulo del documento PDF:
// Apri documento
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Prendi un campo
TextBoxField textBoxField = pdfDocument.Form["nameBox1"] as TextBoxField;
// Modifica il valore del campo
textBoxField.Value = "Changed Value";
textBoxField.ReadOnly = true;
dataDir = dataDir + "ModifyFormField.pdf";
// Salva documento aggiornato
pdfDocument.Save(dataDir);
È interessante notare che non solo è possibile modificare il valore del modulo, ma è anche possibile aggiornare altre proprietà. Ad esempio, il campo è stato contrassegnato come Sola lettura nello snippet di codice sopra.
iii) Elimina un campo modulo in un file PDF esistente utilizzando C#
Abbiamo già imparato ad aggiungere e compilare i campi dei moduli PDF. Ora esploriamo la rimozione di un campo modulo. È necessario seguire i passaggi seguenti:
- Carica il documento PDF
- Chiama il metodo Elimina con il nome del campo del modulo
- Salva documento PDF
Il seguente frammento di codice mostra come eliminare il campo modulo dal file PDF utilizzando C#:
// Apri documento
Document pdfDocument = new Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Elimina un campo particolare per nome
pdfDocument.Form.Delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Salva documento modificato
pdfDocument.Save(dataDir);
Conserva i diritti estesi dei moduli PDF utilizzando C#
Un modulo PDF potrebbe avere diritti estesi, detti anche funzionalità estese, che vorresti preservare durante la manipolazione del modulo. Dovresti salvarlo in modo incrementale seguendo i passaggi seguenti:
- Carica il documento PDF in Stream
- Lavora con il modulo
- Salva il file senza alcun parametro
Il seguente frammento di codice C# spiega come preservare i diritti estesi del modulo PDF:
// Leggi il modulo PDF di origine con FileAccess di Read and Write.
// Abbiamo bisogno dell'autorizzazione ReadWrite perché dopo la modifica,
// Dobbiamo salvare i contenuti aggiornati nello stesso documento/file.
FileStream fs = new FileStream(dataDir + "Fill_PDF_Form_Field.pdf", FileMode.Open, FileAccess.ReadWrite);
// Istanzia Istanza del documento
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(fs);
// Ottieni valori da tutti i campi
foreach (Field formField in pdfDocument.Form)
{
// Se il nome completo del campo contiene A1, eseguire l'operazione
if (formField.FullName.Contains("nameBox1"))
{
// Trasmetti il campo del modulo come TextBox
TextBoxField textBoxField = formField as TextBoxField;
// Modifica il valore del campo
textBoxField.Value = "Preserve Extended Features";
}
}
// Salva il documento aggiornato in save FileStream
pdfDocument.Save();
// Chiudere l'oggetto Flusso di file
fs.Close();
Usa JavaScript nel modulo PDF usando C#
Puoi utilizzare JavaScript nei campi del modulo PDF con Aspose.PDF per .NET API. Seguiamo i passaggi seguenti per raggiungere questo requisito:
- Avvia un’istanza della classe Document
- Aggiungi un TextBoxField sulla prima pagina in corrispondenza di coordinate di pagina specifiche
- Imposta JavaScript
- Specificare l’azione del documento
- Salva documento PDF
Il seguente frammento di codice mostra come aggiungere JavaScript in un modulo PDF utilizzando 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 = nuovo bordo();
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);
// Aggiungi campo al documento
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");
Il JavaScript ottiene la data e l’ora correnti del sistema quando il documento PDF viene aperto e quel valore viene popolato in una casella di testo.
Conclusione
In questo articolo, abbiamo appreso diversi aspetti dell’utilizzo dei moduli nei documenti PDF. Creare, compilare o modificare moduli PDF è semplice con Aspose.PDF per .NET API. L’API offre molte di queste interessanti funzionalità per lavorare con file diversi. Facci sapere il tuo feedback o i tuoi commenti tramite il Forum di supporto gratuito.