Φόρτωση Εγγράφων με LoadOptions
Φόρτωση εγγράφων με LoadOptions
Αυτός ο οδηγός δείχνει πώς να ελέγχετε τη φόρτωση εγγράφων πέρα από μια απλή διαδρομή αρχείου ή ροή, χρησιμοποιώντας την κλάση LoadOptions. Η Document διαθέτει υπερφορτώσεις κατασκευαστών που δέχονται μια παρουσία LoadOptions — Document(fileName, loadOptions) και Document(stream, loadOptions) — ώστε οποιεσδήποτε από τις ρυθμίσεις που περιγράφονται εδώ να ισχύουν κατά τη φόρτωση, πριν το αντικείμενο εγγράφου παραδοθεί στον κώδικά σας.
Η κλάση LoadOptions
LoadOptions μεταφέρει τις ρυθμίσεις Aspose.Words που χρειάζεται το FOSS κατά τη φόρτωση ενός εγγράφου σε ένα αντικείμενο Document. Οι κατασκευαστές του περιλαμβάνουν ένα χωρίς παραμέτρους LoadOptions(), LoadOptions(password) για άνοιγμα αρχείου προστατευμένου με κωδικό πρόσβασης απευθείας, και LoadOptions(loadFormat, password, baseUri) για ρητή καθορισμό της μορφής. Πέρα από τα Password και BaseUri (που χρησιμοποιούνται για την επίλυση σχετικών αναφορών όπως συνδεδεμένοι πόροι), το LoadOptions εκθέτει το Encoding για μορφές κειμένου, το TempFolder για επεξεργασία μεγάλων εγγράφων, το MswVersion για να καθορίσετε ποιες συμβάσεις μορφοποίησης του Word εφαρμόζονται, και τα UpdateDirtyFields, IgnoreOleData και UseSystemLcid για πιο λεπτομερή έλεγχο της συμπεριφοράς φόρτωσης. Το LoadOptions.FontSettings σας επιτρέπει να παρέχετε FontSettings κατά τη φόρτωση αντί να ρυθμίζετε τις γραμματοσειρές μόνο μετά τη φόρτωση του εγγράφου.
Επιλογές φόρτωσης ανά μορφή
Ορισμένες μορφές έχουν τη δική τους υποκατηγορία LoadOptions που εκθέτει ρυθμίσεις ειδικές για εκείνη τη μορφή. Η TxtLoadOptions (για απλό κείμενο) προσθέτει τα AutoNumberingDetection, DetectNumberingWithWhitespaces, DetectHyperlinks, DocumentDirection, και ξεχωριστά LeadingSpacesOptions/TrailingSpacesOptions τύπου TxtLeadingSpacesOptions/TxtTrailingSpacesOptions για τον έλεγχο του τρόπου διαχείρισης των αρχικών και τελικών κενών χαρακτήρων σε κάθε γραμμή. Η MarkdownLoadOptions προσθέτει τα PreserveEmptyLines, ImportUnderlineFormatting και SoftLineBreakCharacter για τον έλεγχο του πώς οι συμβάσεις αλλαγής γραμμής του Markdown αντιστοιχίζονται σε παραγράφους και τμήματα του εγγράφου. Και οι δύο υποκατηγορίες κληρονομούν κάθε γενική ιδιότητα LoadOptions, έτσι ώστε ένας κωδικός πρόσβασης ή μια κλήση φόρτωσης πόρων που ορίζεται σε μια παρουσία TxtLoadOptions ή MarkdownLoadOptions να συμπεριφέρεται το ίδιο όπως στη βασική κλάση.
Κλήσεις φόρτωσης πόρων
LoadOptions.ResourceLoadingCallback δέχεται μια υλοποίηση του IResourceLoadingCallback, η οποία ενημερώνεται καθώς ο φορτωτής επιλύει εξωτερικούς πόρους που αναφέρονται στο έγγραφο που φορτώνεται. Η κλήση επανάκλησης λαμβάνει ένα ResourceLoadingArgs που περιγράφει το ResourceType του πόρου που φορτώνεται, και επιστρέφει ένα ResourceLoadingAction για να πει στον φορτωτή αν πρέπει να φορτώσει τον πόρο κανονικά, να τον παραλείψει ή να αντικαταστήσει με προσαρμοσμένα δεδομένα. Αυτό είναι το σημείο επέκτασης για τον έλεγχο ή την παρεμβολή στην επίλυση πόρων κατά τη φόρτωση, ανεξάρτητα από τη μορφή που διαβάζεται.
Ρυθμίσεις Γλώσσας, Κατεύθυνσης και Ανάκτησης
LoadOptions.LanguagePreferences είναι ένα αντικείμενο LanguagePreferences του οποίου το DefaultEditingLanguage (μια τιμή enum EditingLanguage) ορίζει τη γλώσσα Aspose.Words που το FOSS υποθέτει όταν ένα έγγραφο δεν καθορίζει ρητά μία; AddEditingLanguage(language) και AddEditingLanguages(languages) καταγράφουν επιπλέον γλώσσες που το έγγραφο μπορεί να χρησιμοποιήσει. DocumentDirection (επίσης εκτεθειμένο άμεσα στο TxtLoadOptions) είναι ένα enum με τιμές LeftToRight, RightToLeft και Auto για τον έλεγχο της κατεύθυνσης ροής κειμένου κατά τη φόρτωση. LoadOptions.RecoveryMode λαμβάνει μια τιμή DocumentRecoveryMode, η οποία ελέγχει πώς ο φορτωτής αντιδρά όταν συναντά ένα κατεστραμμένο ή μερικώς εσφαλμένο έγγραφο.
Κλήσεις Επανάκλησης Προόδου και Προειδοποίησης
Πέρα από τη φόρτωση πόρων, το LoadOptions.WarningCallback και το LoadOptions.ProgressCallback δέχονται υλοποιήσεις κλήσεων επανάκλησης που ενημερώνονται για μη θανάσιμα προβλήματα που αντιμετωπίζονται κατά τη φόρτωση και για την πρόοδο της φόρτωσης, αντίστοιχα — χρήσιμα για την εμφάνιση ανακτήσιμων προβλημάτων στον κώδικα που καλεί ή για την αναφορά προόδου σε μεγάλα έγγραφα χωρίς περιοδικό έλεγχο.
Συμβουλές και Καλές Πρακτικές
- Περάστε το
LoadOptions(password)(ή ορίστε τοLoadOptions.Password) αντί να πιάσετε μια εξαίρεση φόρτωσης και να δοκιμάσετε ξανά — το Aspose.Words FOSS χρειάζεται τον κωδικό πρόσβασης πριν μπορέσει να αναλύσει καθόλου το έγγραφο. - Ορίστε το
LanguagePreferences.DefaultEditingLanguageκατά τη φόρτωση εγγράφων των οποίων τα μεταδεδομένα γλώσσας λείπουν ή είναι αναξιόπιστα, ώστε η επεξεργασία που εξαρτάται από τη γλώσσα να συμπεριφέρεται προβλέψιμα. - Προτιμήστε την κλάση επιλογών ειδικής μορφής (
TxtLoadOptions,MarkdownLoadOptions) αντί της βασικήςLoadOptionsκατά τη φόρτωση αυτών των μορφών, καθώς η συγκεκριμένη υποκλάση εκθέτει ρυθμίσεις σχετικές με τη μορφή που η βασική κλάση δεν διαθέτει. - Εφαρμόστε το
IResourceLoadingCallbackόταν χρειάζεται να ανακατευθύνετε, να αποθηκεύσετε στην cache ή να εμποδίσετε την επίλυση εξωτερικών πόρων κατά τη φόρτωση, αντί μετά το έγγραφο να βρίσκεται ήδη στη μνήμη. - Ορίστε το
LoadOptions.RecoveryModeσκόπιμα για αγωγούς που επεξεργάζονται έγγραφα από μη αξιόπιστες ή τρίτων πηγές, αντί να βασίζεστε στη προεπιλεγμένη συμπεριφορά αποκατάστασης.
Συνηθισμένα προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
| Η φόρτωση ενός εγγράφου με προστασία κωδικού πρόσβασης προκαλεί εξαίρεση | Δεν δόθηκε κωδικός πρόσβασης, ή δόθηκε μετά την έναρξη της φόρτωσης | Περάστε το LoadOptions(password) (ή ορίστε το Password σε ένα στιγμιότυπο LoadOptions) στην υπερφόρτωση κατασκευής Document που δέχεται LoadOptions |
| Τα αρχικά/τελικά κενά διαστήματα σε ένα φορτωμένο αρχείο κειμένου δεν αντιμετωπίζονται όπως αναμένεται | Η προεπιλεγμένη συμπεριφορά TxtLeadingSpacesOptions/TxtTrailingSpacesOptions δεν ταιριάζει με τις συμβάσεις κενών διαστημάτων του αρχικού αρχείου | Ορίστε το TxtLoadOptions.LeadingSpacesOptions / TrailingSpacesOptions ρητά |
| Οι αλλαγές γραμμής στο Markdown δεν αντιστοιχούν στην αναμενόμενη δομή παραγράφων | MarkdownLoadOptions.PreserveEmptyLines ή SoftLineBreakCharacter δεν ταιριάζει με τις συμβάσεις του πηγαίου Markdown | Ρυθμίστε την σχετική ιδιότητα MarkdownLoadOptions πριν τη φόρτωση |
| Η φόρτωση εξωτερικών πόρων δεν παρατηρείται ή ελέγχεται | Δεν καταγράφηκε κανένα IResourceLoadingCallback στο LoadOptions.ResourceLoadingCallback | Εφαρμόστε το IResourceLoadingCallback και εκχωρήστε το πριν τη φόρτωση |
FAQ
Πώς φορτώνω ένα έγγραφο προστατευμένο με κωδικό πρόσβασης;
Δημιουργήστε το LoadOptions με τον κωδικό πρόσβασης — new LoadOptions(password) — ή ορίστε το LoadOptions.Password, και στη συνέχεια περάστε το στο new Document(fileName, loadOptions) ή στο new Document(stream, loadOptions).
Χρειάζομαι μια υποκλάση LoadOptions ειδική για τη μορφή, ή η βασική κλάση είναι αρκετή;
Η βασική κλάση LoadOptions καλύπτει ρυθμίσεις κοινές σε κάθε μορφή (συνθηματικό, κωδικοποίηση, callbacks). Χρησιμοποιήστε μια υποκλάση ειδική για τη μορφή, όπως TxtLoadOptions ή MarkdownLoadOptions, όταν χρειάζεστε ρυθμίσεις συγκεκριμένες για εκείνη τη μορφή, όπως διαχείριση λευκών διαστημάτων για αρχεία κειμένου ή συμβάσεις αλλαγής γραμμής για το Markdown.
Πώς μπορώ να παρεμβάλλω ή να ανακατευθύνω τους πόρους που αναφέρει ένα έγγραφο κατά τη φόρτωση;
Εφαρμόστε το IResourceLoadingCallback και εκχωρήστε το στο LoadOptions.ResourceLoadingCallback πριν τη φόρτωση. Η callback λαμβάνει ένα ResourceLoadingArgs ανά πόρο και επιστρέφει ένα ResourceLoadingAction που αποφασίζει πώς θα προχωρήσει ο φορτωτής.
Πώς μπορώ να ελέγξω ποια γλώσσα υποθέτει το Aspose.Words FOSS για ένα φορτωμένο έγγραφο;
Ορίστε το LoadOptions.LanguagePreferences.DefaultEditingLanguage σε μια τιμή EditingLanguage πριν τη φόρτωση· χρησιμοποιήστε το AddEditingLanguage/AddEditingLanguages για να καταχωρήσετε πρόσθετες γλώσσες που μπορεί να περιέχει το έγγραφο.
Τι συμβαίνει αν ο φορτωτής συναντήσει ένα κατεστραμμένο έγγραφο;
Η συμπεριφορά ελέγχεται από το LoadOptions.RecoveryMode, μια τιμή DocumentRecoveryMode που καθορίζει πώς ο φορτωτής ανταποκρίνεται σε δομικά προβλήματα του αρχικού εγγράφου.
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
LoadOptions | Βασικό αντικείμενο επιλογών που ελέγχει πώς φορτώνεται ένα έγγραφο |
Document(fileName, loadOptions) / Document(stream, loadOptions) | Υπερφορτώσεις κατασκευής που εφαρμόζουν το LoadOptions κατά τη φόρτωση |
TxtLoadOptions | Επιλογές φόρτωσης ειδικές για έγγραφα απλού κειμένου |
MarkdownLoadOptions | Επιλογές φόρτωσης ειδικές για έγγραφα Markdown |
IResourceLoadingCallback | Διεπαφή callback για την παρέμβαση στην επίλυση εξωτερικών πόρων κατά τη φόρτωση |
ResourceLoadingArgs / ResourceLoadingAction | Δεδομένα γεγονότος ανά πόρο και η ενέργεια που επιστρέφεται στον φορτωτή |
LanguagePreferences | Ρυθμίζει τις προεπιλεγμένες και πρόσθετες γλώσσες επεξεργασίας που υποτίθενται κατά τη φόρτωση |
DocumentDirection | Enum που ελέγχει την κατεύθυνση ροής κειμένου (LeftToRight, RightToLeft, Auto) |
DocumentRecoveryMode | Ελέγχει τη συμπεριφορά του φορτωτή όταν ένα έγγραφο είναι κατεστραμμένο |