Perbarui Bidang

Biasanya, bidang yang dimasukkan ke dalam Microsoft Word sudah berisi nilai terkini. Misalnya, jika bidangnya berupa rumus atau nomor halaman, bidang tersebut akan berisi nilai terhitung yang benar untuk versi dokumen tertentu. Namun jika Anda memiliki aplikasi yang membuat atau memodifikasi dokumen dengan kolom seperti menggabungkan dua dokumen atau mengisinya dengan data, maka idealnya semua kolom harus diperbarui agar dokumen tersebut berguna.

Cara Memperbarui Bidang

Saat dokumen dimuat, Aspose.Words meniru perilaku Microsoft Word dengan opsi untuk memperbarui kolom secara otomatis dimatikan. Perilaku tersebut dapat diringkas sebagai berikut:

  • saat Anda membuka/menyimpan dokumen, kolomnya tetap utuh
  • Anda dapat secara eksplisit memperbarui semua bidang dalam dokumen (misalnya membangun kembali TOC) bila diperlukan
  • ketika Anda mencetak/merender ke PDF atau XPS, bidang yang terkait dengan penomoran halaman di header/footer diperbarui
  • saat Anda menjalankan mail merge, semua kolom diperbarui secara otomatis

Perbarui Bidang Secara Terprogram

Untuk memperbarui kolom di seluruh dokumen secara eksplisit, cukup panggil update_fields. Untuk memperbarui bidang yang terdapat di bagian dokumen, dapatkan objek Range dan panggil metode update_fields. Di Aspose.Words, Anda bisa mendapatkan Range untuk node mana pun di pohon dokumen, seperti Section, HeaderFooter, Paragraph, dll. menggunakan properti Node.range. Anda dapat memperbarui hasil dari satu bidang dengan memanggil metode update.

Pembaruan Otomatis Bidang Terkait Halaman Selama Rendering

Saat Anda melakukan konversi dokumen ke format halaman tetap misalnya ke PDF atau XPS, maka Aspose.Words akan secara otomatis memperbarui bidang terkait tata letak halaman PAGE, PAGEREF yang terdapat di header/footer dokumen. Perilaku ini meniru perilaku Microsoft Word saat mencetak dokumen.

Jika Anda ingin memperbarui semua bidang lain dalam dokumen, Anda perlu memanggil update_fields sebelum merender dokumen.

Contoh kode berikut menunjukkan cara memperbarui semua bidang sebelum merender dokumen:

Pembaruan Bidang Otomatis Selama Mail Merge

Saat Anda menjalankan mail merge, semua kolom dalam dokumen akan diperbarui secara otomatis. Hal ini karena Mail Merge merupakan kasus pembaruan lapangan. Program ini menemukan bidang Mail Merge dan perlu memperbarui hasilnya, yang melibatkan pengambilan nilai dari sumber data dan memasukkannya ke dalam bidang. Logikanya tentu saja lebih rumit, misalnya ketika akhir wilayah dokumen/mail merge telah tercapai tetapi masih ada data lebih lanjut yang harus digabungkan, maka wilayah tersebut perlu diduplikasi dan kumpulan kolom baru diperbarui.

Perbarui Bidang yang Memiliki Atribut Kotor

w:dirty adalah atribut tingkat bidang yang hanya akan menyegarkan bidang yang Anda tentukan saat dokumen dibuka. Ini memberitahu MS Word untuk hanya me-refresh bidang ini saat dokumen dibuka lagi. Anda dapat menggunakan properti update_dirty_fields untuk menentukan apakah akan memperbarui bidang dengan atribut kotor. Ketika nilai perbarui_kotor_bidang diatur ke True, semua bidang yang memiliki nilai True untuk properti Field.is_dirty atau FieldChar.is_dirty diperbarui saat dokumen dimuat.

Contoh kode berikut menunjukkan cara memperbarui kolom yang memiliki atribut dirty:

Perbarui Properti LastSavedTime Sebelum Menyimpan

Anda dapat menggunakan properti SaveOptions.update_last_saved_time_property apakah akan memperbarui properti dokumen bawaan last_saved_time yang sesuai saat menyimpan dokumen.

Contoh kode berikut menunjukkan cara memperbarui properti ini: