Διορθώστε τη συλλογή πεδίων μη έγκυρης φόρμας και αποθηκεύστε
Εισαγωγή
Καλως ΗΡΘΑΤΕ! Εάν εργάζεστε με πεδία φόρμας σε έγγραφα και αντιμετωπίζετε προβλήματα με μη έγκυρες συλλογές πεδίων φορμών, βρίσκεστε στο σωστό μέρος. Σε αυτό το σεμινάριο, θα εξετάσουμε πώς να διορθώσετε μη έγκυρα πεδία φόρμας και να αποθηκεύσετε το έγγραφό σας χρησιμοποιώντας το Groupdocs.Editor για .NET. Θα σας καθοδηγήσουμε στη διαδικασία βήμα προς βήμα, διασφαλίζοντας ότι έχετε όλες τις λεπτομέρειες που χρειάζεστε για να λειτουργήσει απρόσκοπτα. Ας αρχίσουμε!
Προαπαιτούμενα
Πριν μεταβούμε στον κώδικα, υπάρχουν μερικά πράγματα που πρέπει να έχετε στη θέση του:
- Groupdocs.Editor για .NET: Βεβαιωθείτε ότι έχετε εγκαταστήσει τη βιβλιοθήκη Groupdocs.Editor για .NET. Μπορείτε να το κατεβάσετεεδώ.
- Περιβάλλον ανάπτυξης: Θα πρέπει να έχετε ρυθμίσει ένα περιβάλλον ανάπτυξης .NET, όπως το Visual Studio.
- Βασικές γνώσεις C#: Αυτό το σεμινάριο προϋποθέτει ότι έχετε βασική κατανόηση του προγραμματισμού C#.
Εισαγωγή χώρων ονομάτων
Αρχικά, πρέπει να εισαγάγετε τους απαραίτητους χώρους ονομάτων στο έργο C#. Προσθέστε τις ακόλουθες γραμμές στην αρχή του αρχείου κώδικα:
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;
using GroupDocs.Editor.Words.FieldManagement;
using System;
using System.IO;
Βήμα 1: Λάβετε τη διαδρομή αρχείου εισόδου
Το πρώτο βήμα είναι να καθορίσετε τη διαδρομή προς το αρχείο εισόδου σας. Αυτό το αρχείο πρέπει να είναι ένα έγγραφο DOCX που περιέχει πεδία φόρμας.
string inputFilePath = Constants.SampleLegacyFormFields_docx;
Βήμα 2: Δημιουργήστε μια ροή από τη διαδρομή αρχείου
Στη συνέχεια, δημιουργήστε μια ροή αρχείων για να διαβάσετε το έγγραφο εισόδου. Αυτό θα σας επιτρέψει να φορτώσετε το έγγραφο στο πρόγραμμα επεξεργασίας.
using (FileStream fs = File.OpenRead(inputFilePath))
Βήμα 3: Δημιουργήστε επιλογές φόρτωσης για το έγγραφο
Σε αυτό το βήμα, πρέπει να δημιουργήσετε επιλογές φόρτωσης για το έγγραφό σας. Εάν το έγγραφό σας προστατεύεται με κωδικό πρόσβασης, μπορείτε να καθορίσετε τον κωδικό πρόσβασης. Σε αυτό το παράδειγμα, το έγγραφο δεν προστατεύεται, επομένως ο κωδικός πρόσβασης αγνοείται.
WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
loadOptions.Password = "some_password_to_open_a_document";
Βήμα 4: Φόρτωση του εγγράφου στην παρουσία του Editor
Τώρα, φορτώστε το έγγραφο με τις καθορισμένες επιλογές στην παρουσία του Editor. Εδώ θα πραγματοποιηθούν οι κύριες λειτουργίες στο έγγραφο.
using (Editor editor = new Editor(delegate { return fs; }, delegate { return loadOptions; }))
Βήμα 4.1: Διαβάστε την παρουσία του FormFieldManager
οFormFieldManager
Το παράδειγμα είναι υπεύθυνο για τη διαχείριση των πεδίων φόρμας στο έγγραφο. Θα χρειαστεί να διαβάσετε αυτό το στιγμιότυπο για να αποκτήσετε πρόσβαση και να χειριστείτε τα πεδία της φόρμας.
FormFieldManager fieldManager = editor.FormFieldManager;
Βήμα 4.2: Διαβάστε το FormFieldCollection
οFormFieldCollection
περιέχει όλα τα πεδία φόρμας στο έγγραφο. Θα διαβάσετε αυτήν τη συλλογή για να ελέγξετε και να διορθώσετε μη έγκυρα πεδία φόρμας.
FormFieldCollection collection = fieldManager.FormFieldCollection;
Βήμα 4.3: Αυτόματη διόρθωση πεδίων μη έγκυρης φόρμας
Προσπαθήστε να διορθώσετε αυτόματα τυχόν μη έγκυρα πεδία φόρμας στο έγγραφο. Αυτό είναι ένα προκαταρκτικό βήμα για την αντιμετώπιση προφανών ζητημάτων.
fieldManager.FixInvalidFormFieldNames(new InvalidFormField[0]);
collection = fieldManager.FormFieldCollection;
Βήμα 4.4: Ελέγξτε για μη έγκυρα πεδία φόρμας
Ελέγξτε εάν απομένουν μη έγκυρα πεδία φόρμας μετά την προσπάθεια αυτόματης επιδιόρθωσης.
bool hasInvalidFormFields = fieldManager.HasInvalidFormFields();
Console.WriteLine("FormFieldCollection contains invalid items: {0}", hasInvalidFormFields);
Βήμα 4.4.1: Λήψη όλων των μη έγκυρων ονομάτων πεδίων φόρμας
Ανακτήστε τα ονόματα όλων των μη έγκυρων πεδίων φόρμας. Αυτά τα ονόματα θα χρησιμοποιηθούν για τη διόρθωση των πεδίων.
var invalidFormFields = fieldManager.GetInvalidFormFieldNames();
Βήμα 4.4.2: Δημιουργήστε μοναδικά ονόματα για μη έγκυρα πεδία
Για κάθε μη έγκυρο πεδίο φόρμας, δημιουργήστε ένα μοναδικό όνομα. Αυτό διασφαλίζει ότι δεν υπάρχουν διενέξεις με τα υπάρχοντα ονόματα πεδίων φόρμας.
foreach (var invalidItem in invalidFormFields)
{
invalidItem.FixedName = string.Format("{0}_{1}", invalidItem.Name, Guid.NewGuid());
}
Βήμα 4.4.3: Διορθώστε μη έγκυρα πεδία φόρμας
Διορθώστε τα μη έγκυρα πεδία φόρμας χρησιμοποιώντας τα μοναδικά ονόματα που δημιουργήθηκαν στο προηγούμενο βήμα.
fieldManager.FixInvalidFormFieldNames(invalidFormFields);
collection = fieldManager.FormFieldCollection;
Βήμα 5: Δημιουργία επιλογών αποθήκευσης εγγράφου
Ρυθμίστε επιλογές για την αποθήκευση του εγγράφου. Αυτό περιλαμβάνει τον καθορισμό της μορφής και τυχόν πρόσθετων ρυθμίσεων αποθήκευσης.
WordProcessingFormats docFormat = WordProcessingFormats.Docx;
WordProcessingSaveOptions saveOptions = new WordProcessingSaveOptions(docFormat);
Βήμα 5.1: Βελτιστοποιήστε τη χρήση της μνήμης
Εάν το έγγραφό σας είναι μεγάλο και μπορεί να προκαλέσειOutOfMemoryException
ενεργοποιήστε την επιλογή βελτιστοποίησης μνήμης.
saveOptions.OptimizeMemoryUsage = true;
Βήμα 5.2: Προστατέψτε το έγγραφο από εγγραφή
Για να προστατεύσετε το έγγραφο από την τροποποίηση, εκτός από τα πεδία της φόρμας, ορίστε έναν κωδικό πρόσβασης προστασίας.
saveOptions.Protection = new WordProcessingProtection(WordProcessingProtectionType.AllowOnlyFormFields, "write_password");
Βήμα 6: Αποθηκεύστε το έγγραφο
Τέλος, αποθηκεύστε το έγγραφο με τις καθορισμένες επιλογές αποθήκευσης. Προετοιμάστε μια ροή μνήμης για την αποθήκευση του εγγράφου εξόδου.
using (MemoryStream outputStream = new MemoryStream())
{
editor.Save(outputStream, saveOptions);
}
Console.WriteLine("FixInvalidFormFieldCollectionAndSave routine has successfully finished");
συμπέρασμα
Και εκεί το έχετε! Διορθώσατε με επιτυχία μη έγκυρα πεδία φόρμας και αποθηκεύσατε το έγγραφό σας χρησιμοποιώντας το Groupdocs.Editor για .NET. Αυτός ο οδηγός βήμα προς βήμα θα έπρεπε να έχει κάνει τη διαδικασία σαφή και διαχειρίσιμη. Εάν αντιμετωπίζετε προβλήματα ή έχετε ερωτήσεις, μη διστάσετε να ελέγξετε τοτεκμηρίωση ή απευθυνθείτε σευποστήριξη.
Συχνές ερωτήσεις
Τι γίνεται αν το έγγραφό μου προστατεύεται με κωδικό πρόσβασης;
Μπορείτε να καθορίσετε τον κωδικό πρόσβασης στοWordProcessingLoadOptions
για να ανοίξετε το έγγραφο.
Πώς μπορώ να ξέρω αν υπάρχουν μη έγκυρα πεδία φόρμας;
Χρησιμοποιήστε τοHasInvalidFormFields
μέθοδος ελέγχου για τυχόν μη έγκυρα πεδία φόρμας στο έγγραφο.
Μπορώ να διορθώσω πεδία φόρμας χωρίς να αλλάξω τα ονόματά τους;
Συνιστάται η δημιουργία μοναδικών ονομάτων για μη έγκυρα πεδία φόρμας για την αποφυγή διενέξεων.
Σε ποιες μορφές μπορώ να αποθηκεύσω το έγγραφο;
Μπορείτε να αποθηκεύσετε το έγγραφο σε διάφορες μορφές όπως DOCX, PDF και άλλα, ορίζοντας την κατάλληληWordProcessingFormats
.
Πώς μπορώ να βελτιστοποιήσω τη χρήση της μνήμης ενώ αποθηκεύω μεγάλα έγγραφα;
Ενεργοποιήστε τοOptimizeMemoryUsage
επιλογή στοWordProcessingSaveOptions
για τον αποτελεσματικό χειρισμό μεγάλων εγγράφων.