Napraw nieprawidłowy zbiór pól formularza i zapisz
Wstęp
Powitanie! Jeśli pracujesz z polami formularzy w dokumentach i napotykasz problemy z nieprawidłowymi zbiorami pól formularzy, jesteś we właściwym miejscu. W tym samouczku omówimy, jak naprawić nieprawidłowe pola formularza i zapisać dokument za pomocą Groupdocs.Editor dla .NET. Poprowadzimy Cię przez proces krok po kroku, upewniając się, że masz wszystkie szczegóły potrzebne do jego płynnego działania. Zacznijmy!
Warunki wstępne
Zanim przejdziemy do kodu, jest kilka rzeczy, które musisz mieć na miejscu:
- Groupdocs.Editor dla .NET: Upewnij się, że zainstalowałeś bibliotekę Groupdocs.Editor dla .NET. Możesz go pobraćTutaj.
- Środowisko programistyczne: Należy mieć skonfigurowane środowisko programistyczne .NET, takie jak Visual Studio.
- Podstawowa znajomość języka C#: W tym samouczku założono, że masz podstawową wiedzę na temat programowania w języku C#.
Importuj przestrzenie nazw
Najpierw musisz zaimportować niezbędne przestrzenie nazw do swojego projektu C#. Dodaj następujące wiersze na początku pliku kodu:
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;
using GroupDocs.Editor.Words.FieldManagement;
using System;
using System.IO;
Krok 1: Uzyskaj ścieżkę pliku wejściowego
Pierwszym krokiem jest określenie ścieżki do pliku wejściowego. Plik ten powinien być dokumentem DOCX zawierającym pola formularza.
string inputFilePath = Constants.SampleLegacyFormFields_docx;
Krok 2: Utwórz strumień ze ścieżki pliku
Następnie utwórz strumień plików, aby odczytać dokument wejściowy. Umożliwi to załadowanie dokumentu do edytora.
using (FileStream fs = File.OpenRead(inputFilePath))
Krok 3: Utwórz opcje ładowania dokumentu
Na tym etapie musisz utworzyć opcje ładowania dokumentu. Jeśli dokument jest chroniony hasłem, możesz określić hasło. W tym przykładzie dokument nie jest chroniony, więc hasło jest ignorowane.
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "some_password_to_open_a_document";
Krok 4: Załaduj dokument do instancji edytora
Teraz załaduj dokument z określonymi opcjami do instancji Editor. Tutaj będą miały miejsce główne operacje na dokumencie.
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
Krok 4.1: Przeczytaj instancję FormFieldManager
TheFormFieldManager
instancja odpowiada za zarządzanie polami formularzy w dokumencie. Aby uzyskać dostęp do pól formularza i manipulować nimi, musisz przeczytać tę instancję.
FormFieldManager fieldManager = editor.FormFieldManager;
Krok 4.2: Przeczytaj kolekcję FormField
TheFormFieldCollection
zawiera wszystkie pola formularza w dokumencie. Przeczytasz tę kolekcję, aby sprawdzić i naprawić nieprawidłowe pola formularza.
FormFieldCollection collection = fieldManager.FormFieldCollection;
Krok 4.3: Automatyczna naprawa nieprawidłowych pól formularza
Spróbuj automatycznie naprawić nieprawidłowe pola formularza w dokumencie. Jest to wstępny krok w celu rozwiązania oczywistych problemów.
fieldManager.FixInvalidFormFieldNames(new InvalidFormField[0]);
collection = fieldManager.FormFieldCollection;
Krok 4.4: Sprawdź, czy nie ma nieprawidłowych pól formularza
Sprawdź, czy po próbie automatycznej naprawy pozostały jakieś nieprawidłowe pola formularza.
bool hasInvalidFormFields = fieldManager.HasInvalidFormFields();
Console.WriteLine("FormFieldCollection contains invalid items: {0}", hasInvalidFormFields);
Krok 4.4.1: Uzyskaj wszystkie nieprawidłowe nazwy pól formularza
Pobierz nazwy wszystkich nieprawidłowych pól formularza. Nazwy te zostaną użyte do naprawienia pól.
var invalidFormFields = fieldManager.GetInvalidFormFieldNames();
Krok 4.4.2: Utwórz unikalne nazwy dla nieprawidłowych pól
Dla każdego nieprawidłowego pola formularza utwórz unikalną nazwę. Zapewnia to brak konfliktów z istniejącymi nazwami pól formularza.
foreach (var invalidItem in invalidFormFields)
{
invalidItem.FixedName = string.Format("{0}_{1}", invalidItem.Name, Guid.NewGuid());
}
Krok 4.4.3: Napraw nieprawidłowe pola formularza
Napraw nieprawidłowe pola formularza, używając unikalnych nazw utworzonych w poprzednim kroku.
fieldManager.FixInvalidFormFieldNames(invalidFormFields);
collection = fieldManager.FormFieldCollection;
Krok 5: Utwórz opcje zapisywania dokumentu
Skonfiguruj opcje zapisywania dokumentu. Obejmuje to określenie formatu i wszelkich dodatkowych ustawień zapisywania.
WordProcessingFormats docFormat = WordProcessingFormats.Docx;
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docFormat);
Krok 5.1: Zoptymalizuj wykorzystanie pamięci
Jeśli dokument jest duży i może powodowaćOutOfMemoryException
włącz opcję optymalizacji pamięci.
saveOptions.OptimizeMemoryUsage = true;
Krok 5.2: Chroń dokument przed zapisem
Aby zabezpieczyć dokument przed modyfikacją, za wyjątkiem pól formularza, należy ustawić hasło zabezpieczające.
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.AllowOnlyFormFields, "write_password");
Krok 6: Zapisz dokument
Na koniec zapisz dokument z określonymi opcjami zapisywania. Przygotuj strumień pamięci do zapisania dokumentu wyjściowego.
using (MemoryStream outputStream = new MemoryStream())
{
editor.Save(outputStream, saveOptions);
}
Console.WriteLine("FixInvalidFormFieldCollectionAndSave routine has successfully finished");
Wniosek
I masz to! Pomyślnie naprawiłeś nieprawidłowe pola formularza i zapisałeś dokument za pomocą Groupdocs.Editor dla .NET. Ten przewodnik krok po kroku powinien był sprawić, że proces będzie jasny i łatwy w zarządzaniu. Jeśli napotkasz jakiekolwiek problemy lub masz pytania, nie wahaj się sprawdzićdokumentacja lub skontaktuj się z namiwsparcie.
Często zadawane pytania
Co się stanie, jeśli mój dokument jest chroniony hasłem?
Hasło możesz określić w plikuWordProcessingLoadOptions
aby otworzyć dokument.
Skąd mam wiedzieć, czy istnieją nieprawidłowe pola formularza?
UżyjHasInvalidFormFields
metoda sprawdzania, czy w dokumencie nie ma nieprawidłowych pól formularza.
Czy mogę naprawić pola formularza bez zmiany ich nazw?
Aby uniknąć konfliktów, zaleca się utworzenie unikalnych nazw dla nieprawidłowych pól formularza.
W jakich formatach mogę zapisać dokument?
Możesz zapisać dokument w różnych formatach, takich jak DOCX, PDF i inne, ustawiając odpowiednieWordProcessingFormats
.
Jak zoptymalizować wykorzystanie pamięci podczas zapisywania dużych dokumentów?
WłączOptimizeMemoryUsage
opcja wWordProcessingSaveOptions
wydajną obsługę dużych dokumentów.