Compila il modulo PDF

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#

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:

  1. Crea un’istanza della classe Document.
  2. Aggiungi una pagina vuota nel documento PDF
  3. Aggiungi Casella di testo campo nel modulo
  4. Imposta diverse proprietà dei campi tra cui Font, Bordo, ecc.
  5. Aggiungi Pulsante Radio nel modulo
  6. 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:

Modulo PDF

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:

  1. Carica il documento PDF di origine
  2. Ottieni Casella di testo Campi e riempi i valori
  3. Ottieni Campo pulsante di opzione e seleziona un’opzione dal gruppo
  4. 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#:

PDF compilabile

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:

  1. Carica il modulo PDF
  2. Ottieni un campo specifico usando il suo nome
  3. Modifica il valore del campo
  4. 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:

  1. Carica il documento PDF
  2. Chiama il metodo Elimina con il nome del campo del modulo
  3. 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:

  1. Avvia un’istanza della classe Document
  2. Aggiungi un TextBoxField sulla prima pagina in corrispondenza di coordinate di pagina specifiche
  3. Imposta JavaScript
  4. Specificare l’azione del documento
  5. 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.

Guarda anche