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) یا overload StartTrackRevisions(author, dateTime) را فراخوانی کنید تا تغییرات بعدی بهعنوان بازنگریها ثبت شوند نه اینکه مستقیماً اعمال شوند؛ برای پایان ردیابی، StopTrackRevisions() را فراخوانی کنید. ویژگی Document.TrackRevisions نشان میدهد که ردیابی در حال حاضر فعال است یا نه.
مشاهده محتوا اصلی در مقابل نهایی
Document.RevisionsView تعیین میکند که سند در حالت Original یا Final (یک مقدار RevisionsView) نمایش داده شود وقتی بازنگریها وجود دارند، بدون تغییر دادههای بازنگری پایه.
نکات و بهترین روشها
- قبل از تکرار
Document.Revisions،Document.HasRevisionsرا بررسی کنید تا کارهای غیرضروری بر روی اسناد بدون تغییرات ردیابیشده را نادیده بگیرید. - به جای فیلتر کردن دستی و فراخوانی
Revision.Accept()بهصورت تکتک، استفاده ازRevisionCollection.Accept(criteria)/Reject(criteria)با یکIRevisionCriteriaسفارشی را ترجیح دهید. RevisionGroupبرای ارائه خلاصهای قابلخواندن از تغییرات مفید است — گروهبندی بازنگریهای پیدرپی با همان نویسنده و همان نوع، از ثبت هر کاراکتر وارد شده بهعنوان ورودی جداگانه جلوگیری میکند.- همیشه
StartTrackRevisions()را همراه با فراخوانیStopTrackRevisions()بعدی استفاده کنید تا ویرایشهای نامرتبط بهعنوان تغییرات ردیابیشده ثبت نشوند.
مشکلات رایج
| مشکل | دلیل | رفع |
|---|---|---|
Document.Revisions پس از ویرایشها خالی است | StartTrackRevisions() قبل از ویرایش هرگز فراخوانی نشده است | قبل از اعمال ویرایشهایی که میخواهید ردیابی شوند، StartTrackRevisions(author) را فراخوانی کنید |
RevisionCollection.Accept(criteria) هیچ چیزی را نمیپذیرد | IRevisionCriteria.IsMatch() با هیچ نسخهای مطابقت ندارد | ابتدا منطق معیارها را نسبت به مقادیر واقعی Revision.Author/RevisionType/ParentNode بررسی کنید |
سند پس از AcceptAllRevisions() هنوز علامتگذاری تغییرات ردیابی شده را نشان میدهد | وضعیت را مشاهده کنید، نه دادههای بازبینی | اگر به نمای محتوای حلشده نیاز دارید، Document.RevisionsView را به Final تنظیم کنید |
FAQ
چگونه میتوانم بررسی کنم که آیا یک سند دارای تغییرات ردیابیشده است یا خیر؟
به Document.HasRevisions مراجعه کنید — اگر Document.Revisions حداقل یک Revision داشته باشد، true است.
تفاوت بین Revision.Accept() و RevisionCollection.AcceptAll() چیست؟
Revision.Accept() یک بازنگری خاص را حل میکند؛ RevisionCollection.AcceptAll() (یا Document.AcceptAllRevisions()) تمام بازنگریهای موجود در مجموعه را بهصورت همزمان حل میکند.
چگونه فقط بازنگریهای انجامشده توسط یک نویسنده خاص را بپذیرم؟
برای بررسی revision.Author، IRevisionCriteria.IsMatch(revision) را پیادهسازی کنید، سپس 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 | شرط سفارشی (IsMatch(revision)) برای پذیرش/رد انتخابی |
Document.StartTrackRevisions() / StopTrackRevisions() | ثبت ویرایشهای جدید بهعنوان تغییرات ردیابیشده |
Document.RevisionsView | ارائه Original یا Final از محتوای بازبینیشده |