ドキュメントを読み取り専用で開く
レビューが必要なドキュメントがある場合でも、レビュー担当者に内容を無作為に変更されたくない場合があります。 Aspose.Words を使用すると、ドキュメントの権限を読み取り専用にして、コンテンツのコピーや読み取りは可能ですが、変更はできないようにすることができます。これにより、コンテンツがドキュメントに削除されたり、ドキュメントに追加されたりすることがなくなります。
この記事では、ドキュメントを読み取り専用にする方法について説明します。
ドキュメントを読み取り専用にする
Aspose.Words には、ドキュメントの書き込み保護設定を指定するパブリック クラス WriteProtection があります。このクラスのインスタンスは直接作成しません。
書き込み保護は、作成者がドキュメントを読み取り専用で開くことを推奨しているかどうか、および/またはドキュメントを変更するためにパスワードを要求しているかどうかを示します。
Aspose.Words では、ReadOnlyRecommended プロパティと SetPassword メソッドを使用して、ドキュメントを読み取り専用にして編集を制限できます。
Microsoft Word では、次の両方を使用して同様の方法で読み取り専用ドキュメントを作成できます。
- 「常に読み取り専用で開く」(ファイル→情報→文書の保護)
- 「変更するパスワード」(名前を付けて保存→ツール→一般オプション→パスワード)
ユーザーは ProtectionType を ReadOnly として選択してドキュメントの編集を制限することもできますが、これはより高度な保護機能を提供する別の機能です。このような機能はMicrosoft Wordにそれぞれあり、Aspose.Wordsに実装されています。
ProtectionType については、次の記事のいずれか「ドキュメント編集の制限」で詳しく説明します。
ReadOnlyRecommended プロパティはパスワードで保護されているため、ReadOnlyRecommended プロパティを適用する前にパスワードを設定しないと、他のユーザーは保護されていない場合と同様にドキュメントを開くことができます。 SetPassword メソッドを使用して文書保護設定にアクセスし、書き込み保護パスワードを設定します。
ドキュメントに編集を制限する書き込み保護パスワードが設定されているかどうかを確認する必要がある場合は、IsWriteProtected プロパティを使用できます。
次のコード例は、ドキュメントを読み取り専用にする方法を示しています。
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.Write("Open document as read-only"); | |
// Enter a password that's up to 15 characters long. | |
doc.WriteProtection.SetPassword("MyPassword"); | |
// Make the document as read-only. | |
doc.WriteProtection.ReadOnlyRecommended = true; | |
// Apply write protection as read-only. | |
doc.Protect(ProtectionType.ReadOnly); | |
doc.Save(ArtifactsDir + "DocumentProtection.ReadOnlyProtection.docx"); |
読み取り専用制限を解除する
ユーザーがドキュメントを読み取り専用として開くことを望まない場合は、ReadOnlyRecommened プロパティを false に設定するか、ProtectionType を NoProtection として選択するだけです。
次のコード例は、ドキュメントの読み取り専用アクセスを削除する方法を示しています。
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
// Enter a password that's up to 15 characters long. | |
doc.WriteProtection.SetPassword("MyPassword"); | |
// Remove the read-only option. | |
doc.WriteProtection.ReadOnlyRecommended = false; | |
// Apply write protection without any protection. | |
doc.Protect(ProtectionType.NoProtection); | |
doc.Save(ArtifactsDir + "DocumentProtection.RemoveReadOnlyRestriction.docx"); |