Αποθήκευση και Εξαγωγή Εγγράφων

Αποθήκευση και Εξαγωγή Εγγράφων

Αποθήκευση και Εξαγωγή Εγγράφων

Document.Save γράφει ένα έγγραφο σε αρχείο ή ροή σε μορφή προορισμού. Η μορφή είτε προκύπτει από την επέκταση του αρχείου, είτε δίνεται ρητά ως τιμή SaveFormat, ή καθορίζεται από μια υποκατηγορία SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions ή TxtSaveOptions — για έλεγχο ειδικής μορφής. Αυτός ο οδηγός καλύπτει τις υπερφορτώσεις Save, το enum SaveFormat, τις επιλογές αποθήκευσης OOXML, την εξαγωγή σε Markdown και απλό κείμενο, καθώς και τον εντοπισμό μορφής πριν από τη μετατροπή.


Αποθήκευση με το Document.Save

Η πιο απλή κλήση, Document.Save(fileName), προβλέπει τη μορφή προορισμού από την επέκταση του αρχείου. Save(fileName, saveFormat) καθιστά τη μορφή ρητή ανεξάρτητα από την επέκταση, και Save(fileName, saveOptions) (ή οι αντίστοιχες υπερφορτώσεις Stream) δέχεται μια υποκατηγορία SaveOptions για ρυθμίσεις ειδικής μορφής. SaveOptions.CreateSaveOptions(saveFormat) είναι ένα στατικό εργοστάσιο που επιστρέφει τη σωστή υποκατηγορία επιλογών για ένα δεδομένο SaveFormat με τις προεπιλογές του ήδη ορισμένες.


Επιλογή Μορφής με SaveFormat

Το enum SaveFormat καταγράφει κάθε αναγνωριστικό μορφής αποθήκευσης που αναγνωρίζει η βιβλιοθήκη. Το Document.Save γράφει πλήρως τόσο προς τα μέσα όσο και προς τα έξω από τις βασικές μορφές εγγράφου αυτής της έκδοσης — DOCX, DOCM, DOTX, DOTM και Flat OPC (συμπεριλαμβανομένων των παραλλαγών με μακροεντολές και προτύπων) — καθώς και Markdown και απλό κείμενο. Τα FileFormatUtil.SaveFormatToExtension(saveFormat) και ExtensionToSaveFormat(extension) μετατρέπουν μεταξύ του enum και μιας συμβολοσειράς επέκτασης αρχείου.

Ορισμένες τιμές SaveFormat υπάρχουν στο enum για την πληρότητα του API, αλλά αντιστοιχούν σε μορφές που αυτή η περιορισμένη, ανοιχτού κώδικα έκδοση δεν υλοποιεί λειτουργικό αναγνώστη ή συγγραφέα — η προσπάθεια αποθήκευσης σε μία από αυτές παράγει έξοδο που δεν ισοδυναμεί με το αρχικό έγγραφο. Παραμείνετε στις μορφές που αναφέρονται παραπάνω για αξιόπιστη αναδρομική επεξεργασία.


Επιλογές OOXML: DOCX, DOCM, DOTX, DOTM και Flat OPC

OoxmlSaveOptions ρυθμίζει την αποθήκευση σε οποιαδήποτε από τις μορφές Open XML. Η ιδιότητα SaveFormat του επιλέγει ποια συγκεκριμένη παραλλαγή να γραφεί· Password ορίζει έναν ανοιχτό κωδικό πρόσβασης στο αποθηκευμένο αρχείο (ανεξάρτητα από τους περιορισμούς επεξεργασίας του Document.Protect); Compliance επιλέγει το επίπεδο αυστηρότητας του OOXML· και τα CompressionLevel / Zip64Mode ελέγχουν τη βασική συσκευασία ZIP. Δημιουργήστε ένα με new OoxmlSaveOptions(saveFormat) ή μέσω SaveOptions.CreateSaveOptions(saveFormat).


Εξαγωγή σε Markdown

MarkdownSaveOptions ελέγχει μια εξαγωγή σε Markdown: τα ListExportMode και LinkExportMode καθορίζουν πώς αποδίδονται οι λίστες και οι υπερσυνδέσεις, τα ImagesFolder / ImagesFolderAlias ελέγχουν πού γράφονται οι εξαγόμενες εικόνες και πώς αναφέρονται, το ExportImagesAsBase64 τις ενσωματώνει ενσωματωμένα αντί αυτού, και το TableContentAlignment επηρεάζει το παραγόμενο σήμανση πινάκων. Μεταβιβάστε ένα στιγμιότυπο MarkdownSaveOptions στο Document.Save(fileName, saveOptions) με ένα όνομα αρχείου .md, ή ορίστε ρητά το SaveFormat του.


Εξαγωγή σε απλό κείμενο

TxtSaveOptions (μέσω του βασικού του TxtSaveOptionsBase, κοινό με MarkdownSaveOptions) ελέγχει την εξαγωγή απλού κειμένου: το Encoding ορίζει την κωδικοποίηση χαρακτήρων, το ParagraphBreak ορίζει τη συμβολοσειρά λήξης γραμμής, το MaxCharactersPerLine τυλίγει τις μακριές γραμμές, το SimplifyListLabels κανονικοποιεί τις κουκίδες/αριθμούς λιστών σε απλούς χαρακτήρες, και το PreserveTableLayout προσπαθεί να διατηρήσει τις στήλες του πίνακα ευθυγραμμισμένες χρησιμοποιώντας κενά.


Ανίχνευση μορφής πριν από τη μετατροπή

Πριν μετατρέψετε ένα αρχείο του οποίου δεν γνωρίζετε ήδη τη μορφή, το FileFormatUtil.DetectFileFormat(fileName) επιστρέφει ένα FileFormatInfo με την ανιχνευμένη LoadFormat. Συνδυάστε το με το FileFormatUtil.LoadFormatToSaveFormat(loadFormat) για να αποφασίσετε αν είναι δυνατόν ένα round-trip μέσω των μορφών που υποστηρίζονται από αυτήν την έκδοση πριν επιχειρήσετε το Document.Save.


Συμβουλές και Καλές Πρακτικές

  • Χρησιμοποιήστε το Save(fileName, saveOptions) αντί για την απλή υπερφόρτωση Save(fileName, saveFormat) όποτε χρειάζεται να ελέγξετε τη συμπεριφορά ειδική για τη μορφή, όπως η απόδοση λιστών Markdown ή η συμπίεση OOXML.
  • Ορίστε το OoxmlSaveOptions.Password για ένα αρχείο προστατευμένο με ανοιχτό κωδικό πρόσβασης· αυτό είναι ξεχωριστό από το Document.Protect, το οποίο περιορίζει την επεξεργασία αλλά δεν κρυπτογραφεί το αρχείο.
  • Επιλέξτε το MarkdownSaveOptions.ExportImagesAsBase64 για ένα ενιαίο αυτόνομο αρχείο Markdown, ή το ImagesFolder όταν θέλετε έναν φάκελο με εξαγόμενα αρχεία εικόνας δίπλα στο Markdown.
  • Καλείτε το SaveOptions.CreateSaveOptions(saveFormat) αντί να επιλέγετε την συγκεκριμένη κλάση επιλογών χειροκίνητα όταν η μορφή-στόχος καθορίζεται κατά την εκτέλεση.
  • Επαληθεύστε μια μορφή-στόχο με το FileFormatUtil πριν από τη μετατροπή, αντί να βασίζεστε μόνο στην επέκταση αρχείου, η οποία μπορεί να είναι λανθασμένη ή παραπλανητική.

Κοινά Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Save(fileName) επιλέγει το λάθος φορμάτΗ επέκταση του αρχείου δεν ταιριάζει με τη ζητούμενη μορφήΧρησιμοποιήστε το Save(fileName, saveFormat) ή το Save(fileName, saveOptions) για να δηλώσετε ρητά τη μορφή
Το αποθηκευμένο αρχείο OOXML δεν ανοίγει με κωδικό πρόσβασηςOoxmlSaveOptions.Password δεν είχε οριστεί πριν από την αποθήκευσηΔημιουργήστε ένα OoxmlSaveOptions, ορίστε Password και περάστε το στο Save
Η εξαγωγή Markdown διασκορπίζει απροσδόκητα τα αρχεία εικόναςΗ προεπιλεγμένη συμπεριφορά του MarkdownSaveOptions εξάγει τις εικόνες σε αρχείαΟρίστε το ExportImagesAsBase64 = true για ένα μόνο αυτόνομο αρχείο ή ορίστε το ImagesFolder για να ελέγξετε πού θα αποθηκευτούν οι εικόνες
Η εξαγωγή απλού κειμένου χάνει την ευθυγράμμιση των στηλών του πίνακαΤο TxtSaveOptions.PreserveTableLayout παραμένει στην προεπιλογή τουΟρίστε PreserveTableLayout = true πριν από την αποθήκευση

FAQ

Πώς μπορώ να αποθηκεύσω ένα έγγραφο σε συγκεκριμένη μορφή ανεξάρτητα από την επέκταση του αρχείου;

Καλέστε Save(fileName, saveFormat) με μια ρητή τιμή SaveFormat, ή Save(fileName, saveOptions) με μια αντίστοιχη υποκατηγορία SaveOptions.

Ποιες μορφές διαβάζει και γράφει αυτή η έκδοση και προς τις δύο κατευθύνσεις;

DOCX, DOCM, DOTX, DOTM, Flat OPC (συμπεριλαμβανομένων των παραλλαγών με μακροεντολές και προτύπων), Markdown, και απλό κείμενο.

Πώς μπορώ να προστατεύσω με κωδικό πρόσβασης ένα αποθηκευμένο αρχείο;

Ορίστε Password σε μια παρουσία OoxmlSaveOptions και περάστε το στο Document.Save(fileName, saveOptions).

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

Ορίστε ParagraphBreak σε μια παρουσία TxtSaveOptions πριν από την αποθήκευση.

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

Κλήστε το FileFormatUtil.DetectFileFormat(fileName) και διαβάστε το επιστρεφόμενο FileFormatInfo.LoadFormat.


API Reference Περίληψη

Κλάση/ΜέθοδοςΠεριγραφή
Document.SaveΓράφει το έγγραφο σε αρχείο, ροή ή προορισμό εξόδου σε επιλεγμένη μορφή.
SaveFormatΑπαρίθμηση που προσδιορίζει τη μορφή προορισμού για μια λειτουργία αποθήκευσης.
SaveOptionsΑφηρημένη βασική κλάση για τη διαμόρφωση αποθήκευσης ειδικής μορφής· CreateSaveOptions(saveFormat) επιστρέφει την αντίστοιχη υποκλάση.
OoxmlSaveOptionsΕπιλογές για DOCX, DOCM, DOTX, DOTM και Flat OPC — κωδικός πρόσβασης, συμμόρφωση, συμπίεση.
MarkdownSaveOptionsΕπιλογές εξαγωγής Markdown — απόδοση λιστών/συνδέσμων, διαχείριση εικόνων.
TxtSaveOptions / TxtSaveOptionsBaseΕπιλογές εξαγωγής απλού κειμένου — κωδικοποίηση, αλλαγές γραμμής, διάταξη πίνακα.
FileFormatUtil.DetectFileFormatΑνιχνεύει τη μορφή ενός αρχείου πριν τη φορτώσει ή τη μετατρέψει.
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatΜετατρέπει μεταξύ μιας τιμής SaveFormat και μιας κατάληξης αρχείου.

Δείτε επίσης

 Ελληνικά