Revisions
Revisions
このガイドでは、Aspose.Words FOSS for .NET を使用して Word 文書の変更履歴(トラッキングされた変更)を検査、承認、却下、記録する方法を示します。Aspose.Words FOSS for .NET は、Document.Revisions を通じて Word 文書の変更履歴(リビジョン)を検査、承認、却下でき、Document.StartTrackRevisions()/StopTrackRevisions() による編集時に新しい変更履歴を記録することができます。
変更履歴の読み取り
Document.Revisions は、文書内のすべての Revision の RevisionCollection を返します;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.Revisionsを反復処理する前にDocument.HasRevisionsを確認してください。 - 手動でフィルタリングして
Revision.Accept()を1つずつ呼び出すよりも、カスタムIRevisionCriteriaを使用したRevisionCollection.Accept(criteria)/Reject(criteria)を優先してください。 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に少なくとも1つのRevisionが含まれていれば、trueです。
Revision.Accept() と RevisionCollection.AcceptAll() の違いは何ですか?
Revision.Accept()は特定のリビジョンを1つ解決します;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 | 追跡された変更1件: 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 の改訂コンテンツの提示 |