Hogyan dolgozzunk a dokumentum tulajdonságokkal a .NET-ben

Hogyan dolgozzunk a dokumentum tulajdonságokkal a .NET-ben

Hogyan dolgozzunk a dokumentumtulajdonságokkal a .NET

Minden Word-dokumentum két kategóriájú metaadatot tartalmaz — a Word minden fájlhoz nyomon követett szabványos mezőket, valamint a program által hozzáadott alkalmazás-specifikus értékeket. Ez az útmutató bemutatja, hogyan olvassuk és állítsuk be mindkettőt a Aspose.Words FOSS .NET számára, a Document.BuiltInDocumentProperties és a Document.CustomDocumentProperties használatával, amelyek végül ugyanarra a DocumentProperty ábrázolásra épülnek.


Lépésről-lépésre útmutató

1. lépés: Beépített dokumentumtulajdonságok olvasása és beállítása

Document.BuiltInDocumentProperties egy BuiltInDocumentProperties gyűjteményt ad vissza. Mivel ez egy rögzített, ismert tulajdonságkészlet, az értékek szokásos tagokként olvashatók és írhatók, nem név alapján keresve — például BuiltInDocumentProperties.Author, .Title, .Subject, .Manager, .Company, .Category, .Keywords és .Comments leíró mezőkhöz, vagy .CreatedTime, .LastSavedTime, .LastPrinted és .LastSavedBy időbélyegekhez. Statisztikák, mint a .Characters, .CharactersWithSpaces, .Lines és .Bytes szintén így érhetők el, valamint a .Template és a .HyperlinkBase.


2. lépés: Egy egyéni dokumentumtulajdonság hozzáadása

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. Hívja meg a Add(name, value) egyik túlterhelését egy névvel és egy típusos értékkel — string, szám, logikai vagy dátum, attól függően, melyik túlterhelés illeszkedik az érték típusához — egy új tulajdonság létrehozásához.


3. lépés: Egyéni tulajdonság összekapcsolása a dokumentum tartalmával

Statikus érték helyett egy egyéni tulajdonság nyomon követhet egy könyvjelzővel jelölt tartományt, így értéke szinkronban marad azzal a tartalommal. Hívja meg a CustomDocumentProperties.AddLinkToContent(name, linkSource) függvényt, a könyvjelző nevét linkSource paraméterként átadva, ahelyett, hogy manuálisan újra szinkronizálná a statikus tulajdonságot minden alkalommal, amikor a kapcsolódó tartalom megváltozik.


4. lépés: Tulajdonságok keresése, ellenőrzése és eltávolítása

Mind a BuiltInDocumentProperties, mind a CustomDocumentProperties az absztrakt DocumentPropertyCollection osztályból származik, ezért ugyanúgy vizsgálhatók: név szerinti indexelés (pl. properties[name]) visszaad egy tulajdonságot, a Contains(name) ellenőrzi, hogy létezik-e, a IndexOf(name) visszaadja a pozícióját, és a Count jelzi, hány tulajdonságot tartalmaz a gyűjtemény. Hívja meg a Contains(name) függvényt a név szerinti indexelés előtt, ha egy egyéni tulajdonság esetleg nem létezik, hogy elkerülje a hiányzó tulajdonságot kivételként kezelni. Távolítson el egy tulajdonságot a Remove(name) vagy RemoveAt(index) segítségével, vagy törölje a gyűjtemény összes tulajdonságát a Clear() használatával.


5. lépés: Egyéni tulajdonság értékének kiolvasása anélkül, hogy előre ismernénk a típusát

Egy DocumentProperty rendelkezik egy Name-vel, egy nem típusos Value-vel, és egy Type-val — egy PropertyType enum értékkel: Boolean, DateTime, Double, Number, String, StringArray, ObjectArray, ByteArray vagy Other. Mivel a Value nem típusos, használja a megfelelő típusú accessor-t a közvetlen átkonvertálás helyett: ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray() vagy ToString(). Ellenőrizze a IsLinkToContent és a LinkSource értékeket, hogy megtudja, egy tulajdonság a dokumentum tartalmához van-e kapcsolva (lásd a 3. lépést), vagy statikus értéket tárol.


6. lépés: A dokumentum védelmi állapotának ellenőrzése

BuiltInDocumentProperties.Security egy DocumentSecurity értéket jelent, amely a dokumentum tárolt védelmi metaadatait írja le: None, PasswordProtected, ReadOnlyRecommended, ReadOnlyEnforced vagy ReadOnlyExceptAnnotations. Olvassa el ezt a tulajdonságot, mielőtt eldöntené, szükséges-e további védelemmel kapcsolatos feldolgozás a betöltött dokumentumon.


Gyakori problémák és megoldások

Egy indexelés CustomDocumentProperties a gyűjtemény név szerint történő indexelése nem ad felhasználható eredményt. A tulajdonság nem létezik ebben a dokumentumban. Hívja Contains(name) először, vagy adja hozzá a tulajdonságot a megfelelő Add(name, value) túlterheléssel.

Az egyéni tulajdonság értékének olvasása rossz típust ad. DocumentProperty.Value típus nélküli object; a hívó olyan típust feltételezett, ami nem egyezik Type. Használja a megfelelő típusú hozzáférőt (ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray()) alapján DocumentProperty.Type.

A kapcsolt egyéni tulajdonság értéke elavultnak tűnik. A tulajdonság a következőn keresztül van kapcsolva AddLinkToContent, és a könyvjelzőzött tartalom megváltozott. Erősítse meg a linkSource könyvjelző továbbra is azt a tartományt jelöli, amelynek táplálnia kell a tulajdonság értékét.

A szó statisztikák, például Characters or Lines 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ámolást. Számolja újra és frissítse a releváns BuiltInDocumentProperties értékeket, ha naprakész számra van szükség.


Gyakran Ismételt Kérdések

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

Használja közvetlenül a Document.BuiltInDocumentProperties.Author és .Title elemeket — ezek egyszerű string tulajdonságok a Document.BuiltInDocumentProperties által elérhető BuiltInDocumentProperties gyűjteményen.

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

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

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

BuiltInDocumentProperties a Word rögzített, szabványos metaadatmezőinek halmaza, amely név szerint elérhető tagokként. CustomDocumentProperties egy nyílt, név szerint elnevezett DocumentProperty értékek gyűjteménye az alkalmazás által definiált metaadatokhoz, amely név szerint érhető el az indexelőn keresztül (pl. properties[name]) és a Contains segítségével.

Hogyan készíthetek egy egyedi tulajdonságot, amely a dokumentum egy részét követi, ahelyett, hogy statikus értéket tárolna?

Használja a CustomDocumentProperties.AddLinkToContent(name, linkSource) elemet, és adja át a könyvjelző nevét linkSource paraméterként; ezután a tulajdonság értéke a könyvjelzővel jelölt tartalmat tükrözi.

Hogyan ellenőrizhetem, hogy egy dokumentum jelszóval védett-e?

Olvassa be a(z) Document.BuiltInDocumentProperties.Security értéket, egy DocumentSecurity értéket; a(z) PasswordProtected azt jelzi, hogy a dokumentum tárolt metaadatai jelszóvédelemről szólnak.


Lásd még:

 Magyar