Ungültige Formularfeldsammlung korrigieren und speichern

Einführung

Willkommen! Wenn Sie mit Formularfeldern in Dokumenten arbeiten und Probleme mit ungültigen Formularfeldsammlungen haben, sind Sie hier richtig. In diesem Tutorial erfahren Sie, wie Sie ungültige Formularfelder reparieren und Ihr Dokument mit Groupdocs.Editor für .NET speichern. Wir führen Sie Schritt für Schritt durch den Prozess und stellen sicher, dass Sie alle Details haben, die Sie benötigen, damit alles reibungslos funktioniert. Lassen Sie uns anfangen!

Voraussetzungen

Bevor wir uns in den Code stürzen, müssen einige Dinge bereitstehen:

  • Groupdocs.Editor für .NET: Stellen Sie sicher, dass Sie die Groupdocs.Editor-Bibliothek für .NET installiert haben. Sie können sie herunterladenHier.
  • Entwicklungsumgebung: Sie sollten eine .NET-Entwicklungsumgebung wie Visual Studio eingerichtet haben.
  • Grundkenntnisse in C#: Dieses Tutorial setzt voraus, dass Sie über Grundkenntnisse der C#-Programmierung verfügen.

Namespaces importieren

Zuerst müssen Sie die erforderlichen Namespaces in Ihr C#-Projekt importieren. Fügen Sie am Anfang Ihrer Codedatei die folgenden Zeilen hinzu:

using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;
using GroupDocs.Editor.Words.FieldManagement;
using System;
using System.IO;

Schritt 1: Den Eingabedateipfad abrufen

Der erste Schritt besteht darin, den Pfad zu Ihrer Eingabedatei anzugeben. Diese Datei sollte ein DOCX-Dokument mit Formularfeldern sein.

string inputFilePath = Constants.SampleLegacyFormFields_docx;

Schritt 2: Erstellen Sie einen Stream aus dem Dateipfad

Erstellen Sie als Nächstes einen Dateistream zum Lesen des Eingabedokuments. Dadurch können Sie das Dokument in den Editor laden.

using (FileStream fs = File.OpenRead(inputFilePath))

Schritt 3: Ladeoptionen für das Dokument erstellen

In diesem Schritt müssen Sie Ladeoptionen für Ihr Dokument erstellen. Wenn Ihr Dokument kennwortgeschützt ist, können Sie das Kennwort angeben. In diesem Beispiel ist das Dokument nicht geschützt, daher wird das Kennwort ignoriert.

WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "some_password_to_open_a_document";

Schritt 4: Laden Sie das Dokument in die Editor-Instanz

Laden Sie nun das Dokument mit den angegebenen Optionen in die Editor-Instanz. Hier finden die wichtigsten Operationen am Dokument statt.

using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))

Schritt 4.1: Lesen der FormFieldManager-Instanz

DerFormFieldManager Instanz ist für die Verwaltung der Formularfelder im Dokument verantwortlich. Sie müssen diese Instanz lesen, um auf die Formularfelder zuzugreifen und sie zu bearbeiten.

FormFieldManager fieldManager = editor.FormFieldManager;

Schritt 4.2: Lesen der FormFieldCollection

DerFormFieldCollection enthält alle Formularfelder im Dokument. Sie lesen diese Sammlung, um ungültige Formularfelder zu überprüfen und zu korrigieren.

FormFieldCollection collection = fieldManager.FormFieldCollection;

Schritt 4.3: Ungültige Formularfelder automatisch korrigieren

Versuchen Sie, alle ungültigen Formularfelder im Dokument automatisch zu korrigieren. Dies ist ein erster Schritt, um offensichtliche Probleme zu beheben.

fieldManager.FixInvalidFormFieldNames(new InvalidFormField[0]);
collection = fieldManager.FormFieldCollection;

Schritt 4.4: Auf ungültige Formularfelder prüfen

Überprüfen Sie, ob nach dem automatischen Korrekturversuch noch ungültige Formularfelder vorhanden sind.

bool hasInvalidFormFields = fieldManager.HasInvalidFormFields();
Console.WriteLine("FormFieldCollection contains invalid items: {0}", hasInvalidFormFields);

Schritt 4.4.1: Alle ungültigen Formularfeldnamen abrufen

Rufen Sie die Namen aller ungültigen Formularfelder ab. Diese Namen werden verwendet, um die Felder zu korrigieren.

var invalidFormFields = fieldManager.GetInvalidFormFieldNames();

Schritt 4.4.2: Eindeutige Namen für ungültige Felder erstellen

Vergeben Sie für jedes ungültige Formularfeld einen eindeutigen Namen. So stellen Sie sicher, dass es nicht zu Konflikten mit vorhandenen Formularfeldnamen kommt.

foreach (var invalidItem in invalidFormFields)
{
    invalidItem.FixedName = string.Format("{0}_{1}", invalidItem.Name, Guid.NewGuid());
}

Schritt 4.4.3: Ungültige Formularfelder korrigieren

Korrigieren Sie die ungültigen Formularfelder mit den im vorherigen Schritt erstellten eindeutigen Namen.

fieldManager.FixInvalidFormFieldNames(invalidFormFields);
collection = fieldManager.FormFieldCollection;

Schritt 5: Optionen zum Speichern von Dokumenten erstellen

Richten Sie Optionen zum Speichern des Dokuments ein. Dazu gehört das Festlegen des Formats und aller zusätzlichen Speichereinstellungen.

WordProcessingFormats docFormat = WordProcessingFormats.Docx;
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docFormat);

Schritt 5.1: Speichernutzung optimieren

Wenn Ihr Dokument groß ist und möglicherweiseOutOfMemoryExceptionaktivieren Sie die Option zur Speicheroptimierung.

saveOptions.OptimizeMemoryUsage = true;

Schritt 5.2: Dokument vor Schreibzugriff schützen

Um das Dokument (mit Ausnahme der Formularfelder) vor Änderungen zu schützen, legen Sie ein Schutzkennwort fest.

saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.AllowOnlyFormFields, "write_password");

Schritt 6: Speichern Sie das Dokument

Speichern Sie das Dokument abschließend mit den angegebenen Speicheroptionen. Bereiten Sie einen Speicherstream zum Speichern des Ausgabedokuments vor.

using (MemoryStream outputStream = new MemoryStream())
{
    editor.Save(outputStream, saveOptions);
}
Console.WriteLine("FixInvalidFormFieldCollectionAndSave routine has successfully finished");

Abschluss

Und da haben Sie es! Sie haben erfolgreich ungültige Formularfelder korrigiert und Ihr Dokument mit Groupdocs.Editor für .NET gespeichert. Diese Schritt-für-Schritt-Anleitung sollte den Vorgang klar und handhabbar gemacht haben. Wenn Sie auf Probleme stoßen oder Fragen haben, können Sie gerne dieDokumentation oder wenden Sie sich anUnterstützung.

Häufig gestellte Fragen

Was ist, wenn mein Dokument passwortgeschützt ist?

Sie können das Passwort imWordProcessingLoadOptions , um das Dokument zu öffnen.

Wie erkenne ich, ob es ungültige Formularfelder gibt?

Verwenden Sie dieHasInvalidFormFields Methode, um zu prüfen, ob im Dokument ungültige Formularfelder vorhanden sind.

Kann ich Formularfelder reparieren, ohne ihre Namen zu ändern?

Es wird empfohlen, für ungültige Formularfelder eindeutige Namen zu erstellen, um Konflikte zu vermeiden.

In welchen Formaten kann ich das Dokument speichern?

Sie können das Dokument in verschiedenen Formaten wie DOCX, PDF und mehr speichern, indem Sie die entsprechendenWordProcessingFormats.

Wie kann ich die Speichernutzung beim Speichern großer Dokumente optimieren?

Aktivieren Sie dieOptimizeMemoryUsage imWordProcessingSaveOptions um große Dokumente effizient zu verarbeiten.