portaldacalheta.pt
  • Κύριος
  • Άνοδος Του Απομακρυσμένου
  • Τεχνολογία
  • Τάσεις
  • Το Μέλλον Της Εργασίας
Τεχνολογία

Μια άτυπη εισαγωγή στο DOCX



Με περίπου ένα δισεκατομμύριο άτομα που χρησιμοποιούν το Microsoft Office, η μορφή DOCX είναι το πιο δημοφιλές de facto πρότυπο για την ανταλλαγή αρχείων εγγράφων μεταξύ γραφείων. Ο πλησιέστερος ανταγωνιστής του - η μορφή ODT - υποστηρίζεται μόνο από το Open / LibreOffice και ορισμένα προϊόντα ανοιχτού κώδικα, καθιστώντας το μακριά από το τυπικό. Η μορφή PDF δεν είναι ανταγωνιστής, επειδή δεν είναι δυνατή η επεξεργασία PDF και δεν περιέχουν πλήρη δομή εγγράφων, επομένως μπορούν να λάβουν περιορισμένες τοπικές αλλαγές, όπως υδατογραφήματα, υπογραφές και παρόμοια. Αυτός είναι ο λόγος για τον οποίο τα περισσότερα επιχειρηματικά έγγραφα δημιουργούνται σε μορφή DOCX. δεν υπάρχει καλή εναλλακτική λύση για την αντικατάστασή του.

Ενώ το DOCX είναι μια πολύπλοκη μορφή, ίσως θελήσετε να το αναλύσετε χειροκίνητα για απλούστερες εργασίες όπως ευρετηρίαση, μετατροπή σε TXT και πραγματοποίηση άλλων μικρών τροποποιήσεων. Θα ήθελα να σας δώσω αρκετές πληροφορίες για τα εσωτερικά DOCX, ώστε να μην χρειάζεται να αναφέρετε τις προδιαγραφές ECMA, ένα τεράστιο εγχειρίδιο 5.000 σελίδων.



Ο καλύτερος τρόπος για να κατανοήσετε τη μορφή είναι να δημιουργήσετε ένα απλό έγγραφο ενός λέξης με το MSWord και να παρατηρήσετε πώς η επεξεργασία του εγγράφου αλλάζει το υποκείμενο XML. Θα αντιμετωπίσετε ορισμένες περιπτώσεις όπου το DOCX δεν μορφοποιείται σωστά στο MS Word και δεν γνωρίζετε γιατί, ή θα συναντήσετε περιπτώσεις που δεν είναι προφανές πώς να δημιουργήσετε την επιθυμητή μορφοποίηση. Το να βλέπετε και να κατανοείτε ακριβώς τι συμβαίνει στο XML θα το βοηθήσει.



Δούλεψα για περίπου ένα χρόνο σε ένα συνεργατικό πρόγραμμα επεξεργασίας DOCX, CollabOffice και θέλω να μοιραστώ μερικές από αυτές τις γνώσεις με την κοινότητα προγραμματιστών. Σε αυτό το άρθρο θα εξηγήσω τη δομή αρχείων DOCX, συνοψίζοντας πληροφορίες που είναι διάσπαρτες στο Διαδίκτυο. Αυτό το άρθρο είναι ένας ενδιάμεσος μεταξύ της τεράστιας, περίπλοκης προδιαγραφής ECMA και των απλών διαδικτυακών σεμιναρίων που διατίθενται σήμερα. Μπορείτε να βρείτε τα αρχεία που συνοδεύουν αυτό το άρθρο στο toptal-docx έργο στο δικό μου λογαριασμός github .



Ένα απλό αρχείο DOCX

Ένα αρχείο DOCX είναι ένα αρχείο ZIP των αρχείων XML. Εάν δημιουργήσετε ένα νέο, κενό έγγραφο του Microsoft Word, γράψτε μια λέξη «Δοκιμή» μέσα και αποσυμπιέστε το περιεχόμενο, θα δείτε την ακόλουθη δομή αρχείων:

Η ολοκαίνουργια δοκιμαστική δομή DOCX.



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

Όλα τα αρχεία σε ένα DOCX είναι αρχεία XML, ακόμη και αυτά με την επέκταση «.rels». Τιτίβισμα

Για να ξεκινήσουμε, ας αφαιρέσουμε το αχρησιμοποίητο υλικό και να εστιάσουμε στο document.xml, το οποίο περιέχει τα κύρια στοιχεία κειμένου. Όταν διαγράφετε ένα αρχείο, βεβαιωθείτε ότι έχετε διαγράψει όλες τις αναφορές σχέσεων σε αυτό από άλλα αρχεία xml. Εδώ είναι ένα παράδειγμα κωδικού-διαφοράς σχετικά με τον τρόπο με τον οποίο έχω εκκαθαρίσει τις εξαρτήσεις από το app.xml και το core.xml. Εάν έχετε ανεπίλυτες / λείπουν αναφορές, το MSWord θα θεωρήσει το αρχείο σπασμένο.



Ακολουθεί η δομή του απλουστευμένου, ελάχιστου εγγράφου DOCX (και εδώ είναι το έργο στο github ):

Η απλοποιημένη δομή DOCX μας.



Ας το αναλύσουμε ανά αρχείο από εδώ, από την κορυφή:

_rels / .rels

Αυτό καθορίζει την αναφορά που λέει στο MS Word πού να ψάξει το περιεχόμενο του εγγράφου. Σε αυτήν την περίπτωση, αναφέρεται word/document.xml:



[Content_Types].xml

_rels / document.xml.rels

Αυτό το αρχείο καθορίζει αναφορές σε πόρους, όπως εικόνες, ενσωματωμένες στο περιεχόμενο του εγγράφου. Το απλό έγγραφό μας δεν έχει ενσωματωμένους πόρους, επομένως η ετικέτα σχέσης είναι κενή:

Test

[Content_Types] .xml

/word/styles.xml περιέχει πληροφορίες σχετικά με τους τύπους μέσων μέσα στο έγγραφο. Εφόσον έχουμε μόνο περιεχόμενο κειμένου, είναι πολύ απλό:



My heading 1

document.xml

Τέλος, εδώ είναι το κύριο XML με το περιεχόμενο κειμένου του εγγράφου. Έχω καταργήσει ορισμένες από τις δηλώσεις του χώρου ονομάτων για λόγους σαφήνειας, αλλά μπορείτε να βρείτε την πλήρη έκδοση του αρχείου στο έργο github. Σε αυτό το αρχείο θα διαπιστώσετε ότι ορισμένες από τις αναφορές χώρου ονομάτων στο έγγραφο δεν χρησιμοποιούνται, αλλά δεν πρέπει να τις διαγράψετε, επειδή το MS Word τις χρειάζεται.

Ακολουθεί το απλοποιημένο μας παράδειγμα:

styles.xml

Το κύριο nodere αντιπροσωπεύει το ίδιο το έγγραφο, περιέχει παραγράφους και τοποθετείται μέσα σε διαστάσεις σελίδας που ορίζονται από.

πόσα χρήματα βγάζει η μουσική βιομηχανία

είναι ένα χαρακτηριστικό που μπορείτε να αγνοήσετε. χρησιμοποιείται από εσωτερικά του MS Word.

Ας ρίξουμε μια ματιά σε ένα πιο περίπλοκο έγγραφο με τρεις παραγράφους. Έχω επισημάνει το XML με τα ίδια χρώματα στο στιγμιότυπο οθόνης από το Microsoft Word, ώστε να μπορείτε να δείτε τη συσχέτιση:

Σύνθετο παράδειγμα παραγράφου με στυλ.

w:p/w:r/w:rPr/*

Δομή παραγράφου

Ένα απλό έγγραφο αποτελείται από παραγράφους, μια παράγραφος αποτελείται από εκτελέσεις (μια σειρά κειμένου με την ίδια γραμματοσειρά, χρώμα κ.λπ.) και οι εκτελέσεις αποτελούνται από χαρακτήρες (όπως). Οι ετικέτες μπορεί να έχουν αρκετούς χαρακτήρες μέσα και μπορεί να υπάρχουν μερικοί στην ίδια πορεία.

Και πάλι, μπορούμε να αγνοήσουμε.

Ιδιότητες κειμένου

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

Ένα σημαντικό πράγμα που πρέπει να σημειωθεί είναι ότι οι ιδιότητες κάνουν διάκριση μεταξύ των δύο ομάδων χαρακτήρων, του κανονικού και του σύνθετου σεναρίου (αραβικά, για παράδειγμα) και ότι οι ιδιότητες έχουν διαφορετική ετικέτα ανάλογα με τον τύπο του χαρακτήρα που επηρεάζει.

Οι περισσότερες κανονικές ετικέτες ιδιοτήτων σεναρίου έχουν μια αντίστοιχη σύνθετη ετικέτα σεναρίου με ένα πρόσθετο 'C' που ορίζει ότι η ιδιότητα είναι για σύνθετα σενάρια. Για παράδειγμα: (πλάγια) γίνεται, και η έντονη ετικέτα για κανονικό σενάριο ,, γίνεται για σύνθετο σενάριο.

Στυλ

Υπάρχει μια ολόκληρη γραμμή εργαλείων στο Microsoft Word αφιερωμένη σε στυλ: κανονική, χωρίς διαστήματα, επικεφαλίδα 1, επικεφαλίδα 2, τίτλος και ούτω καθεξής. Αυτά τα στυλ αποθηκεύονται σε w:r/w:pPr/* (σημείωση: στο πρώτο βήμα στο απλό μας παράδειγμα, καταργήσαμε αυτό το XML από το DOCX. Δημιουργήστε ένα νέο DOCX για να το δείτε).

Μόλις ορίσετε κείμενο ως στυλ, θα βρείτε αναφορά σε αυτό το στυλ μέσα στην ετικέτα ιδιοτήτων παραγράφου. Ακολουθεί ένα παράδειγμα όπου έχω ορίσει το κείμενό μου με το στυλ Επικεφαλίδα 1:

/word/styles.xml

και εδώ είναι το ίδιο το στυλ από w:styles/w:docDefaults/w:rPrDefault/*:

w:styles/w:docDefaults/w:pPrDefault/*

Το Thexpath καθορίζει ότι η γραμματοσειρά είναι έντονη και υποδεικνύει το χρώμα της γραμματοσειράς. Καθοδηγεί το MSWord να χρησιμοποιήσει το στυλ 'Κανονικό' για τυχόν ιδιότητες που λείπουν.

Κληρονομικότητα ιδιοκτησίας

Οι ιδιότητες κειμένου κληρονομούνται. Μια εκτέλεση έχει τις δικές της ιδιότητες (w:type='paragraph'), αλλά κληρονομεί επίσης ιδιότητες από την παράγραφο (w:default='1') και και οι δύο μπορούν να αναφέρουν ιδιότητες στυλ από το word/_rels/document.xml.rels.

word/theme/themes1.xml

Οι παράγραφοι και οι εκτελέσεις ξεκινούν με τις προεπιλεγμένες ιδιότητες: a:themeElements/a:fontScheme/a:majorFont και a:minorFont. Για να λάβετε το τελικό αποτέλεσμα των ιδιοτήτων ενός χαρακτήρα, πρέπει:

  1. Χρησιμοποιήστε τις προεπιλεγμένες ιδιότητες εκτέλεσης / παραγράφου
  2. Προσάρτηση ιδιοτήτων στυλ εκτέλεσης / παραγράφου
  3. Προσάρτηση τοπικών ιδιοτήτων εκτέλεσης / παραγράφου
  4. Προσάρτηση ιδιοτήτων εκτέλεσης αποτελεσμάτων σε ιδιότητες παραγράφου

Όταν λέω 'προσάρτηση' Β στο Α, εννοώ να επαναλάβω όλες τις ιδιότητες Β και να παρακάμψω όλες τις ιδιότητες του Α, αφήνοντας όλες τις μη τεμνόμενες ιδιότητες ως έχουν.

Ένα ακόμη μέρος όπου μπορεί να βρίσκονται οι προεπιλεγμένες ιδιότητες βρίσκεται στην ετικέτα με w:docDefaults/w:rPrDefault και w:val. Σημειώστε, ότι οι ίδιοι οι χαρακτήρες μέσα σε ένα τρέξιμο δεν έχουν ποτέ ένα προεπιλεγμένο στυλ, τα sodoes δεν επηρεάζουν πραγματικά κανένα κείμενο.

Τιτίβισμα

Οι χαρακτήρες σε μια εκτέλεση μπορούν να κληρονομηθούν από την παράγραφο και και οι δύο μπορούν να κληρονομήσουν από το Styles.xml.

1554402290400-dbb29eef3ba6035df7ad726dfc99b2af.png)

Οι χαρακτήρες σε μια εκτέλεση μπορούν να κληρονομηθούν από την παράγραφο και και οι δύο μπορούν να κληρονομήσουν από το Styles.xml.

Εναλλαγή ιδιοτήτων

Ορισμένες από τις ιδιότητες είναι ιδιότητες 'εναλλαγής', όπως (έντονη γραφή) ή (πλάγια). αυτά τα χαρακτηριστικά συμπεριφέρονται σαν χειριστής XOR.

Αυτό σημαίνει ότι εάν το γονικό στυλ είναι έντονο και ένα παιδικό τρέξιμο είναι έντονο, το αποτέλεσμα θα είναι κανονικό, μη έντονο κείμενο.

Πρέπει να κάνετε πολλές δοκιμές και αντίστροφη μηχανική για να χειριστείτε σωστά τα χαρακτηριστικά εναλλαγής. Ρίξτε μια ματιά στην παράγραφο 17.7.3 του ECMA-376 Open XML προδιαγραφή για να λάβετε τους επίσημους, λεπτομερείς κανόνες για εναλλαγή ιδιοτήτων /

Οι ιδιότητες εναλλαγής είναι οι πιο περίπλοκες για τον σωστό χειρισμό ενός layouter. Τιτίβισμα

Γραμματοσειρές

Οι γραμματοσειρές ακολουθούν τους ίδιους κοινούς κανόνες με άλλα χαρακτηριστικά κειμένου, αλλά οι προεπιλεγμένες τιμές της ιδιότητας γραμματοσειράς καθορίζονται σε ξεχωριστό αρχείο θέματος, με αναφορά στο 'left' σαν αυτό:

'center'

Με βάση την παραπάνω αναφορά, το προεπιλεγμένο όνομα γραμματοσειράς θα βρεθεί στο 'right', στο εσωτερικό atag, 'both' ή 'left' ετικέτα.

Το προεπιλεγμένο μέγεθος γραμματοσειράς είναι 10 εκτός αν το 'center' λείπει ετικέτα, τότε έχει μέγεθος 11.

Ευθυγράμμιση κειμένου

Η ευθυγράμμιση κειμένου καθορίζεται από το atag με τέσσερα 'right' διαθέσιμες λειτουργίες: 'both', w:drawing/wp:inline/a:graphic/a:graphicData/pic:pic/pic:blipFill/a:blip/@r:embed, word/_rels/document.xml.rels και word/_rels/document.xml.rels.

left right είναι η προεπιλεγμένη λειτουργία. Το κείμενο ξεκινά στα αριστερά του ορθογωνίου παραγράφου (συνήθως το πλάτος της σελίδας). (Αυτή η παράγραφος είναι ευθυγραμμισμένη προς τα αριστερά, η οποία είναι τυπική.)

w:spacing λειτουργία, προβλέψιμα, κεντράρει όλους τους χαρακτήρες μέσα στο πλάτος της σελίδας. (Και πάλι, αυτή η παράγραφος αποτελεί κεντρική στοίχιση.)

Σε w:after λειτουργία, το κείμενο της παραγράφου ευθυγραμμίζεται με το δεξί περιθώριο. (Παρατηρήστε πώς ευθυγραμμίζεται αυτό το κείμενο στη δεξιά πλευρά.)

w:before Η λειτουργία βάζει επιπλέον απόσταση μεταξύ των λέξεων, έτσι ώστε οι γραμμές να είναι ευρύτερες και να καταλαμβάνουν το πλήρες πλάτος της παραγράφου, με εξαίρεση την τελευταία γραμμή που είναι αριστερή στοίχιση. (Αυτή η παράγραφος είναι μια απόδειξη αυτού.)

Εικόνες

Το DOCX υποστηρίζει δύο είδη εικόνων: ενσωματωμένο και αιωρούμενο.

Οι ενσωματωμένες εικόνες εμφανίζονται μέσα σε μια παράγραφο μαζί με τους άλλους χαρακτήρες, χρησιμοποιούνται αντί να χρησιμοποιούνται (κείμενο). Μπορείτε να βρείτε το αναγνωριστικό εικόνας με την ακόλουθη σύνταξη xpath:

w:line

Το αναγνωριστικό εικόνας χρησιμοποιείται για την αναζήτηση του ονόματος αρχείου στο w:line αρχείο και θα πρέπει να δείχνει το αρχείο gif / jpeg μέσα στον υποφάκελο word / media. (Δείτε το αρχείο 1.docx του έργου github, όπου μπορείτε να δείτε το αναγνωριστικό εικόνας.)

Οι κινούμενες εικόνες τοποθετούνται σε σχέση με παραγράφους με κείμενο που ρέει γύρω τους. (Εδώ είναι το έργο github δείγμα εγγράφου με αιωρούμενη εικόνα.)

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

Ενσωματωμένο έναντι κυμαινόμενου.

Οι επιλογές εικόνας του MS Word αναφέρονται στην ευθυγράμμιση εικόνας ως «λειτουργία αναδίπλωσης κειμένου».

Πίνακες

Οι ετικέτες XML για πίνακες είναι παρόμοιες με τη σήμανση πίνακα HTML - είναι η ίδια με

, ταιριάζει με, και τα λοιπά.

, ο ίδιος ο πίνακας, έχει ιδιότητες πίνακα και κάθε ιδιότητα στήλης παρουσιάζεται δίπλα. Οι σειρές ακολουθούν ένα προς ένα astags και κάθε σειρά πρέπει να έχει τον ίδιο αριθμό στηλών όπως ορίζεται στο:

2.docx

Το πλάτος για τις στήλες πίνακα μπορεί να καθοριστεί στην ετικέτα, αλλά αν δεν το ορίσετε, το MS Word θα χρησιμοποιήσει τους εσωτερικούς του αλγόριθμους για να βρει το βέλτιστο πλάτος στηλών για το μικρότερο αποτελεσματικό μέγεθος πίνακα.

Μονάδες

Πολλά χαρακτηριστικά XML στο DOCX καθορίζουν μεγέθη ή αποστάσεις. Ενώ είναι ακέραιοι αριθμοί μέσα στο XML, όλοι έχουν διαφορετικές ενότητες, επομένως απαιτείται κάποια μετατροπή. Το θέμα είναι πολύπλοκο, γι 'αυτό θα το συνιστούσα αυτό το άρθρο του Lars Corneliussen σε μονάδες σε αρχεία DOCX . Ο πίνακας που παρουσιάζει είναι χρήσιμος, αν και με ένα μικρό λάθος αποτύπωμα: οι ίντσες πρέπει να είναι pt / 72, όχι pt * 72.

Εδώ είναι ένα φύλλο εξαπάτησης:

ΚΟΙΝΕΣ ΜΕΤΑΒΟΛΕΣ ΜΟΝΑΔΩΝ DOCX XML
20ο σημείο Βαθμοί
dxa / 20
Ίντσες
σημ. / 72
Εκατοστά
σε * 2,54
Μισό μέγεθος γραμματοσειράς
σημ. / 144
ΕΙΔΟΣ ΣΤΡΟΥΘΟΚΑΜΗΛΟΥ
σε * 914400
Παράδειγμα 11906 595.3 8.27 ... 21.00086 ... 4.135 7562088
Ετικέτες που χρησιμοποιούν αυτό pgSz / pgMar / w: απόσταση σε: sz wp: έκταση, a: ext

Συμβουλές για την εφαρμογή Layouter

Εάν θέλετε να μετατρέψετε ένα αρχείο DOCX (για παράδειγμα σε PDF), να το σχεδιάσετε σε καμβά ή να μετρήσετε τον αριθμό των σελίδων, θα πρέπει να εφαρμόσετε ένα layouter. Ένα layouter είναι ένας αλγόριθμος για τον υπολογισμό των θέσεων χαρακτήρων από ένα αρχείο DOCX.

Αυτή είναι μια πολύπλοκη εργασία αν χρειάζεστε απόδοση πιστότητας 100 τοις εκατό. Ο χρόνος που απαιτείται για την εφαρμογή ενός καλού layouter μετράται σε ανθρωποέτη, αλλά εάν χρειάζεστε μόνο ένα απλό, περιορισμένο, μπορεί να γίνει σχετικά γρήγορα.

Ένα layouter γεμίζει ένα γονικό ορθογώνιο, το οποίο είναι συνήθως ένα ορθογώνιο της σελίδας. Προσθέτει λέξεις από ένα τρέξιμο ένα προς ένα. Όταν η τρέχουσα γραμμή ξεχειλίζει, ξεκινά μια νέα. Εάν η παράγραφος είναι πολύ υψηλή για το γονικό ορθογώνιο, τυλίγεται στην επόμενη σελίδα.

Εδώ είναι μερικά σημαντικά πράγματα που πρέπει να θυμάστε εάν αποφασίσετε να εφαρμόσετε ένα layouter:

  • Το layouter θα πρέπει να προσέχει την ευθυγράμμιση κειμένου και το κείμενο να κυμαίνεται πάνω από εικόνες
  • Θα πρέπει να μπορεί να χειρίζεται ένθετα αντικείμενα, όπως ένθετους πίνακες
  • Εάν θέλετε να παρέχετε πλήρη υποστήριξη για τέτοιες εικόνες, θα πρέπει να εφαρμόσετε ένα layouter με τουλάχιστον δύο περάσματα, το πρώτο βήμα συλλέγει θέσεις πλωτών εικόνων και το δεύτερο γεμίζει κενό χώρο με χαρακτήρες κειμένου.
  • Να γνωρίζετε τις εσοχές και τα κενά. Κάθε παράγραφος έχει διαστήματα πριν και μετά, και αυτοί οι αριθμοί καθορίζονται από το
     ετικέτα. Η κάθετη απόσταση καθορίζεται από 
     και 
     ετικέτες. Σημειώστε ότι το διάστιχο καθορίζεται από το 
    |_+_|
    , αλλά αυτό δεν είναι το μέγεθος της γραμμής όπως μπορεί να περιμένει κανείς. Για να λάβετε το μέγεθος της γραμμής, πάρτε το τρέχον ύψος γραμματοσειράς, πολλαπλασιάστε επί
      This is our example first paragraph. It's default is left aligned, and now I'd like to introduce   some bold text ,   and also change the   font style   to 'Impact'.   This is new paragraph.   This is one more paragraph, a bit longer.  
    και διαιρέστε με 12.
  • Τα αρχεία DOCX δεν περιέχουν πληροφορίες σχετικά με τη σελιδοποίηση. Δεν θα βρείτε τον αριθμό των σελίδων στο έγγραφο, εκτός εάν υπολογίσετε τον χώρο που χρειάζεστε για κάθε γραμμή για να εξακριβώσετε τον αριθμό των σελίδων. Εάν πρέπει να βρείτε ακριβείς συντεταγμένες κάθε χαρακτήρα στη σελίδα, φροντίστε να λάβετε υπόψη όλες τις αποστάσεις, τις εσοχές και τα μεγέθη.
  • Εάν εφαρμόσετε ένα πλήρες χαρακτηριστικό DOCX layouter που χειρίζεται πίνακες, σημειώστε τις ειδικές περιπτώσεις όταν οι πίνακες εκτείνονται σε πολλές σελίδες. Ένα κελί που προκαλεί υπερχείλιση σελίδας επηρεάζει και άλλα κελιά.
  • Η δημιουργία ενός βέλτιστου αλγορίθμου για τον υπολογισμό του πλάτους των στηλών του πίνακα είναι ένα δύσκολο μαθηματικό πρόβλημα και οι επεξεργαστές κειμένου και οι διαμορφωτές χρησιμοποιούν συνήθως κάποιες υποβέλτιστες υλοποιήσεις. Προτείνω τη χρήση του αλγόριθμος από W3C HTML τεκμηρίωση πίνακα ως πρώτη προσέγγιση. Δεν βρήκα περιγραφή του αλγορίθμου που χρησιμοποιείται από το MS Word και η Microsoft έχει βελτιώσει τον αλγόριθμο με την πάροδο του χρόνου, έτσι ώστε διαφορετικές εκδόσεις του Word να μπορούν να παρουσιάζουν πίνακες ελαφρώς διαφορετικά.

Εάν κάτι δεν είναι σαφές: αναστρέψτε το XML!

Όταν δεν είναι προφανές πώς λειτουργεί αυτή η ετικέτα XML μέσα στο MS Word, υπάρχουν δύο βασικές προσεγγίσεις για να το καταλάβουμε:

  • Δημιουργήστε το επιθυμητό περιεχόμενο βήμα προς βήμα. Ξεκινήστε με ένα απλό αρχείο docx. Αποθηκεύστε κάθε βήμα στο δικό του αρχείο, όπως στο

    |_+_|
    ,
    , για παράδειγμα. Αποσυμπιέστε καθένα από αυτά και χρησιμοποιήστε ένα οπτικό εργαλείο diff για σύγκριση φακέλων για να δείτε ποιες ετικέτες εμφανίζονται μετά τις αλλαγές σας. (Για μια εμπορική επιλογή, δοκιμάστε το Araxis Merge ή για μια δωρεάν επιλογή, WinMerge.)

  • Εάν δημιουργήσετε ένα αρχείο DOCX που δεν του αρέσει το MS Word, εργαστείτε προς τα πίσω. Απλοποιήστε το XML σας βήμα προς βήμα. Σε κάποιο σημείο θα μάθετε ποια αλλαγή βρέθηκε λανθασμένη από το MS Word.

Το DOCX είναι αρκετά περίπλοκο, έτσι δεν είναι;

Είναι περίπλοκο και η άδεια της Microsoft απαγορεύει τη χρήση του MS Word από την πλευρά του διακομιστή για την επεξεργασία DOCX - αυτό είναι αρκετά τυπικό για εμπορικά προϊόντα. Η Microsoft, ωστόσο, παρείχε το Αρχείο XSLT για να χειριστείτε τις περισσότερες ετικέτες DOCX, αλλά δεν θα σας δώσει 100 τοις εκατό ή ακόμη και 99 τοις εκατό πιστότητα. Δεν υποστηρίζονται διαδικασίες όπως η αναδίπλωση κειμένου σε εικόνες, αλλά θα μπορείτε να υποστηρίζετε την πλειονότητα των εγγράφων. (Εάν δεν χρειάζεστε πολυπλοκότητα, σκεφτείτε να το χρησιμοποιήσετε Χαμήλωση τιμής ως εναλλακτική.)

Εάν έχετε επαρκή προϋπολογισμό (δεν υπάρχει δωρεάν μηχανή απόδοσης DOCX), ίσως θελήσετε να χρησιμοποιήσετε εμπορικά προϊόντα όπως το Aspose ή το docx4j. Η πιο δημοφιλής δωρεάν λύση είναι το LibreOffice για μετατροπή μεταξύ DOCX και άλλων μορφών, συμπεριλαμβανομένου του PDF. Δυστυχώς, το LibreOffice περιέχει πολλά μικρά σφάλματα κατά τη μετατροπή και επειδή είναι ένα εκλεπτυσμένο προϊόν ανοιχτού κώδικα C ++, είναι αργό και δύσκολο να διορθώσετε προβλήματα πιστότητας.

Εναλλακτικά, εάν βρείτε τη διάταξη DOCX πολύ περίπλοκη για την εφαρμογή σας, μπορείτε επίσης να τη μετατρέψετε σε HTML και να χρησιμοποιήσετε ένα πρόγραμμα περιήγησης για να την αποδώσετε. Μπορείτε επίσης να εξετάσετε ένα από αυτά Οι ανεξάρτητοι προγραμματιστές XML του ApeeScape .

Πόροι DOCX για περαιτέρω ανάγνωση

  • Προδιαγραφή ECMA DOCX
  • Βιβλιοθήκη OpenXML για χειρισμό DOCX από το C #. Δεν περιέχει πληροφορίες σχετικά με τη διάταξη ή τον κώδικα απόδοσης, αλλά προσφέρει μια ιεραρχία τάξης που αντιστοιχεί σε κάθε πιθανό κόμβο XML στο DOCX.
  • Μπορείτε πάντα αναζήτηση ή ερώτηση στο stackoverflow με λέξεις-κλειδιά όπως docx4j, OpenXML και docx. υπάρχουν άνθρωποι στην κοινότητα που είναι γνώστες.

Ποτέ μην καλέσετε τον εαυτό σας Σχεδιαστής διεπαφής χρήστη: Το UI είναι UX

Σχεδιασμός Ux

Ποτέ μην καλέσετε τον εαυτό σας Σχεδιαστής διεπαφής χρήστη: Το UI είναι UX
Ένα νέο σύνορο: Ενεργειακές λύσεις Blockchain

Ένα νέο σύνορο: Ενεργειακές λύσεις Blockchain

Καινοτομία

Δημοφιλείς Αναρτήσεις
Οι αρχές του σχεδιασμού και η σημασία τους
Οι αρχές του σχεδιασμού και η σημασία τους
Πώς να σχεδιάσετε εξαιρετικές εμπειρίες για το Διαδίκτυο των πραγμάτων
Πώς να σχεδιάσετε εξαιρετικές εμπειρίες για το Διαδίκτυο των πραγμάτων
Διαχείριση προϊόντων που ενισχύεται από την επιχειρηματική νοοτροπία
Διαχείριση προϊόντων που ενισχύεται από την επιχειρηματική νοοτροπία
Ενθάρρυνση ευκαιριών και δράσης σε απομακρυσμένο χώρο εργασίας
Ενθάρρυνση ευκαιριών και δράσης σε απομακρυσμένο χώρο εργασίας
Αρχές Σχεδιασμού - Εισαγωγή στην Οπτική Ιεραρχία
Αρχές Σχεδιασμού - Εισαγωγή στην Οπτική Ιεραρχία
 
Γιατί πρέπει να κάνετε αναβάθμιση σε Java 8 ήδη
Γιατί πρέπει να κάνετε αναβάθμιση σε Java 8 ήδη
Διαχείριση εμποδίων διαπολιτισμικής επικοινωνίας
Διαχείριση εμποδίων διαπολιτισμικής επικοινωνίας
Εκμάθηση ροής Apache Spark: Αναγνώριση τάσεων Twitter Trending Hashtags
Εκμάθηση ροής Apache Spark: Αναγνώριση τάσεων Twitter Trending Hashtags
Μείωση του κόστους σε ένα ψηφιακό μέλλον πετρελαίου και φυσικού αερίου
Μείωση του κόστους σε ένα ψηφιακό μέλλον πετρελαίου και φυσικού αερίου
Κατανόηση των συστημάτων και προτύπων σχεδιασμού
Κατανόηση των συστημάτων και προτύπων σχεδιασμού
Δημοφιλείς Αναρτήσεις
  • σε τι είναι καλό το node js
  • στρατηγικές διαχείρισης συναλλαγματικού κινδύνου
  • Εκμάθηση powerpivot excel 2010 pdf
  • όταν γίνει σωστά η διαδικασία δέουσας επιμέλειας θα
  • παραβιασμένοι έγκυροι αριθμοί πιστωτικών καρτών
  • Εκμάθηση angularjs με παραδείγματα για αρχάριους
  • μάθετε c++ ή c
Κατηγορίες
  • Άνοδος Του Απομακρυσμένου
  • Τεχνολογία
  • Τάσεις
  • Το Μέλλον Της Εργασίας
  • © 2022 | Ολα Τα Δικαιώματα Διατηρούνται

    portaldacalheta.pt