Belge Özellikleriyle Çalışma

Belge Özellikleriyle Çalışma

Belge Özellikleriyle Çalışma

Bu kılavuz, bir Word belgesinin meta verilerini — Word’ün Bilgi/Özellikler panelinde görülen özellikler ve uygulama tanımlı özel değerler — nasıl okuyup yöneteceğinizi gösterir. Document.BuiltInDocumentProperties ve Document.CustomDocumentProperties bu iki kategoriyi ortaya çıkarır, her ikisi de nihayetinde aynı temel DocumentProperty temsiline dayanır.


Yerleşik Belge Özellikleri

Document.BuiltInDocumentProperties, her belge için Word’ün izlediği standart meta verileri kapsayan bir BuiltInDocumentProperties koleksiyonu döndürür: Title, Subject, Author, Manager, Company, Category, Keywords ve Comments gibi tanımlayıcı alanlar; CreatedTime, LastSavedTime ve LastPrinted gibi zaman damgaları, ayrıca LastSavedBy ve RevisionNumber; ve Words, Characters, CharactersWithSpaces, Lines, Paragraphs ve Pages gibi istatistikler. Security, belgenin koruma durumunu bir DocumentSecurity değeri olarak raporlar ve Template, NameOfApplication ve TotalEditingTime yazar ortamını tanımlar. BuiltInDocumentProperties sabit ve bilinen bir özellik kümesi olduğu için, bireysel değerler adla aranmak yerine sıradan özellikler (BuiltInDocumentProperties.Author = "...") olarak okunur ve yazılır.

Özel Belge Özellikleri

Document.CustomDocumentProperties, Word’ün yerleşik kümesinin bir parçası olmayan uygulama tanımlı meta veriler için bir CustomDocumentProperties koleksiyonu döndürür. Çeşitli Add(name, value) aşırı yüklemeleri, bir ad ve tiplenmiş bir değer (dize, sayı, boolean veya tarih, aşırı yüklemeye bağlı olarak) ile yeni bir özellik oluşturur ve AddLinkToContent(name, linkSource), değeri statik bir değer tutmak yerine belge içinde yer işaretiyle işaretlenmiş bir içerik aralığına bağlı ve onu izleyen bir özellik oluşturur. İsme göre indeksleme (ör. properties[name]) ve Contains(name) bir özelliği arar, IndexOf(name) konumunu döndürür ve Remove(name)/RemoveAt(index) birini siler.

The DocumentProperty Nesnesi ve Paylaşılan Koleksiyon Tabanı

Hem BuiltInDocumentProperties hem de CustomDocumentProperties, ad, GetEnumerator(), Contains(name), IndexOf(name) ve Count tarafından bir indeksleyici tanımlayan soyut DocumentPropertyCollection sınıfından türetilir — böylece yerleşik özellikler sabit ve özel özellikler açık uçlu olsa da iki koleksiyon aynı şekilde incelenir. Tek tek, bir DocumentProperty bir Name, tip tanımlaması olmayan bir Value ve bir Type (bir PropertyType enum değeri: Boolean, DateTime, Double, Number, String, StringArray, ObjectArray, ByteArray veya Other) içerir. IsLinkToContent ve LinkSource, özelliğin sabit bir değer tutmak yerine belge içeriğine bağlı olup olmadığını rapor eder (yukarıdaki AddLinkToContent bölümüne bakın). Value tip tanımlaması olmadığı için, DocumentProperty tipli erişimciler — ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray() ve ToString() — sağlar; böylece açık bir dönüşüm yapmadan belirli bir tip olarak okunabilir.

Belge Güvenliği

BuiltInDocumentProperties.Security belgenin koruma durumunu tanımlayan bir DocumentSecurity değeri rapor eder: None, PasswordProtected, ReadOnlyRecommended, ReadOnlyEnforced veya ReadOnlyExceptAnnotations. Bu, dosyanın özelliklerinden okunan belgenin depolanmış koruma üst verilerini yansıtır.


İpuçları ve En İyi Uygulamalar

  • Tiplenmiş erişicileri (ToInt(), ToDouble(), ToDateTime(), ToBool()) DocumentProperty.Value üzerinde kullanın, tiplenmemiş object değerini doğrudan dönüştürmek yerine, çünkü temel depolama tipi PropertyType göre değişebilir.
  • Bir özelliğin mevcut olmayabileceği durumlarda, eksik özellik durumunu bir istisna yolu olarak ele almaktan kaçınmak için, adıyla (ör. properties[name]) herhangi bir özellik koleksiyonuna indekslemeden önce Contains(name) kontrol edin.
  • Belgenin yer imli bir bölümünü her zaman yansıtması gereken bir özel özelliğin değeri için, bu içeriğin değiştiğinde statik bir özel özelliği manuel olarak yeniden eşitlemek yerine CustomDocumentProperties.AddLinkToContent(name, linkSource) kullanın.
  • BuiltInDocumentProperties istatistiklerini (Words, Characters, Pages ve benzerlerini) dosyanın meta verilerinde saklanan değerler olarak ele al, her zaman canlı hesaplanan sayılar yerine — belge son yazılmasından bu yana değişmişse, bunları açıkça yenile.
  • Ek koruma ile ilgili ek işlemlerin gerekli olup olmayacağına karar vermeden önce belgenin bildirilen koruma durumunu kontrol etmek için BuiltInDocumentProperties.Security okuyun.

Yaygın Sorunlar

SorunNedenDüzeltme
İsme göre bir CustomDocumentProperties koleksiyonunu indekslemek, kullanılabilir bir şey döndürmezBu belgede özellik mevcut değilÖnce Contains(name) çağırın, ya da ilgili Add(name, value) aşırı yüklemesiyle özelliği ekleyin
Özel bir özelliğin değerini okurken yanlış tip elde ediliyorDocumentProperty.Value tip belirtilmemiş object; çağıran, Type ile eşleşmeyen bir tür varsaydıİlgili tipli erişicileri (ToInt(), ToDouble(), ToDateTime(), ToBool(), ToByteArray()), DocumentProperty.Type temelinde kullanın
Bağlantılı özel bir özelliğin değeri eski gibi görünüyorÖzellik, AddLinkToContent aracılığıyla bağlanmış ve bağlanan içerik, belge uygun şekilde güncellenmeden değişmişYer imli linkSource aralığının hâlâ hedeflenen içeriği yansıtıp yansıtmadığını doğrulayın
Kelime istatistikleri (Words, Pages vb.) belgenin gerçek mevcut içeriğiyle eşleşmiyorYerleşik istatistikler, depolanan meta verileri yansıtır, gerçek zamanlı bir yeniden sayım değildirGüncel bir sayım gerekliyse, ilgili BuiltInDocumentProperties değerlerini yeniden hesaplayın ve güncelleyin

FAQ

Belgenin yazarını ve başlığını nasıl okur veya ayarlarım?

Doğrudan Document.BuiltInDocumentProperties.Author ve .Title kullanın — bunlar, Document.BuiltInDocumentProperties üzerinden ulaşılabilen BuiltInDocumentProperties koleksiyonundaki sıradan dize özellikleridir.

Standart Word özelliği olmayan uygulamaya özel meta verileri nasıl eklerim?

Document.CustomDocumentProperties.Add(name, value)‘ı özelliğin adı ve değeriyle kullanın; uygun Add aşırı yüklemesi değerin türüne göre seçilir.

BuiltInDocumentProperties ile CustomDocumentProperties arasındaki fark nedir?

BuiltInDocumentProperties Word’ün sabit standart meta veri alanları kümesidir (yazar, başlık, istatistikler vb.), adlandırılmış özellikler olarak erişilir. CustomDocumentProperties uygulama tanımlı meta veri için DocumentProperty değerlerinden oluşan açık uçlu, adlandırılmış bir koleksiyondur, isimle (ör. properties[name]) ve Contains aracılığıyla erişilir.

Önceden kesin depolanmış tipini bilmeden özel bir özelliği nasıl okuyabilirim?

Koleksiyonu indeksleyerek DocumentProperty‘ı alın (ör. properties[name]), onun Type‘sini (bir PropertyType değeri) kontrol edin ve Value üzerinde ToInt(), ToDouble(), ToDateTime() veya ToBool() gibi uygun tipteki erişiciyi kullanın.

Özel bir özelliğin belge içeriğinin bir parçasını izlemesini nasıl sağlayabilirim?

CustomDocumentProperties.AddLinkToContent(name, linkSource)‘ı kullanın, bir yer işareti adını linkSource olarak geçirin; böylece özelliğin değeri statik bir değer yerine o yer işaretli içeriği yansıtır.


API Reference Özeti

Sınıf/YöntemAçıklama
Document.BuiltInDocumentPropertiesWord’ün standart meta veri alanları (yazar, başlık, istatistikler, güvenlik vb.)
Document.CustomDocumentPropertiesUygulama tanımlı adlandırılmış meta veri özellikleri
CustomDocumentProperties.Add(name, value)Adı ve tiplenmiş bir değerden özel bir özellik ekle
CustomDocumentProperties.AddLinkToContent(name, linkSource)Yer imli belge içeriğine bağlanan özel bir özellik ekleyin
DocumentPropertyCollectionHer iki özellik koleksiyonu için paylaşılan soyut temel
DocumentPropertyTek bir özelliğin adı, tiplenmemiş değeri ve PropertyType
DocumentProperty.ToInt() / ToDouble() / ToDateTime() / ToBool()Bir özelliğin değeri için tiplenmiş erişimciler
PropertyTypeBir DocumentProperty‘ın değer tipini tanımlayan enum
DocumentSecurityBir belgenin koruma durumunu tanımlayan enum, BuiltInDocumentProperties.Security üzerinden

Ayrıca Bakınız

 Türkçe