Dokumentumtulajdonságok kezelése

Dokumentumtulajdonságok kezelése

Dokumentumtulajdonságok kezelése

Ez az útmutató bemutatja, hogyan olvassuk és kezeljük a Word dokumentum metaadatait – a Word Információk/Tulajdonságok paneljén látható tulajdonságokat, valamint az alkalmazás által meghatározott egyedi értékeket. Document.BuiltInDocumentProperties és Document.CustomDocumentProperties teszik láthatóvá ezeket a két kategóriát, amelyek végül ugyanazon alapul szolgáló DocumentProperty reprezentáción alapulnak.


Beépített dokumentumtulajdonságok

Document.BuiltInDocumentProperties egy BuiltInDocumentProperties gyűjteményt ad vissza, amely lefedi a Word minden dokumentumra vonatkozó szabványos metaadatait: leíró mezők, mint például Title, Subject, Author, Manager, Company, Category, Keywords és Comments; időbélyegek, mint CreatedTime, LastSavedTime és LastPrinted, valamint LastSavedBy és RevisionNumber; valamint statisztikák, mint Words, Characters, CharactersWithSpaces, Lines, Paragraphs és Pages. Security a dokumentum védelmi állapotát DocumentSecurity értékként jelzi, és Template, NameOfApplication és TotalEditingTime leírja a szerzői környezetet. Mivel a BuiltInDocumentProperties egy rögzített, ismert tulajdonságkészlet, az egyedi értékek normál tulajdonságként (BuiltInDocumentProperties.Author = "...") olvashatók és írhatók, nem név alapján keresve.

Egyedi dokumentumtulajdonságok

Document.CustomDocumentProperties egy CustomDocumentProperties gyűjteményt ad vissza az alkalmazás által definiált metaadatokhoz, amelyek nem részei a Word beépített készletének. Több Add(name, value) túlterhelés hoz létre új tulajdonságot név és típusú érték (karakterlánc, szám, logikai vagy dátum, a túlterheléstől függően) alapján, és a AddLinkToContent(name, linkSource) olyan tulajdonságot hoz létre, amelynek értéke egy könyvjelzővel ellátott tartományra hivatkozik, és azt követi a dokumentumban, ahelyett, hogy statikus értéket tartalmazna. Név szerinti indexelés (például properties[name]) és a Contains(name) keres egy tulajdonságot, a IndexOf(name) visszaadja annak pozícióját, a Remove(name)/RemoveAt(index) pedig töröl egyet.

A DocumentProperty objektum és a megosztott gyűjtemény alapja

Mind a BuiltInDocumentProperties, mind a CustomDocumentProperties az absztrakt DocumentPropertyCollectionből származik, amely név szerint definiál egy indexelőt: GetEnumerator(), Contains(name), IndexOf(name) és Count — ezért a két gyűjteményt ugyanúgy vizsgálják, bár a beépített tulajdonságok rögzítettek, az egyéni tulajdonságok nyílt végűek. Egyenként egy DocumentProperty rendelkezik egy Name, egy nem típusos Value és egy Type értékkel (a PropertyType felsorolt enum érték: Boolean, DateTime, Double, Number, String, StringArray, ObjectArray, ByteArray vagy Other). IsLinkToContent és LinkSource jelentik, hogy a tulajdonság a dokumentum tartalmához van-e kapcsolva, ahelyett, hogy statikus értéket tartalmazna (lásd AddLinkToContent fent). Mivel Value nem típusos, DocumentProperty típusos hozzáférőket biztosít — ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray() és ToString() — hogy explicit átalakítás nélkül egy adott típusként olvasható legyen.

Dokumentum Biztonság

BuiltInDocumentProperties.Security egy DocumentSecurity értéket jelent a dokumentum védelmi állapotáról: None, PasswordProtected, ReadOnlyRecommended, ReadOnlyEnforced vagy ReadOnlyExceptAnnotations. Ez a dokumentum tárolt védelmi metaadatait tükrözi, ahogyan a fájl tulajdonságaiból olvasott.


Tippek és legjobb gyakorlatok

  • Használja a típusos hozzáférőket (ToInt(), ToDouble(), ToDateTime(), ToBool()) a DocumentProperty.Valueon, ahelyett hogy közvetlenül átalakítaná a nem típusos object értéket, mivel az alapul szolgáló tárolótípus PropertyType szerint változhat.
  • Ellenőrizze a Contains(name) értéket, mielőtt név szerint indexelne bármelyik tulajdonsággyűjteménybe (pl. properties[name]), amikor egy tulajdonság esetleg nem létezik, hogy elkerülje a hiányzó tulajdonság esetének kezelésekor az exception útvonalat.
  • Használja a CustomDocumentProperties.AddLinkToContent(name, linkSource) értéket, amikor egy egyéni tulajdonság értékének mindig a dokumentum könyvjelzővel ellátott részletét kell tükröznie, ahelyett, hogy manuálisan újra szinkronizálná a statikus egyéni tulajdonságot minden tartalomváltozáskor.
  • Kezelje a BuiltInDocumentProperties statisztikákat (Words, Characters, Pages és hasonlókat) úgy, mint a fájl metaadataiban tárolt értékeket, nem pedig folyamatosan élő számításokként — frissítse őket kifejezetten, ha a dokumentum azóta megváltozott, mióta legutóbb íródtak.
  • Olvassa el a(z) BuiltInDocumentProperties.Security-t, hogy ellenőrizze a dokumentum deklarált védelmi állapotát, mielőtt eldöntené, szükséges-e további védelmi feldolgozás.

Gyakori problémák

ProblémaOkJavítás
A CustomDocumentProperties kollekció név szerinti indexelése nem ad használható eredménytA tulajdonság nem létezik ebben a dokumentumbanElőször hívd meg a Contains(name) függvényt, vagy add hozzá a tulajdonságot a megfelelő Add(name, value) túlterheléssel
Egy egyedi tulajdonság értékének olvasása rossz típust ad visszaDocumentProperty.Value egy nem típusos object; a hívó egy olyan típust feltételezett, ami nem egyezik a TypeHasználja a megfelelő típusú hozzáférőt (ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray()) a(z) DocumentProperty.Type alapján
A hivatkozott egyéni tulajdonság értéke elavultnak tűnik.A tulajdonság AddLinkToContent segítségével van hivatkozva, és a hivatkozott tartalom megváltozott anélkül, hogy a dokumentum megfelelően frissült volna.Ellenőrizze, hogy a könyvjelzőzött linkSource tartomány még mindig a kívánt tartalmat tükrözi.
A szószámlálók (Words, Pages, stb.) nem egyeznek a dokumentum tényleges aktuális tartalmával.A beépített statisztikák a tárolt metaadatokat tükrözik, nem egy élő újraszámlálást.Számolja újra és frissítse a megfelelő BuiltInDocumentProperties értékeket, ha naprakész számlálásra van szükség.

FAQ

Hogyan olvashatom vagy állíthatom be a dokumentum szerzőjét és címét?

Használja közvetlenül a(z) Document.BuiltInDocumentProperties.Author és .Title elemeket — ezek egyszerű karakterlánc tulajdonságok a(z) BuiltInDocumentProperties gyűjteményen, amely elérhető a(z) Document.BuiltInDocumentProperties-ból.

Hogyan adhatok hozzá alkalmazás-specifikus metaadatot, amely nem szabványos Word-tulajdonság?

Használja a(z) Document.CustomDocumentProperties.Add(name, value)-t a tulajdonság nevével és értékével; a megfelelő Add túlterhelés kerül kiválasztásra az érték típusa alapján.

Mi a különbség a(z) BuiltInDocumentProperties és a(z) CustomDocumentProperties között?

BuiltInDocumentProperties a Word rögzített, szabványos metaadatmezőinek halmaza (szerző, cím, statisztikák stb.), melyek név szerint elérhető tulajdonságokként. CustomDocumentProperties egy nyitott, névvel ellátott gyűjtemény a DocumentProperty értékekből az alkalmazás által definiált metaadatokhoz, mely név szerint érhető el az indexelőn keresztül (pl. properties[name]) és Contains.

Hogyan olvashatok be egy egyedi tulajdonságot anélkül, hogy előre tudnám a pontos tárolt típusát?

A DocumentProperty lekérhető a gyűjtemény indexelésével (pl. properties[name]), ellenőrizze annak Type (egy PropertyType érték), és használja a megfelelő típusú hozzáférőt, mint például ToInt(), ToDouble(), ToDateTime() vagy ToBool() az Value elemén.

Hogyan tudok egy egyedi tulajdonságot úgy beállítani, hogy a dokumentum egy részletét kövesse?

Használja a CustomDocumentProperties.AddLinkToContent(name, linkSource) elemet, átadva egy könyvjelző nevét linkSource}ként; a tulajdonság értéke ezután azt a könyvjelzőzött tartalmat tükrözi, nem pedig egy statikus értéket.


API Reference Összefoglaló

Osztály/MódszerLeírás
Document.BuiltInDocumentPropertiesA Word szabványos metaadatmezői (szerző, cím, statisztikák, biztonság stb.)
Document.CustomDocumentPropertiesAlkalmazás által definiált névvel ellátott metaadat-tulajdonságok
CustomDocumentProperties.Add(name, value)Egyéni tulajdonság hozzáadása név és típusú érték alapján
CustomDocumentProperties.AddLinkToContent(name, linkSource)Egyéni tulajdonság hozzáadása, amely a könyvjelzővel ellátott dokumentumtartalomhoz kapcsolódik
DocumentPropertyCollectionKözös absztrakt alap mindkét tulajdonsággyűjteményhez
DocumentPropertyEgyetlen tulajdonság neve, típus nélküli értéke, és PropertyType
DocumentProperty.ToInt() / ToDouble() / ToDateTime() / ToBool()Típusos hozzáférők egy tulajdonság értékéhez
PropertyTypeEnum, amely leírja egy DocumentProperty értéktípusát
DocumentSecurityEnum, amely a dokumentum védelmi állapotát írja le, a BuiltInDocumentProperties.Security segítségével

Lásd még:

 Magyar