Alanları Güncelle

Genellikle Microsoft Word’e eklenen bir alan zaten güncel bir değer içerir. Örneğin alan bir formül veya sayfa numarasıysa, belgenin verilen sürümü için doğru hesaplanan değeri içerecektir. Ancak, iki belgeyi birleştirmek veya onu verilerle doldurmak gibi alanlarla bir belge oluşturan veya değiştiren bir uygulamanız varsa, o zaman ideal olarak belgenin kullanışlı olması için tüm alanların güncellenmesi gerekir.

Alanlar Nasıl Güncellenir?

Bir belge yüklendiğinde Aspose.Words, alanları otomatik olarak güncelleme seçeneği kapatılarak Microsoft Word’nin davranışını taklit eder. Davranış şu şekilde özetlenebilir:

  • bir belgeyi açtığınızda/kaydettiğinizde alanlar olduğu gibi kalır
  • ihtiyaç duyduğunuzda bir belgedeki tüm alanları açıkça güncelleyebilirsiniz; örneğin TOC‘i yeniden oluşturabilirsiniz
  • PDF veya XPS’e yazdırdığınızda/oluşturduğunuzda üstbilgi/altbilgilerdeki sayfa numaralandırmayla ilgili alanlar güncellenir
  • mail merge’i çalıştırdığınızda tüm alanlar otomatik olarak güncellenir

Alanları Program Aracılığıyla Güncelleme

Belgenin tamamındaki alanları açıkça güncellemek için UpdateFields yöntemini çağırmanız yeterlidir. Belgenin bir bölümünde yer alan alanları güncellemek için bir Range nesnesi edinin ve UpdateFields yöntemini çağırın. Aspose.Words’de, Node.Range özelliğini kullanarak belge ağacındaki Section, HeaderFooter, Paragraph vb. gibi herhangi bir düğüm için bir Range alabilirsiniz. Tek bir alanın sonucunu Update yöntemini çağırarak güncelleyebilirsiniz.

İşleme Sırasında Sayfayla İlgili Alanların Otomatik Güncellenmesi

Bir belgeyi PDF veya XPS gibi sabit sayfalı bir formata dönüştürme işlemini gerçekleştirdiğinizde, Aspose.Words, belgenin üst bilgilerinde/alt bilgilerinde bulunan sayfa düzeniyle ilgili PAGE, PAGEREF alanlarını otomatik olarak güncelleyecektir. Bu davranış, bir belge yazdırılırken Microsoft Word’un davranışını taklit eder.

Belgedeki diğer tüm alanları güncellemek istiyorsanız belgeyi oluşturmadan önce UpdateFields‘i aramanız gerekir.

Aşağıdaki kod örneği, bir belgeyi oluşturmadan önce tüm alanların nasıl güncelleştirileceğini gösterir:

Mail Merge Sırasında Otomatik Alan Güncellemesi

Bir mail merge çalıştırdığınızda belgedeki tüm alanlar otomatik olarak güncellenecektir. Bunun nedeni mail merge’in bir alan güncellemesi durumu olmasıdır. Program bir mail merge alanıyla karşılaşır ve sonucunu güncellemesi gerekir; bu, veri kaynağından değerin alınıp alana eklenmesini içerir. Mantık elbette daha karmaşıktır; örneğin, belgenin/mail merge bölgesinin sonuna gelindiğinde ancak birleştirilecek daha fazla veri olduğunda, bölgenin kopyalanması ve yeni alan kümesinin güncellenmesi gerekir.

Kirli Niteliğe Sahip Alanları Güncelle

w:dirty, belge açıldığında yalnızca belirttiğiniz alanı yenileyecek alan düzeyinde bir özelliktir. MS Word’e bu alanı yalnızca belgenin bir sonraki açılışında yenilemesini söyler. Alanların kirli özniteliğiyle güncellenip güncellenmeyeceğini belirtmek için UpdateDirtyFields özelliğini kullanabilirsiniz. UpdateDirtyFields değeri true olarak ayarlandığında Field.IsDirty veya FieldChar.IsDirty özelliği için true değeri olan tüm alanlar belge yüklendiğinde güncellenir.

Aşağıdaki kod örneği, kirli özelliğine sahip alanların nasıl güncelleştirileceğini gösterir:

Kaydetmeden Önce LastSavedTime Özelliğini Güncelleyin

Belgeyi kaydederken ilgili yerleşik belge özelliği LastSavedTime‘nin güncellenip güncellenmeyeceği UpdateLastSavedTimeProperty özelliğini kullanabilirsiniz.

Aşağıdaki kod örneği bu özelliğin nasıl güncelleştirileceğini gösterir: