Πληροφορίες Εγγράφου

Πληροφορίες Εγγράφου

Πληροφορίες εγγράφου

Αυτός ο οδηγός δείχνει πώς να διαβάζετε και να γράφετε μεταδεδομένα εγγράφου με Aspose.Words FOSS για .NET. Κάθε φορτωμένο ή νεοδημιουργημένο Document περιέχει δύο είδη μεταδεδομένων μαζί με το περιεχόμενό του: ένα σταθερό σύνολο ενσωματωμένων ιδιοτήτων (συγγραφέας, τίτλος, αριθμός λέξεων και παρόμοια) και ένα ανοικτό σύνολο προσαρμοσμένων ιδιοτήτων που ορίζετε εσείς. Aspose.Words FOSS για .NET επίσης υλοποιεί τα πεδία Word που προβάλουν αυτά τα μεταδεδομένα μέσα στο σώμα του εγγράφου — AUTHOR, COMMENTS και DOCPROPERTY — ώστε οι τιμές των ιδιοτήτων να μπορούν να εμφανίζονται ως ζωντανό, ενημερώσιμο κείμενο.


Ενσωματωμένες ιδιότητες εγγράφου

Document.BuiltInDocumentProperties επιστρέφει μια συλλογή BuiltInDocumentProperties με μία ιδιότητα για κάθε τυπικό πεδίο μεταδεδομένων Word: Author, Title, Subject, Comments, Category, Company, Manager, Keywords, CreatedTime, LastSavedTime, LastSavedBy, LastPrinted, RevisionNumber, TotalEditingTime, και στατιστικά όπως Pages, Words, Characters, CharactersWithSpaces, Paragraphs, και Lines. Επειδή το BuiltInDocumentProperties προέρχεται από το DocumentPropertyCollection, υποστηρίζει επίσης αναζήτηση με όνομα μέσω του ευρετηρίου του, Contains(), IndexOf(), και απαρίθμηση μέσω του GetEnumerator(). Η ίδια συλλογή εκτίθεται στο PlainTextDocument.BuiltInDocumentProperties όταν εργάζεστε με εισαγωγή απλού κειμένου.


Προσαρμοσμένες ιδιότητες εγγράφου

Document.CustomDocumentProperties επιστρέφει μια συλλογή CustomDocumentProperties για ιδιότητες που ορίζεται η ίδια η εφαρμογή — αυθαίρετα ζεύγη ονομαστικού/τιμής που το Word αποθηκεύει μαζί με το ενσωματωμένο σύνολο. Προσθέστε μια ιδιότητα με το Add(name, value), που είναι υπερφορτωμένο μέσω CustomDocumentProperties για τους τύπους τιμών που μπορεί να κρατήσει μια ιδιότητα· ανακτήστε μία με βάση το όνομα μέσω του ευρετηρίου, π.χ. properties[name]; και αφαιρέστε εγγραφές με Remove(name), RemoveAt(index) ή Clear(). Το AddLinkToContent(name, linkSource) δημιουργεί μια ιδιότητα της οποίας η τιμή είναι συνδεδεμένη με σελιδοδείκτη ή περιοχή μέσα στο έγγραφο αντί να αποθηκεύεται ως σταθερή τιμή.

Κάθε καταχώρηση σε οποιαδήποτε συλλογή — ενσωματωμένη ή προσαρμοσμένη — είναι ένα DocumentProperty, το οποίο εκθέτει Name, Value και Type (μια τιμή PropertyType: String, Number, Double, Boolean, DateTime, StringArray, ObjectArray, ByteArray ή Other), καθώς και IsLinkToContent και LinkSource για συνδεδεμένες ιδιότητες. Το DocumentProperty παρέχει βοηθητικά εργαλεία μετατροπής όπως ToString(), ToInt(), ToDouble(), ToDateTime(), ToBool() και ToByteArray() για την ανάκτηση της υποκείμενης τιμής στον επιθυμητό τύπο .NET.


Πεδία Πληροφοριών Εγγράφου

Τρία Field υποκατηγορίες εκθέτουν μεταδεδομένα εγγράφου ως πεδία μέσα στο ίδιο σώμα του εγγράφου: FieldAuthor (το πεδίο AUTHOR, με ιδιότητα AuthorName), FieldComments (το πεδίο COMMENTS, με ιδιότητα Text), και FieldDocProperty (το πεδίο DOCPROPERTY, το οποίο διαβάζει μια ονομαστική ιδιότητα εγγράφου — ενσωματωμένη ή προσαρμοσμένη — στο έγγραφο). Όπως κάθε Field, αυτά τα τρία μοιράζονται τον βασικό κύκλο ζωής Field: GetFieldCode() για ανάγνωση του υποκείμενου κώδικα πεδίου, Result / DisplayResult για ανάγνωση της τελευταίας υπολογισμένης τιμής, Update() για επαναϋπολογισμό της τιμής, Unlink() για αντικατάσταση του πεδίου με το στατικό του αποτέλεσμα, και Remove() για διαγραφή του. Εισάγετε ένα πεδίο πληροφοριών εγγράφου με DocumentBuilder.InsertField(fieldCode) — για παράδειγμα έναν κώδικα πεδίου AUTHOR ή DOCPROPERTY "Company" — ή με την υπερφόρτωση InsertField(fieldType, updateField) χρησιμοποιώντας μια τιμή FieldType όπως FieldType.FieldAuthor, FieldType.FieldComments, ή FieldType.FieldDocProperty.

Επειδή το FieldDocProperty διαβάζει οποιαδήποτε ιδιότητα εγγράφου είναι δεσμευμένο, η αλλαγή της υποκείμενης τιμής BuiltInDocumentProperties ή CustomDocumentProperties και στη συνέχεια η κλήση του Update() — ή του Document.UpdateFields() για να ανανεώσετε κάθε πεδίο στο έγγραφο μονομιάς — μεταβιβάζει τη νέα τιμή στο εμφανιζόμενο αποτέλεσμα του πεδίου.


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

  • Ορίστε ενσωματωμένες ιδιότητες όπως Title, Author και Subject πριν από την αποθήκευση — το Word και άλλοι καταναλωτές τις διαβάζουν από το BuiltInDocumentProperties για καταχωρίσεις εγγράφων και ευρετηρίαση αναζήτησης.
  • Χρησιμοποιήστε το DocumentProperty.Type για να ελέγξετε το PropertyType μιας ιδιότητας πριν καλέσετε έναν συγκεκριμένο βοηθό μετατροπής (ToInt(), ToDateTime(), κ.λπ.) ώστε να αποφύγετε μια ασυμφωνία μετατροπής σε ιδιότητα που δεν δημιουργήσατε εσείς.
  • Το AddLinkToContent() διατηρεί μια προσαρμοσμένη ιδιότητα συγχρονισμένη με το περιεχόμενο του εγγράφου (όπως μια περιορισμένη περιοχή με σελιδοδείκτη) αντί για μια σταθερή τιμή — χρησιμοποιήστε το όταν η ιδιότητα πρέπει πάντα να αντανακλά το τρέχον περιεχόμενο του εγγράφου.
  • Καλέστε το Document.UpdateFields() μετά την αλλαγή των ιδιοτήτων του εγγράφου ώστε τυχόν πεδία FieldDocProperty, FieldAuthor ή FieldComments που ήδη βρίσκονται στο σώμα του εγγράφου να υιοθετήσουν τις νέες τιμές.
  • BuiltInDocumentProperties και CustomDocumentProperties είναι και τα δύο διαθέσιμα στο PlainTextDocument καθώς και στο Document, έτσι τα μεταδεδομένα μεταφέρονται ακόμη και όταν το φορτωμένο περιεχόμενο είναι απλό κείμενο.

Συνηθισμένα προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Ο ευρετηριαστής επιστρέφει null για μια προσαρμοσμένη ιδιότηταΗ ιδιότητα δεν έχει προστεθεί ακόμηΚαλέστε πρώτα το CustomDocumentProperties.Add(name, value), ή ελέγξτε το Contains(name) πριν από την ανάγνωση
FieldDocProperty εμφανίζει μια παλιά τιμή μετά την αλλαγή μιας ιδιότηταςΤο πεδίο δεν ανανεώθηκεΚαλέστε το Update() στο πεδίο, ή το Document.UpdateFields() για να ανανεώσετε κάθε πεδίο στο έγγραφο
DocumentProperty.ToInt() / ToDateTime() ρίχνειΗ πραγματική Type της ιδιότητας δεν ταιριάζει με τη ζητούμενη μετατροπήΕλέγξτε το DocumentProperty.Type πριν επιλέξετε ποιον βοηθό μετατροπής να καλέσετε

FAQ

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

Οι ενσωματωμένες ιδιότητες (Document.BuiltInDocumentProperties) είναι ένα σταθερό σύνολο που ορίζεται από τη μορφή OOXML — Author, Title, Pages, και παρόμοια. Οι προσαρμοσμένες ιδιότητες (Document.CustomDocumentProperties) είναι ένα ανοιχτό, από την εφαρμογή καθορισμένο σύνολο ζευγών όνομα/τιμή που προστίθενται με Add().

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

Χρησιμοποιήστε το CustomDocumentProperties.AddLinkToContent(name, linkSource), το οποίο συνδέει την τιμή της ιδιότητας με ένα σελιδοδείκτη ή μια περιοχή στο έγγραφο αντί να αποθηκεύει μια στατική τιμή.

Ενημερώνει η ενημέρωση μιας ιδιότητας εγγράφου αυτόματα τα πεδία που την εμφανίζουν;

Όχι — καλέστε το Update() στο συγκεκριμένο πεδίο ή το Document.UpdateFields() για να επανυπολογίσετε κάθε πεδίο στο έγγραφο, συμπεριλαμβανομένων των FieldDocProperty, FieldAuthor και FieldComments παραδειγμάτων.

Μπορώ να διαβάσω τις ιδιότητες του εγγράφου από ένα αρχείο απλού κειμένου;

Ναι. Το PlainTextDocument εκθέτει τις ίδιες BuiltInDocumentProperties και CustomDocumentProperties ιδιότητες όπως το Document.


API Reference Σύνοψη

Κλάση / ΜέθοδοςΠεριγραφή
Document.BuiltInDocumentPropertiesΤυπική συλλογή μεταδεδομένων OOXML (Author, Title, Pages, κ.λπ.)
Document.CustomDocumentPropertiesΣυλλογή ιδιοτήτων ονομα/τιμή που ορίζεται από την εφαρμογή
CustomDocumentProperties.Add() / δείκτης κατά όνομα / AddLinkToContent()Προσθήκη, ανάκτηση ή σύνδεση περιεχομένου μιας προσαρμοσμένης ιδιότητας
DocumentPropertyΜοναδική καταχώρηση ιδιότητας· Value, Type, και ToString()/ToInt()/ToDouble()/ToDateTime()/ToBool()/ToByteArray() βοηθητικά προγράμματα μετατροπής
FieldAuthor / FieldComments / FieldDocPropertyAUTHOR, COMMENTS και DOCPROPERTY πεδία· Update(), Result, GetFieldCode()
DocumentBuilder.InsertField()Εισάγει ένα πεδίο με κώδικα πεδίου ή FieldType

Δείτε επίσης

 Ελληνικά