Correggi la raccolta di campi modulo non validi e salva
introduzione
Benvenuto! Se lavori con i campi modulo nei documenti e riscontri problemi con raccolte di campi modulo non valide, sei nel posto giusto. In questo tutorial, approfondiremo come correggere i campi del modulo non validi e salvare il documento utilizzando Groupdocs.Editor per .NET. Ti guideremo attraverso il processo passo dopo passo, assicurandoti di avere tutti i dettagli necessari per farlo funzionare senza problemi. Iniziamo!
Prerequisiti
Prima di addentrarci nel codice, ci sono alcune cose che devi avere a posto:
- Groupdocs.Editor per .NET: assicurati di aver installato la libreria Groupdocs.Editor per .NET. Puoi scaricarloQui.
- Ambiente di sviluppo: è necessario disporre di un ambiente di sviluppo .NET configurato, ad esempio Visual Studio.
- Conoscenza di base di C#: questo tutorial presuppone che tu abbia una conoscenza di base della programmazione C#.
Importa spazi dei nomi
Innanzitutto, devi importare gli spazi dei nomi necessari nel tuo progetto C#. Aggiungi le seguenti righe all’inizio del file di codice:
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;
using GroupDocs.Editor.Words.FieldManagement;
using System;
using System.IO;
Passaggio 1: ottenere il percorso del file di input
Il primo passo è specificare il percorso del file di input. Questo file dovrebbe essere un documento DOCX contenente campi modulo.
string inputFilePath = Constants.SampleLegacyFormFields_docx;
Passaggio 2: crea uno stream dal percorso file
Successivamente, crea un flusso di file per leggere il documento di input. Ciò ti consentirà di caricare il documento nell’editor.
using (FileStream fs = File.OpenRead(inputFilePath))
Passaggio 3: creare opzioni di caricamento per il documento
In questo passaggio, devi creare opzioni di caricamento per il tuo documento. Se il documento è protetto da password, è possibile specificare la password. In questo esempio il documento non è protetto, quindi la password viene ignorata.
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "some_password_to_open_a_document";
Passaggio 4: caricare il documento nell’istanza dell’editor
Ora carica il documento con le opzioni specificate nell’istanza dell’editor. È qui che si svolgeranno le principali operazioni sul documento.
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
Passaggio 4.1: leggere l’istanza di FormFieldManager
ILFormFieldManager
l’istanza è responsabile della gestione dei campi del modulo nel documento. Dovrai leggere questa istanza per accedere e manipolare i campi del modulo.
FormFieldManager fieldManager = editor.FormFieldManager;
Passaggio 4.2: leggere FormFieldCollection
ILFormFieldCollection
contiene tutti i campi del modulo nel documento. Leggerai questa raccolta per verificare e correggere i campi del modulo non validi.
FormFieldCollection collection = fieldManager.FormFieldCollection;
Passaggio 4.3: correzione automatica dei campi del modulo non validi
Tentare di correggere automaticamente eventuali campi modulo non validi nel documento. Questo è un passo preliminare per affrontare questioni evidenti.
fieldManager.FixInvalidFormFieldNames(new InvalidFormField[0]);
collection = fieldManager.FormFieldCollection;
Passaggio 4.4: verificare la presenza di campi modulo non validi
Controlla se sono rimasti campi del modulo non validi dopo il tentativo di correzione automatica.
bool hasInvalidFormFields = fieldManager.HasInvalidFormFields();
Console.WriteLine("FormFieldCollection contains invalid items: {0}", hasInvalidFormFields);
Passaggio 4.4.1: Ottieni tutti i nomi dei campi modulo non validi
Recupera i nomi di tutti i campi del modulo non validi. Questi nomi verranno utilizzati per correggere i campi.
var invalidFormFields = fieldManager.GetInvalidFormFieldNames();
Passaggio 4.4.2: creare nomi univoci per i campi non validi
Per ogni campo modulo non valido, crea un nome univoco. Ciò garantisce che non vi siano conflitti con i nomi dei campi del modulo esistenti.
foreach (var invalidItem in invalidFormFields)
{
invalidItem.FixedName = string.Format("{0}_{1}", invalidItem.Name, Guid.NewGuid());
}
Passaggio 4.4.3: correggere i campi del modulo non validi
Correggi i campi del modulo non validi utilizzando i nomi univoci creati nel passaggio precedente.
fieldManager.FixInvalidFormFieldNames(invalidFormFields);
collection = fieldManager.FormFieldCollection;
Passaggio 5: crea le opzioni di salvataggio del documento
Configura le opzioni per salvare il documento. Ciò include la specifica del formato e di eventuali impostazioni di salvataggio aggiuntive.
WordProcessingFormats docFormat = WordProcessingFormats.Docx;
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docFormat);
Passaggio 5.1: ottimizzare l’utilizzo della memoria
Se il tuo documento è di grandi dimensioni e potrebbe causare unOutOfMemoryException
abilitare l’opzione di ottimizzazione della memoria.
saveOptions.OptimizeMemoryUsage = true;
Passaggio 5.2: proteggere il documento dalla scrittura
Per proteggere il documento da eventuali modifiche, ad eccezione dei campi del modulo, impostare una password di protezione.
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.AllowOnlyFormFields, "write_password");
Passaggio 6: salva il documento
Infine, salva il documento con le opzioni di salvataggio specificate. Preparare un flusso di memoria per salvare il documento di output.
using (MemoryStream outputStream = new MemoryStream())
{
editor.Save(outputStream, saveOptions);
}
Console.WriteLine("FixInvalidFormFieldCollectionAndSave routine has successfully finished");
Conclusione
E il gioco è fatto! Hai corretto con successo i campi del modulo non validi e salvato il documento utilizzando Groupdocs.Editor per .NET. Questa guida passo passo avrebbe dovuto rendere il processo chiaro e gestibile. Se riscontri problemi o hai domande, non esitare a controllare ildocumentazione o contattaresupporto.
Domande frequenti
Cosa succede se il mio documento è protetto da password?
È possibile specificare la password nel fileWordProcessingLoadOptions
per aprire il documento.
Come faccio a sapere se ci sono campi modulo non validi?
Usa ilHasInvalidFormFields
metodo per verificare la presenza di eventuali campi modulo non validi nel documento.
Posso correggere i campi del modulo senza cambiarne i nomi?
Si consiglia di creare nomi univoci per i campi del modulo non validi per evitare conflitti.
In quali formati posso salvare il documento?
Puoi salvare il documento in vari formati come DOCX, PDF e altri impostando il formato appropriatoWordProcessingFormats
.
Come posso ottimizzare l’utilizzo della memoria salvando documenti di grandi dimensioni?
Abilita ilOptimizeMemoryUsage
opzione nelWordProcessingSaveOptions
per gestire documenti di grandi dimensioni in modo efficiente.