อัปเดตฟิลด์
โดยทั่วไปแล้ว ช่องที่แทรกลงใน Microsoft Word จะมีค่าล่าสุดอยู่แล้ว ตัวอย่างเช่น หากฟิลด์นั้นเป็นสูตรหรือหมายเลขหน้า ฟิลด์นั้นก็จะมีค่าที่คำนวณได้ถูกต้องสำหรับเวอร์ชันของเอกสารที่กำหนด แต่ถ้าคุณมีแอปพลิเคชันที่สร้างหรือแก้ไขเอกสารที่มีฟิลด์ต่างๆ เช่น การรวมเอกสารสองฉบับหรือเติมข้อมูลลงในเอกสาร ตามหลักการแล้ว ฟิลด์ทั้งหมดจะต้องได้รับการอัปเดตเพื่อให้เอกสารมีประโยชน์
วิธีอัปเดตฟิลด์
เมื่อโหลดเอกสาร Aspose.Words จะเลียนแบบลักษณะการทำงานของ Microsoft Word พร้อมกับปิดตัวเลือกในการอัปเดตช่องโดยอัตโนมัติ พฤติกรรมสามารถสรุปได้ดังนี้:
- เมื่อคุณเปิด/บันทึกเอกสาร ช่องต่างๆ จะยังคงเหมือนเดิม
- คุณสามารถอัปเดตช่องทั้งหมดในเอกสารได้อย่างชัดเจน เช่น สร้าง
TOC
ใหม่ เมื่อคุณต้องการ - เมื่อคุณพิมพ์/เรนเดอร์เป็น PDF หรือ XPS ฟิลด์ที่เกี่ยวข้องกับการกำหนดหมายเลขหน้าในส่วนหัว/ท้ายกระดาษจะได้รับการอัปเดต
- เมื่อคุณดำเนินการ Mail Merge ฟิลด์ทั้งหมดจะได้รับการอัปเดตโดยอัตโนมัติ
อัปเดตฟิลด์โดยทางโปรแกรม
หากต้องการอัปเดตฟิลด์ในเอกสารทั้งหมดอย่างชัดเจน เพียงเรียกเมธอด UpdateFields หากต้องการอัปเดตฟิลด์ที่มีอยู่ในส่วนหนึ่งของเอกสาร ให้รับออบเจ็กต์ Range และเรียกใช้เมธอด UpdateFields ใน Aspose.Words คุณสามารถรับ Range สำหรับโหนดใดๆ ในแผนผังเอกสาร เช่น Section, HeaderFooter, Paragraph เป็นต้น โดยใช้คุณสมบัติ Node.Range คุณสามารถอัปเดตผลลัพธ์ของฟิลด์เดียวได้โดยการเรียกเมธอด Update
การอัปเดตฟิลด์ที่เกี่ยวข้องกับเพจโดยอัตโนมัติระหว่างการเรนเดอร์
เมื่อคุณดำเนินการแปลงเอกสารเป็นรูปแบบหน้าคงที่ เช่น PDF หรือ XPS แล้ว Aspose.Words จะอัปเดตฟิลด์ที่เกี่ยวข้องกับเค้าโครงหน้า PAGE
, PAGEREF
ที่พบในส่วนหัว/ส่วนท้ายของเอกสารโดยอัตโนมัติ ลักษณะการทำงานนี้เลียนแบบพฤติกรรมของ Microsoft Word เมื่อพิมพ์เอกสาร
หากคุณต้องการอัปเดตช่องอื่นๆ ทั้งหมดในเอกสาร คุณต้องเรียก UpdateFields ก่อนที่จะเรนเดอร์เอกสาร
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีอัปเดตฟิลด์ทั้งหมดก่อนแสดงผลเอกสาร:
อัปเดตฟิลด์อัตโนมัติระหว่าง Mail Merge
เมื่อคุณดำเนินการ Mail Merge ช่องทั้งหมดในเอกสารจะได้รับการอัปเดตโดยอัตโนมัติ เนื่องจาก Mail Merge เป็นกรณีของการอัปเดตช่อง โปรแกรมพบฟิลด์ Mail Merge และจำเป็นต้องอัปเดตผลลัพธ์ ซึ่งเกี่ยวข้องกับการดึงค่าจากแหล่งข้อมูลแล้วแทรกลงในฟิลด์ แน่นอนว่าตรรกะนั้นซับซ้อนกว่า เช่น เมื่อถึงจุดสิ้นสุดของเอกสาร/ขอบเขต Mail Merge แต่ยังมีข้อมูลเพิ่มเติมที่จะรวมเข้าด้วยกัน จำเป็นต้องทำซ้ำขอบเขตและอัปเดตชุดฟิลด์ใหม่
อัปเดตฟิลด์ที่มีแอตทริบิวต์สกปรก
w:dirty เป็นแอตทริบิวต์ระดับฟิลด์ที่จะรีเฟรชเฉพาะฟิลด์ที่คุณระบุเมื่อเปิดเอกสาร โดยจะแจ้งให้ MS Word รีเฟรชฟิลด์นี้ในครั้งถัดไปที่เปิดเอกสารเท่านั้น คุณสามารถใช้คุณสมบัติ UpdateDirtyFields เพื่อระบุว่าจะอัปเดตฟิลด์ด้วยแอตทริบิวต์ Dirt หรือไม่ เมื่อตั้งค่าของ UpdateDirtyFields เป็น true ฟิลด์ทั้งหมดที่มีค่า true สำหรับคุณสมบัติ Field.IsDirty หรือ FieldChar.IsDirty จะได้รับการอัปเดตในการโหลดเอกสาร
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการอัปเดตฟิลด์ที่มีแอตทริบิวต์ Dirt:
อัปเดตคุณสมบัติ LastSavedTime ก่อนบันทึก
คุณสามารถใช้คุณสมบัติ UpdateLastSavedTimeProperty ว่าจะอัปเดตคุณสมบัติเอกสารในตัว LastSavedTime ที่สอดคล้องกันเมื่อบันทึกเอกสารหรือไม่
ตัวอย่างรหัสต่อไปนี้แสดงวิธีการปรับปรุงคุณสมบัตินี้: