Revisions
Revisions
คู่มือนี้แสดงวิธีตรวจสอบ ยอมรับ ปฏิเสธ และบันทึกการเปลี่ยนแปลงที่ติดตามในเอกสาร Word ด้วย Aspose.Words FOSS สำหรับ .NET. Aspose.Words FOSS สำหรับ .NET สามารถตรวจสอบ ยอมรับ และปฏิเสธการเปลี่ยนแปลงที่ติดตาม (การแก้ไข) ในเอกสาร Word ผ่าน Document.Revisions และสามารถบันทึกการเปลี่ยนแปลงที่ติดตามใหม่ขณะแก้ไขผ่าน Document.StartTrackRevisions()/StopTrackRevisions().
การอ่านการเปลี่ยนแปลงที่ติดตาม
Document.Revisions ส่งคืน RevisionCollection ของทุก Revision ในเอกสาร; Range.Revisions จำกัดขอบเขตเดียวกันให้กับช่วงที่เฉพาะเจาะจง. แต่ละ Revision รายงานว่าใครทำการเปลี่ยนแปลงและเมื่อใด (Author, DateTime), ประเภทของการเปลี่ยนแปลงคืออะไร (RevisionType: Insertion, Deletion, FormatChange, StyleDefinitionChange, หรือ Moving), และว่ามันใช้ที่ไหน (ParentNode, ParentStyle). Document.HasRevisions บอกคุณล่วงหน้าว่าเอกสารที่โหลดมีการเปลี่ยนแปลงที่ติดตามหรือไม่.
การยอมรับและการปฏิเสธการแก้ไข
เรียกใช้ Revision.Accept() หรือ Revision.Reject() เพื่อแก้ไขการเปลี่ยนแปลงที่ติดตามหนึ่งรายการ, หรือทำงานกับคอลเล็กชันทั้งหมดพร้อมกันด้วย RevisionCollection.AcceptAll() / RejectAll(). Document.AcceptAllRevisions() เป็นความสะดวกระดับเอกสารที่ยอมรับทุกการแก้ไขในหนึ่งการเรียก. เพื่อยอมรับหรือปฏิเสธส่วนย่อยอย่างเลือกสรร, ให้ดำเนินการ IRevisionCriteria.IsMatch(revision) แล้วส่งไปยัง RevisionCollection.Accept(criteria) หรือ Reject(criteria).
กลุ่มการแก้ไข
การแก้ไขต่อเนื่องจากผู้เขียนคนเดียวกันและประเภทเดียวกันจะถูกแสดงรวมกันเป็น RevisionGroup — สามารถเข้าถึงได้ผ่าน Revision.Group สำหรับการแก้ไขเดี่ยวหนึ่งรายการ หรือ RevisionCollection.Groups (ซึ่งเป็น RevisionGroupCollection) สำหรับแต่ละกลุ่มในเอกสาร แต่ละกลุ่มจะรายงาน Text, Author, และ RevisionType ที่รวมกัน.
บันทึกการเปลี่ยนแปลงที่ติดตามใหม่
เรียก Document.StartTrackRevisions(author) หรือฟังก์ชันโอเวอร์โหลด StartTrackRevisions(author, dateTime) ก่อนทำการแก้ไขเพื่อให้การเปลี่ยนแปลงต่อมาถูกบันทึกเป็นการแก้ไขแทนที่จะถูกนำไปใช้โดยตรง; เรียก StopTrackRevisions() เพื่อหยุดการติดตาม คุณสมบัติ Document.TrackRevisions แสดงว่าการติดตามกำลังทำงานอยู่หรือไม่.
ดูเนื้อหาต้นฉบับเทียบกับเนื้อหาสุดท้าย
Document.RevisionsView ควบคุมว่าเอกสารจะแสดงในสถานะ Original หรือ Final (ค่าของ RevisionsView) เมื่อมีการแก้ไขอยู่โดยไม่เปลี่ยนแปลงข้อมูลการแก้ไขพื้นฐาน.
เคล็ดลับและแนวปฏิบัติที่ดีที่สุด
- ตรวจสอบ
Document.HasRevisionsก่อนทำการวนซ้ำDocument.Revisionsเพื่อข้ามงานที่ไม่จำเป็นในเอกสารที่ไม่มีการเปลี่ยนแปลงที่ติดตาม. - แนะนำให้ใช้
RevisionCollection.Accept(criteria)/Reject(criteria)พร้อมกับIRevisionCriteriaที่กำหนดเอง มากกว่าการกรองด้วยตนเองและเรียกRevision.Accept()ทีละรายการ. RevisionGroupมีประโยชน์สำหรับการแสดงสรุปการเปลี่ยนแปลงที่อ่านง่าย — การจัดกลุ่มการแก้ไขที่ต่อเนื่องโดยมีผู้เขียนและประเภทเดียวกันช่วยหลีกเลี่ยงการพิจารณาอักขระที่แทรกแต่ละตัวเป็นรายการแยกกัน.- ควรจับคู่
StartTrackRevisions()กับการเรียกStopTrackRevisions()ที่ตามมาภายหลังเสมอ เพื่อไม่ให้การแก้ไขที่ไม่เกี่ยวข้องถูกบันทึกเป็นการเปลี่ยนแปลงที่ติดตาม.
ปัญหาที่พบบ่อย
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
Document.Revisions ว่างหลังจากการแก้ไข | StartTrackRevisions() ไม่เคยถูกเรียกใช้ก่อนการแก้ไข | เรียก StartTrackRevisions(author) ก่อนทำการแก้ไขที่คุณต้องการติดตาม |
RevisionCollection.Accept(criteria) ไม่รับค่าใด | IRevisionCriteria.IsMatch() ไม่ตรงกับการแก้ไขใด | ตรวจสอบตรรกะของเกณฑ์กับค่าจาก Revision.Author/RevisionType/ParentNode จริงก่อน |
เอกสารยังคงแสดงมาร์คอัปการเปลี่ยนแปลงที่ติดตามอยู่หลังจาก AcceptAllRevisions() | มุมมองสถานะ ไม่ใช่ข้อมูลการแก้ไข | ตั้งค่า Document.RevisionsView เป็น Final หากคุณต้องการมุมมองเนื้อหาที่แก้ไขแล้ว |
FAQ
ฉันจะตรวจสอบว่าเอกสารมีการเปลี่ยนแปลงที่ติดตามหรือไม่อย่างไร?
อ่าน Document.HasRevisions — จะเป็น true หาก Document.Revisions มีอย่างน้อยหนึ่ง Revision.
ความแตกต่างระหว่าง Revision.Accept() กับ RevisionCollection.AcceptAll() คืออะไร?
Revision.Accept() แก้ไขการปรับรุ่นหนึ่งรายการเฉพาะ; RevisionCollection.AcceptAll() (หรือ Document.AcceptAllRevisions()) แก้ไขการปรับรุ่นทั้งหมดในคอลเลกชันพร้อมกัน.
ฉันจะยอมรับการแก้ไขที่ทำโดยผู้เขียนเฉพาะคนหนึ่งเท่านั้นอย่างไร?
ดำเนินการ IRevisionCriteria.IsMatch(revision) เพื่อเช็ค revision.Author, จากนั้นเรียก RevisionCollection.Accept(criteria) พร้อมการดำเนินการนั้น.
ฉันจะบันทึกการแก้ไขของฉันเป็นการเปลี่ยนแปลงที่ติดตามได้อย่างไร?
เรียก Document.StartTrackRevisions(author) ก่อนทำการแก้ไข, แล้ว Document.StopTrackRevisions() เมื่อเสร็จสิ้น.
มีประเภทการแก้ไขใดบ้าง?
RevisionType กำหนด Insertion, Deletion, FormatChange, StyleDefinitionChange และ Moving.
API Reference สรุป
| คลาส / เมธอด | คำอธิบาย |
|---|---|
Document.Revisions | RevisionCollection ของการเปลี่ยนแปลงที่ติดตามทั้งหมดในเอกสาร |
Revision | การเปลี่ยนแปลงที่ติดตามหนึ่งรายการ: Author, DateTime, RevisionType, Accept(), Reject() |
RevisionCollection | AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups |
RevisionGroup / RevisionGroupCollection | การแก้ไขที่ต่อเนื่องของผู้เขียนเดียวกันและประเภทเดียวกันถูกรวมเข้าด้วยกัน |
IRevisionCriteria | Predicate กำหนดเอง (IsMatch(revision)) สำหรับการยอมรับ/ปฏิเสธแบบเลือกสรร |
Document.StartTrackRevisions() / StopTrackRevisions() | บันทึกการแก้ไขใหม่เป็นการเปลี่ยนแปลงที่ติดตาม |
Document.RevisionsView | การนำเสนอ Original หรือ Final ของเนื้อหาที่แก้ไข |