Δημιουργία ενός μοντέλου εγγράφου φωτός με το DocumentReader
Δημιουργία ενός μοντέλου εγγράφου φωτός με το DocumentReader
DocumentReader είναι το σημείο εισόδου για την ανάγνωση αρχείων DOCX στο Aspose.Words FOSS. Αποδέχεται την εισαγωγή ως διαδρομή αρχείου, ροή I/O ή πρώτες bytes και στη συνέχεια εκθέτει το Το έγγραφο ως α light_document_model.Document (LDM) - ένα δομημένο αντικείμενο Python Ένα δέντρο που είναι εύκολο να εξεταστεί και να μεταμορφωθεί.
Προϋποθέσεις
| ΑΠΑΙΤΗΣΕΙΣ | Λεπτομέρειες |
|---|---|
| Python | 3.9 or later |
| Πακέτο | aspose-words-foss (Επίσημη από το ΜΜΕ) |
| εισαγωγών | Α .docx αρχείο, ροή ή bytes |
pip install aspose-words-fossΚατεβάστε από ένα αρχείο δρόμο
DocumentReader.load_file(filepath) Διαβάστε ένα αρχείο DOCX ανά διαδρομή. to_light_document() Αργότερα, θα αποκτήσουν την εκπροσώπηση της LDM.
from aspose.words_foss import DocumentReader
reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print("Page count:", doc.page_count)
print("Sections:", len(doc.sections))Κατεβάστε από ένα ρεύμα
DocumentReader.load_stream(stream) Αποδέχεται οποιοδήποτε αντικείμενο όπως το αρχείο με ένα read() Αυτό είναι χρήσιμο για τα δεδομένα που προέρχονται από απαντήσεις HTTP, αρχεία ZIP ή Μνημεία του Μπουφέ.
from aspose.words_foss import DocumentReader
reader = DocumentReader()
with open("data/report.docx", "rb") as fh:
reader.load_stream(fh)
doc = reader.to_light_document()
print("Paragraphs:", len(doc.all_paragraphs))Κατεβάστε από το Bytes
DocumentReader.load_bytes(data) Αποδέχεται το A bytes ή bytearray Στόχος: Χρήση Αυτό συμβαίνει όταν το περιεχόμενο του DOCX είναι ήδη στη μνήμη (π.χ. καταχωρισμένο από βάση δεδομένων) ή προγραμματισμένα.
from aspose.words_foss import DocumentReader
with open("data/report.docx", "rb") as fh:
data = fh.read()
reader = DocumentReader()
reader.load_bytes(data)
doc = reader.to_light_document()
print("Text preview:", doc.text[:200])Ναυτιλία της δομής LDM
Μετά την κλήση to_light_document(),Η επιστροφή του Document Το αντικείμενο εκθέτει το Πλήρης έκθεση του δέντρου:
from aspose.words_foss import DocumentReader
reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
# Sections
for section in doc.sections:
print("Section paragraphs:", len(section.paragraphs))
# All paragraphs (flat list across all sections)
for para in doc.all_paragraphs:
if para.text.strip():
print(" -", para.text[:80])
# Headings
for heading in doc.headings(max_level=2):
print("H:", heading.text)Διαβάστε το πλήρες κείμενο του εγγράφου
Document.text επιστρέφει το πλήρες περιεχόμενο του εγγράφου, Συμπληρώνοντας το κείμενο των παραγράφων σε όλες τις ενότητες:
reader = DocumentReader()
reader.load_file("data/report.docx")
doc = reader.to_light_document()
print(doc.text[:500])Συμβουλές και βέλτιστες πρακτικές
- Πάντα καλέστε
load_file(),load_stream(),ήload_bytes()Πριν καλέσειto_light_document()- Καλέστεto_light_document()Σε έναν ανανεωμένο αναγνώστη Μπορεί να προκαλέσει σφάλμα ή να επιστρέψει ένα κενό έγγραφο. - Χρησιμοποιήστε
load_bytes()όταν ελέγχετε τον κύκλο ζωής του εγγράφου στη μνήμη, αποφεύγεται η Ανοίγοντας τα αρχεία. - Χρησιμοποιήστε
doc.all_paragraphsγια μια επίπεδη ιθερά πάνω από όλες τις παραγράφους· χρήσηdoc.sectionsΌταν χρειάζεται να εργαστείτε τμήμα-κατά τμήματα. DocumentReaderΕφαρμογέςLdmBuilderMixin, που σημαίνειto_light_document()Διατίθεται ως μέθοδος μίξης - η ίδια διεπαφή κοινοποιείται με άλλους αναγνώστες. Μαθήματα στη βιβλιοθήκη.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
Αδειά doc.sections Μετά το φορτίο | Το αρχείο δεν είναι έγκυρο DOCX. | Ελέγξτε το αρχείο ανοίγει στο Word, ελέγξουμε ότι δεν προστατεύεται από κωδικό πρόσβασης. |
doc.all_paragraphs Είναι άδειο | Το έγγραφο δεν έχει κείμενο σώματος (π.χ. μόνο κεφαλές/ποδούς) | Ελέγξτε doc.header_paragraphs και doc.footer_paragraphs Αντί να |
AttributeError Ο ΣΕ to_light_document() | Η μέθοδος φόρτωσης δεν καλείται πριν από τη μετατροπή | Καλέστε ένα από τα load_file(), load_stream(),ή load_bytes() Πρώτα |
FAQ
Τι είναι το LDM;?
Το μοντέλο ετικέτας (light_document_model.DocumentΕίναι μια αφηρημένη, Το δέντρο αντικειμένων Python που αντιπροσωπεύει ένα έγγραφο Word. Διαχωρίζει τη λογική του εγγράφου Το DOCX είναι ένα δυαδικό μορφότυπο και έχει σχεδιαστεί για εύκολη προγραμματική χειραγώγηση.
Μπορώ να τροποποιήσω το LDM και να το γράψω πίσω στο DOCX;?
Μετά την τροποποίηση του doc Στόχος, να το περάσει στο LdmDocxWriter.write(doc, path) Για να δημιουργήσετε ένα ενημερωμένο αρχείο DOCX. δείτε το Οδηγός του LdmDocxWriter Για λεπτομέρειες.
Τι κάνει LdmBuilderMixin προσθέτει;?
LdmBuilderMixin Παρέχει το to_light_document() Μεθοδολογία . DocumentReader κληρονομιά από αυτό, έτσι ώστε να έχετε πάντα πρόσβαση σε αυτή τη μέθοδο μέσω της παραδείγματος του αναγνώστη.
Συνοπτική αναφορά API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
DocumentReader | Διαβάζει την εισαγωγή DOCX και δημιουργεί την LDM αντιπροσωπεία |
DocumentReader.load_file(filepath) | Κατεβάστε ένα αρχείο DOCX ανά διαδρομή |
DocumentReader.load_stream(stream) | Κατεβάστε από ένα αρχείο-όπως ροή |
DocumentReader.load_bytes(data) | Κατεβάζει από το A bytes αντικείμενο |
DocumentReader.to_light_document() | Επιστρέφει το φορτισμένο έγγραφο ως LDM Document |
LdmBuilderMixin | Μίγμα που παρέχει to_light_document() |
Document.sections | Κατάλογος των ενόδων στο έγγραφο |
Document.all_paragraphs | Πλήρης λίστα όλων των παραγράφων |
Document.text | Πλήρης κείμενο του εγγράφου |
Document.page_count | Αριθμός σελίδων |
Document.headings(max_level) | Κατάλογος των παραγράφων προς τα πάνω max_level |