Word ドキュメントの編集制限は、ドキュメント上で実行可能な編集操作を制限するためにドキュメント上に配置することができるパスワード付き可能な保護です。編集制限を設定することで、ユーザーはドキュメントのどの部分を編集でき、どのような種類の編集を実行できるかを正確に制御することができます。この制限により、重要な情報が変更されないようにする一方で、ドキュメントの他の部分に対して指定された種類の編集を行うことができるため、共同編集や情報収集などの作業において非常に便利です。しかし、ドキュメント管理者が、ドキュメントの誤りを修正したり、ドキュメント情報を更新したり、新しい用途のためにドキュメントに変更を加えたりするために、編集制限を解除する必要がある場合があります。この記事では、Spire.Doc for Java を使用して、Java プログラムを通じて Word 文書の編集制限を設定および解除する方法について説明します。
Spire.Doc for Java をインストールします
まず、Spire. Doc for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>10.7.4</version>
</dependency>
</dependencies>
Word ドキュメントに編集制限を設定する
Spire.Doc for Java は、Word ドキュメントに4種類の編集制限を設定することをサポートしています:変更不可(読み取り専用)、変更履歴、コメント、フォームの入力。 これらの編集制限は、Document.protect() メソッドといくつかの列挙型を使用して設定することができます。
以下に、編集制限の設定に使用する列挙型の一覧とその説明を示します。
列挙型 | 制限種類 | 説明 |
ProtectionType.Allow_Only_Reading | 変更不可(読み取り専用) | ドキュメントの閲覧のみを許可する。 |
ProtectionType.Allow_Only_Revisions | 変更履歴 | ドキュメントへの変更履歴の追加のみを許可する。 |
ProtectionType.Allow_Only_Comments | コメント | ドキュメントへのコメントの追加のみを許可する。 |
ProtectionType.Allow_Only_Form_Fields | フォームの入力 | ドキュメントのフォームへの入力のみを許可する。 |
ProtectionType.No_Protection | 無制限 | ドキュメントのあらゆる編集を許可する。 |
Word ドキュメントでパスワードによる編集制限を設定する具体的な手順は以下のとおりです。
- Document クラスのオブジェクトを作成します。
- Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
- Document.protect() メソッドを使用して、パスワードによる編集制限を設定します。
- Document.saveToFile() メソッドを使用して、ドキュメントを保存します。
- Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.ProtectionType;
public class setEditingRestriction {
public static void main(String[] args) {
//Documentオブジェクトを作成します
Document doc = new Document();
//Word文書を読み込みます
doc.loadFromFile("サンプル.docx");
//制限の種類を読み取り専用に設定し、パスワードを追加します
doc.protect(ProtectionType.Allow_Only_Reading, "password");
//制限の種類をコメントのみ追加可能に設定し、パスワードを追加します
//doc.protect(ProtectionType.Allow_Only_Comments, "パスワード");
//制限の種類をフォームフィールドの入力のみに設定し、パスワードを追加します
//doc.protect(ProtectionType.Allow_Only_Form_Fields, "パスワード");
//制限の種類を校閲のみに設定し、パスワードを追加します
//doc.protect(ProtectionType.Allow_Only_Revisions, "パスワード");
//文書を保存します
doc.saveToFile("編集の制限.docx", FileFormat.Auto);
}
}
Word ドキュメントの編集制限の設定中に例外を追加する
ユーザーは、Word ドキュメントの編集制限を設定する際に、許可の開始タグと終了タグを挿入することで、例外処理(制限のない領域)を追加することができます。詳しい手順は以下の通りです。
- Document クラスのオブジェクトを作成します。
- Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
- PermissionStart クラスのオブジェクトと PermissionEnd クラスのオブジェクトを作成します。
- Document.getSections().get() メソッドを使用して最初のセクションを取得します。
- 許可の開始タグと終了タグを段落に挿入し、制限のない領域を設定します。
- Document.protect() メソッドを使用して、他の領域にパスワードによる編集制限を設定します。
- Document.saveToFile() メソッドを使用してドキュメントを保存します。
- Java
import com.spire.doc.*;
public class setRegionalEditingRestrictions {
public static void main(String[] args) {
//Documentクラスのオブジェクトを作成する
Document doc = new Document();
//Wordドキュメントを読み込む
doc.loadFromFile("サンプル.docx");
//編集が許可される領域の開始と終了のマークを作成する
PermissionStart start = new PermissionStart(doc, "permission1");
PermissionEnd end = new PermissionEnd(doc, "permission1");
//ドキュメントの最初のセクションを取得する
Section section = doc.getSections().get(0);
//ドキュメントに編集を許可する領域の開始と終了のマークを挿入する
section.getParagraphs().get(1).getChildObjects().insert(0, start);
section.getParagraphs().get(5).getChildObjects().add(end);
//編集制限を設定し、パスワードを追加する
doc.protect(ProtectionType.Allow_Only_Reading, "password");
//ドキュメントを保存する
doc.saveToFile("例外処理.docx", FileFormat.Auto);
}
}
Word ドキュメントの編集制限を解除する
編集制限を解除するには、任意の編集を許可するように編集制限を設定します。詳しい手順は以下の通りです。
- Document クラスのオブジェクトを作成します。
- Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
- Document.protect() メソッドを使用して、編集制限をあらゆる編集を許可するように設定し、パスワードを削除します。
- 例外領域がある場合は、許可開始タグと許可終了タグを見つけて削除します。
- Document.saveToFile() メソッドを使用してドキュメントを保存します。
- Java
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
public class removeEditingRestriction {
public static void main(String[] args) {
//Documentオブジェクトを作成する
Document doc = new Document();
//Wordドキュメントを読み込む
doc.loadFromFile("例外処理.docx");
//編集制限を削除する
doc.protect(ProtectionType.No_Protection);
//許可の開始と終了のタグを見つけて削除する
for(int j=0;j<doc.getSections().getCount();j++){
//セクションを取得する
Section section=doc.getSections().get(j);
for(int k=0;k<section.getParagraphs().getCount();k++){
//セクション内の段落を取得する
Paragraph paragraph=section.getParagraphs().get(k);
for(int i=0;i<paragraph.getChildObjects().getCount();){
//段落の子オブジェクトを取得する
DocumentObject obj=paragraph.getChildObjects().get(i);
//子オブジェクトがPermissionStartまたはPermissionEndのインスタンスか確認する
if(obj instanceof PermissionStart||obj instanceof PermissionEnd){
//そうであれば、その子オブジェクトを削除する
paragraph.getChildObjects().remove(obj);
}else{
i++;
}
}
}
}
//ドキュメントを保存する
doc.saveToFile("編集制限の取り消し.docx", FileFormat.Auto);
}
}
一時ライセンスを申請する
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。