Dokumentum információk

Dokumentum információk

Dokumentum információ

Ez az útmutató bemutatja, hogyan kell olvasni és írni a dokumentum metaadatokat a Aspose.Words FOSS segítségével a .NET számára. Minden betöltött vagy újonnan létrehozott Document kétféle metaadatot tartalmaz a tartalma mellett: egy rögzített halmaz beépített tulajdonságot (szerző, cím, szavak száma és hasonló) és egy nyílt végű halmaz egyéni tulajdonságot, amelyet saját maga definiál. A Aspose.Words FOSS a .NET esetén szintén megvalósítja a Word mezőket, amelyek ezt a metaadatot a dokumentum törzsébe hozják — AUTHOR, COMMENTS és DOCPROPERTY — így a tulajdonságértékek élő, frissíthető szövegként jelenhetnek meg.


Beépített dokumentumtulajdonságok

Document.BuiltInDocumentProperties egy BuiltInDocumentProperties gyűjteményt ad vissza, amely minden szabványos Word metaadatmezőhöz egy tulajdonságot tartalmaz: Author, Title, Subject, Comments, Category, Company, Manager, Keywords, CreatedTime, LastSavedTime, LastSavedBy, LastPrinted, RevisionNumber, TotalEditingTime, valamint statisztikákat, mint például Pages, Words, Characters, CharactersWithSpaces, Paragraphs és Lines. Mivel a BuiltInDocumentProperties a DocumentPropertyCollection -ból származik, támogatja a név szerinti keresést az indexelőjén keresztül, Contains(), IndexOf(), valamint a felsorolást a GetEnumerator() segítségével. Ugyanaz a gyűjtemény elérhető a PlainTextDocument.BuiltInDocumentProperties -nál, amikor egyszerű szöveges bemenettel dolgozik.


Egyéni dokumentumtulajdonságok

Document.CustomDocumentProperties egy CustomDocumentProperties gyűjteményt ad vissza az alkalmazás által saját maga által definiált tulajdonságokhoz — tetszőleges név/érték párok, amelyeket a Word a beépített halmaz mellett tárol. Tulajdonságot adjon hozzá a Add(name, value) segítségével, amely a CustomDocumentProperties -ban túlterhelt a tulajdonság által tárolható értéktípusokhoz; egyet név szerint kérhet le az indexerrel, például properties[name]; és bejegyzéseket távolíthat el a Remove(name), RemoveAt(index) vagy Clear() használatával. A AddLinkToContent(name, linkSource) egy olyan tulajdonságot hoz létre, amelynek értéke egy könyvjelzőhöz vagy a dokumentumon belüli tartományhoz van kapcsolva, ahelyett, hogy rögzített értékként lenne tárolva.

Minden bejegyzés bármelyik gyűjteményben – legyen az beépített vagy egyéni – egy DocumentProperty, amely elérhetővé teszi a Name, Value és Type (egy PropertyType érték: String, Number, Double, Boolean, DateTime, StringArray, ObjectArray, ByteArray vagy Other), valamint a IsLinkToContent és LinkSource a kapcsolt tulajdonságokhoz. A DocumentProperty konverziós segédfüggvényeket biztosít, mint például a ToString(), ToInt(), ToDouble(), ToDateTime(), ToBool() és ToByteArray(), amelyek a kívánt .NET típusú alapérték lekérését teszik lehetővé.


Dokumentum-információs mezők

Három Field alosztály a dokumentum metaadatait mezőkként teszi elérhetővé a dokumentum törzsén belül: FieldAuthor (a AUTHOR mező, AuthorName tulajdonsággal), FieldComments (a COMMENTS mező, Text tulajdonsággal), és FieldDocProperty (a DOCPROPERTY mező, amely egy névvel ellátott dokumentumtulajdonságot – beépített vagy egyéni – olvas be a dokumentumba). Mint minden Field, ez a három a Field alap életciklust osztja: GetFieldCode() a mezőkód kiolvasásához, Result / DisplayResult az utolsó kiszámított érték kiolvasásához, Update() az érték újraszámításához, Unlink() a mező statikus eredménnyel való helyettesítéséhez, és Remove() a törléséhez. Helyezz be egy dokumentum-információs mezőt a DocumentBuilder.InsertField(fieldCode) használatával – például AUTHOR vagy DOCPROPERTY "Company" mezőkóddal – vagy a InsertField(fieldType, updateField) túlterheléssel, egy FieldType érték használatával, mint például FieldType.FieldAuthor, FieldType.FieldComments vagy FieldType.FieldDocProperty.

Mivel a FieldDocProperty azt a dokumentumtulajdonságot olvassa, amelyhez kötve van, az alapul szolgáló BuiltInDocumentProperties vagy CustomDocumentProperties érték módosítása, majd a Update() meghívása – vagy a Document.UpdateFields() a dokumentum összes mezőjének egyszerre frissítéséhez – átadja az új értéket a mező megjelenített eredményének.


Tippek és bevált gyakorlatok

  • Állíts be beépített tulajdonságokat, mint például Title, Author és Subject, a mentés előtt – a Word és egyéb felhasználók ezeket a BuiltInDocumentProperties-ből olvassák a dokumentumlisták és a keresőindexelés számára.
  • Használd a DocumentProperty.Type-t egy tulajdonság PropertyType ellenőrzésére, mielőtt egy konkrét konverziós segédprogramot (ToInt(), ToDateTime() stb.) hívnád, hogy elkerüld a konverziós eltérést egy olyan tulajdonság esetén, amelyet nem te hoztál létre.
  • A AddLinkToContent() egy egyéni tulajdonságot szinkronban tart a dokumentum tartalmával (például egy könyvjelzőzött tartománnyal) egy rögzített érték helyett – használd, ha a tulajdonságnak mindig a dokumentumban jelenleg lévő állapotot kell tükröznie.
  • Hívd meg a Document.UpdateFields()-t a dokumentumtulajdonságok módosítása után, hogy a dokumentum törzsében már létező FieldDocProperty, FieldAuthor vagy FieldComments mezők felvehessék az új értékeket.
  • BuiltInDocumentProperties és CustomDocumentProperties egyaránt elérhetők a PlainTextDocument és a Document rendszerekben, így a metaadatok körbejárása megtörténik akkor is, ha a betöltött tartalom egyszerű szöveg.

Gyakori problémák

ProblémaOkaJavítás
Az indexelő null értéket ad vissza egy egyedi tulajdonságraA tulajdonság még nincs hozzáadvaElőször hívd meg a CustomDocumentProperties.Add(name, value) függvényt, vagy ellenőrizd a Contains(name) értéket az olvasás előtt
FieldDocProperty elavult értéket mutat egy tulajdonság megváltoztatása utánA mező nem frissültHívja meg a(z) Update() a mezőn, vagy a(z) Document.UpdateFields() a dokumentum összes mezőjének frissítéséhez
DocumentProperty.ToInt() / ToDateTime() kivételt dobA tulajdonság tényleges Type nem egyezik a kért konverzióvalEllenőrizze a DocumentProperty.Type értékét, mielőtt kiválasztaná, melyik konverziós segédprogramot hívja meg

FAQ

Mi a különbség a beépített és az egyéni dokumentumtulajdonságok között?

A beépített tulajdonságok (Document.BuiltInDocumentProperties) egy rögzített halmaz, amelyet az OOXML formátum határoz meg — Author, Title, Pages, és hasonlók. Az egyéni tulajdonságok (Document.CustomDocumentProperties) egy nyílt, alkalmazás által meghatározott név/érték párokból álló halmaz, amelyet a Add() segítségével adnak hozzá.

Hogyan tudom, hogy egy egyéni tulajdonság a dokumentum tartalmát kövesse ahelyett, hogy fix értéket tárolna?

Használja a CustomDocumentProperties.AddLinkToContent(name, linkSource) elemet, amely a tulajdonság értékét egy dokumentumbeli könyvjelzőhöz vagy tartományhoz köti, ahelyett, hogy statikus értéket tárolna.

A dokumentumtulajdonság frissítése automatikusan frissíti az azt megjelenítő mezőket?

Nem — hívd a Update() függvényt a konkrét mezőn, vagy a Document.UpdateFields()-t a dokumentum minden mezőjének újraszámításához, beleértve a FieldDocProperty, FieldAuthor és FieldComments példányokat.

Olvashatok dokumentum tulajdonságokat egy egyszerű szöveges dokumentumból?

Igen. A PlainTextDocument ugyanazokat a BuiltInDocumentProperties és CustomDocumentProperties tulajdonságokat teszi elérhetővé, mint a Document.


API Reference összefoglaló

Osztály / MetódusLeírás
Document.BuiltInDocumentPropertiesStandard OOXML metaadat-gyűjtemény (Author, Title, Pages, stb.)
Document.CustomDocumentPropertiesAlkalmazás által definiált név/érték tulajdonsággyűjtemény
CustomDocumentProperties.Add() / név szerinti indexelő / AddLinkToContent()Egyéni tulajdonság hozzáadása, lekérése vagy tartalomhivatkozása
DocumentPropertyEgyetlen tulajdonság bejegyzés; Value, Type, és ToString()/ToInt()/ToDouble()/ToDateTime()/ToBool()/ToByteArray() konverziós segédfüggvények
FieldAuthor / FieldComments / FieldDocPropertyAUTHOR, COMMENTS, és DOCPROPERTY mezők; Update(), Result, GetFieldCode()
DocumentBuilder.InsertField()Mező beszúrása mezőkóddal vagy FieldType

Lásd még:

 Magyar