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 bozulmadan kalır
  • ihtiyaç duyduğunuzda bir belgedeki tüm alanları açıkça güncelleyebilirsiniz (örn. İçindekiler Tablosunu 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 update_fields‘i aramanız yeterlidir. Belgenin bir bölümünde yer alan alanları güncellemek için bir Range nesnesi edinin ve update_fields 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 update_fields‘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 belirlemek için update_dirty_fields özelliğini kullanabilirsiniz. update_dirty_fields değeri True olarak ayarlandığında Field.is_dirty veya FieldChar.is_dirty ö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 last_saved_time‘nin güncellenip güncellenmeyeceği SaveOptions.update_last_saved_time_property özelliğini kullanabilirsiniz.

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