Πώς να φορτώσετε έγγραφα Word στο .NET

Πώς να φορτώσετε έγγραφα Word στο .NET

Πώς να φορτώσετε έγγραφα Word στο .NET

Aspose.Words FOSS για .NET διαβάζει ένα έγγραφο στη μνήμη αμέσως μόλις δημιουργήσετε ένα Document αντικείμενο — κάθε διαδρομή φόρτωσης στη βιβλιοθήκη διέρχεται μέσω Document’s υπερφορτώσεις του κατασκευαστή και του LoadOptions class. Αυτός ο οδηγός δείχνει πώς να φορτώσετε ένα έγγραφο από αρχείο ή ροή, να παρέχετε κωδικό πρόσβασης ή ρυθμίσεις ειδικές για τη μορφή, και να ελέγξετε τι συμβαίνει όταν η φόρτωση συναντά έναν εξωτερικό πόρο ή ένα έγγραφο που ενδέχεται να είναι κατεστραμμένο. Aspose.Words FOSS για .NET κατασκευάζεται από τον πηγαίο κώδικα και γίνεται άμεση αναφορά σε ένα έργο αντί να εγκατασταθεί από πηγή πακέτων — δείτε το Οδηγός εγκατάστασης για τα βήματα δημιουργίας πριν προχωρήσετε στις παρακάτω εργασίες.


Οδηγός βήμα προς βήμα

Βήμα 1: Φόρτωση εγγράφου από αρχείο ή ροή

Document διαθέτει πέντε κατασκευαστές. Document() δημιουργεί ένα νέο, κενό έγγραφο αντί να φορτώσει κάποιο. Document(fileName) φορτώνει απευθείας από διαδρομή στο δίσκο, και Document(stream) φορτώνει από οποιοδήποτε αναγνώσιμο Stream — χρήσιμο όταν η πηγή δεν είναι αρχείο, όπως περιεχόμενο που ήδη βρίσκεται στη μνήμη ή λαμβάνεται μέσω δικτυακής σύνδεσης. Και τα δύο έχουν μια συνοδευτική υπερφόρτωση που δέχεται ένα δεύτερο όρισμα, Document(fileName, loadOptions) και Document(stream, loadOptions), το οποίο αποτελεί το σημείο εισόδου για κάθε άλλη εργασία σε αυτόν τον οδηγό.


Βήμα 2: Φόρτωση εγγράφου με κωδικό πρόσβασης

Δημιουργήστε ένα LoadOptions με τον κωδικό πρόσβασης πριν καλέσετε το Document(fileName, loadOptions) (ή την υπερφόρτωση ροής). Το new LoadOptions(password) ορίζει το LoadOptions.Password απευθείας· εναλλακτικά, ορίστε το Password σε μια παρουσία LoadOptions() χωρίς παραμέτρους πριν το περάσετε. Παρέχετε τον κωδικό πρόσβασης εκ των προτέρων αντί να φορτώνετε πρώτα και να αντιδράτε σε αποτυχία — το Aspose.Words FOSS για το .NET χρειάζεται τον κωδικό πρόσβασης για να αναλύσει ένα προστατευμένο αρχείο, επομένως δεν υπάρχει μερικά φορτωμένη κατάσταση από την οποία να ανακτήσετε.


Βήμα 3: Εφαρμόστε επιλογές ειδικές για μορφότυπο για κείμενα και πηγές Markdown

Οι πηγές απλού κειμένου και Markdown δέχονται ρυθμίσεις που η βασική LoadOptions δεν εκθέτει. Το TxtLoadOptions προσθέτει AutoNumberingDetection και DetectNumberingWithWhitespaces για την αναγνώριση αριθμημένων λιστών σε απλό κείμενο, DetectHyperlinks για τη μετατροπή ακατέργαστων URL σε υπερσυνδέσμους, DocumentDirection (LeftToRight, RightToLeft ή Auto) για την κατεύθυνση ροής του κειμένου, και ξεχωριστά LeadingSpacesOptions/TrailingSpacesOptions (τύπου TxtLeadingSpacesOptions/TxtTrailingSpacesOptions) για τη διαχείριση κενών χαρακτήρων στην αρχή και το τέλος κάθε γραμμής. Το MarkdownLoadOptions προσθέτει PreserveEmptyLines, ImportUnderlineFormatting και SoftLineBreakCharacter για τον έλεγχο του πώς οι συμβάσεις αλλαγής γραμμής του Markdown αντιστοιχούν σε παραγράφους και τμήματα. Και οι δύο υποκλάσεις κληρονομούν από το LoadOptions, έτσι ένας κωδικός πρόσβασης ή η επανάκληση φόρτωσης πόρων που ορίζεται σε οποιαδήποτε από αυτές λειτουργεί το ίδιο όπως στη βασική κλάση — περάστε την παρουσία ειδική για μορφότυπο στο Document(fileName, loadOptions) ακριβώς όπως θα κάνατε με ένα απλό LoadOptions.


Βήμα 4: Ανακατεύθυνση ή Παρεμβολή Εξωτερικών Πόρων Κατά τη Φόρτωση

Ορίστε το LoadOptions.ResourceLoadingCallback σε μια υλοποίηση του IResourceLoadingCallback όταν χρειάζεται να ελέγξετε πώς ένας εξωτερικός πόρος που αναφέρεται από το έγγραφο επιλύεται κατά τη φόρτωση. Η μέθοδος ResourceLoading(args) του λαμβάνει ένα ResourceLoadingArgs που περιγράφει το ResourceType του πόρου (Image, Font, CssStyleSheet ή Document) μαζί με Uri και OriginalUri, και επιστρέφει ένα ResourceLoadingAction — Default για να φορτώσει τον πόρο κανονικά, Skip για να τον παραλείψει, ή UserProvided για να αντικαταστήσει τα δεδομένα που παρέχονται μέσω ResourceLoadingArgs.SetData(data).


Βήμα 5: Ορίστε Προεπιλογές Γλώσσας και Συμπεριφορά Ανάκτησης

Όταν τα μεταδεδομένα γλώσσας ενός εγγράφου λείπουν ή είναι αναξιόπιστα, ορίστε το LoadOptions.LanguagePreferences.DefaultEditingLanguage σε μια τιμή EditingLanguage πριν από τη φόρτωση και χρησιμοποιήστε το AddEditingLanguage(language) ή το AddEditingLanguages(languages) στο LanguagePreferences για να καταχωρίσετε επιπλέον γλώσσες που το έγγραφο μπορεί να περιέχει. Για πηγές που ενδέχεται να είναι κακοσχηματισμένες, ορίστε το LoadOptions.RecoveryMode σε μια τιμή DocumentRecoveryMode — None για να φορτώσετε χωρίς καμία προσπάθεια ανάκτησης, ή TryRecover για να κάνει ο φορτωτής παράκαμψη ορισμένων δομικών προβλημάτων αντί να αποτύχει η φόρτωση εντελώς.


Κοινά προβλήματα και διορθώσεις

Η φόρτωση ενός εγγράφου με κωδικό πρόσβασης εξακολουθεί να προκαλεί εξαίρεση μετά την παροχή του κωδικού. Επιβεβαιώστε ότι ο κωδικός πρόσβασης ορίστηκε στο ακριβές LoadOptions instance που περνιέται σε Document(fileName, loadOptions) (ή η υπερφόρτωση ροής) — μέσω new LoadOptions(password) ή με ορισμό Password μετά — και ότι αυτό είναι το αντικείμενο που πραγματικά περνιέται στον constructor. Ένα LoadOptions που δημιουργήθηκε αλλά ποτέ δεν παραδόθηκε σε Document δεν έχει καμία επίδραση στο load.

Οι ρυθμίσεις ειδικές για Text ή Markdown δεν φαίνεται να ισχύουν. Ελέγξτε ότι ένα TxtLoadOptions or MarkdownLoadOptions αντίγραφο — όχι η βάση LoadOptions — μεταβιβάστηκε στο Document constructor. Μόνο η υποκατηγορία εκθέτει τις ιδιότητες-συγκεκριμένες για τη μορφή· η μεταβίβαση της βασικής κλάσης μεταγλωττίζεται αλλά τις απορρίπτει σιωπηρά.

Οι εξωτερικοί πόροι δεν παγιδεύονται ή ανακατευθύνονται. ResourceLoadingCallback πρέπει να οριστεί στο ίδιο LoadOptions αντικείμενο που μεταβιβάστηκε στο Document constructor, και πρέπει να εκχωρηθεί πριν από την κλήση load. Η εκχώρηση του μετά το φορτώνιό που έχει ήδη ολοκληρωθεί δεν έχει καμία επίδραση.

Ένα κατεστραμμένο έγγραφο εξακολουθεί να αποτυγχάνει στη φόρτωση μετά τη ρύθμιση RecoveryMode. DocumentRecoveryMode.TryRecover επιτρέπει στον φορτωτή να παρακάμψει ορισμένα δομικά προβλήματα σε ένα έγγραφο, αλλά πιο σοβαρή αλλοίωση μπορεί ακόμη να εμποδίσει τη σωστή φόρτωση του εγγράφου.

Ένα έγγραφο που φορτώνεται από ένα Stream συμπεριφέρεται διαφορετικά από το ίδιο αρχείο που φορτώνεται μέσω διαδρομής. Βεβαιωθείτε ότι η θέση του stream είναι στην αρχή πριν το περάσετε σε Document(stream) or Document(stream, loadOptions) — ένα stream που αφήνεται στη μέση του περιεχομένου του φορτώνει μόνο τα υπόλοιπα bytes.


Συχνές ερωτήσεις

Πώς να φορτώσω ένα έγγραφο χωρίς καμία ειδική επιλογή;

Περνάτε μια διαδρομή αρχείου ή ένα Stream απευθείας στο Document(fileName) ή στο Document(stream) — το LoadOptions απαιτείται μόνο όταν χρειάζεται κωδικός πρόσβασης, ρυθμίσεις ειδικές για τη μορφή ή μια κλήση επιστροφής.

Ποια είναι η διαφορά μεταξύ LoadOptions, TxtLoadOptions και MarkdownLoadOptions;

TxtLoadOptions και MarkdownLoadOptions προέρχονται και τα δύο από το LoadOptions και προσθέτουν ρυθμίσεις ειδικές για πηγές απλού κειμένου και Markdown αντίστοιχα. Κάθε γενική ιδιότητα LoadOptions — κωδικός πρόσβασης, κωδικοποίηση, callbacks — παραμένει διαθέσιμη σε κάθε υποκατηγορία.

Μπορώ να φορτώσω ένα έγγραφο απευθείας από έναν πίνακα byte;

Τυλίξτε τα bytes σε ένα MemoryStream και περάστε αυτή τη ροή στο Document(stream) ή στο Document(stream, loadOptions) — δεν υπάρχει κατασκευαστής που να δέχεται άμεσα έναν πίνακα byte.

Πώς μπορώ να ελέγξω τι συμβαίνει όταν ο φορτωτής δεν μπορεί να επιλύσει έναν εξωτερικό πόρο;

Υλοποιήστε το IResourceLoadingCallback και αναθέστε το στο LoadOptions.ResourceLoadingCallback. Επιστρέψτε το ResourceLoadingAction.Skip από το ResourceLoading(args) για να παραλείψετε τον πόρο αντί να αφήσετε τη φόρτωση να αποτύχει.

Αλλάζει η ρύθμιση RecoveryMode τον τρόπο που φορτώνεται ένα καλά σχηματισμένο έγγραφο;

Όχι. DocumentRecoveryMode αλλάζει τη συμπεριφορά μόνο όταν ο φορτωτής αντιμετωπίζει πραγματικά δομικά προβλήματα — ένα καλά δομημένο έγγραφο φορτώνεται με τον ίδιο τρόπο ανεξαρτήτως της ρύθμισης.


Δείτε επίσης

 Ελληνικά