0
0

PythonによるWord文書の編集制限の設定と削除

Posted at

Word文書の編集制限は、文書のセキュリティ機能であり、あなたが制限する文書を編集することができます。 編集制限を設定することで、文書へのアクセスを制御し、権限のある担当者だけが変更を加えられるようにしたり、権限のある担当者がどのセクションでどのような変更を加えられるかを制限したりすることができます。 この制御により、不必要な変更や悪用の可能性を防ぎ、文書の改ざんや破損のリスクを減らすことができるため、共同編集や情報収集などが容易になります。 この記事では、Pythonを使ってWord文書の編集制限を設定したり、編集制限を解除したりする方法について説明します。

Spire.Doc for Pythonライブラリは、公式ウェブサイトからダウンロードするか、pip経由でインストールすることができます:

pip install Spire.Doc

パスワードによるWord文書全体の編集制限の設定

Spire.Doc for Pythonでは、Document.Protect() メソッドと ProtectionType 列挙型を使用して、Word文書に特定の種類の編集制限を設定することができます。その方法の詳細は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドでWord文書を読み込む。
  • Document.Protect(type:ProtectionType, password:str) メソッドを使用して、文書に指定された編集制限を設定します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。

Python

from spire.doc import *
from spire.doc.common import *

# Documentクラスのオブジェクトを作成する
doc = Document()

# Word文書を読み込む
doc.LoadFromFile("Sample.docx")

# 編集制限タイプを読み取り専用(変更不可)に設定する
doc.Protect(ProtectionType.AllowOnlyReading, "password")

# 編集制限タイプを変更のみに設定する
# doc.Protect(ProtectionType.AllowOnlyRevisions, "password")

# 編集制限タイプをコメントのみに設定する
# doc.Protect(ProtectionType.AllowOnlyComments, "password")

# 編集制限タイプをフォームフィールドのみに設定する
# doc.Protect(ProtectionType.AllowOnlyFormFields, "password")

# 文書を保存する
doc.SaveToFile("output/編集の制限.docx")
doc.Close()

結果文書
パスワードによるWord文書全体の編集制限の設定

Word文書に編集制限を設定する際の制限解除領域の追加

Word文書の編集制限を設定する際、許可領域の始点と終点にマークを挿入することで、制限のない領域を設定することができます。 詳しい手順は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドでWord文書を読み込みます。
  • Document.Sections.get_Item() メソッドで文書の最初のセクションを取得します。
  • PermissionStart クラスオブジェクトと PermissionEnd クラスオブジェクトを作成します。
  • Paragraph.ChildObjects.Insert() メソッドと Paragraph.ChildObjects.Add() メソッドを使って、-PermissionStart タグと PermissionEnd タグをドキュメントに挿入します。
  • Document.Protect() メソッドで編集制限を設定します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。

Python

from spire.doc import *
from spire.doc.common import *

# Documentクラスのオブジェクトを作成する
doc = Document()

# Word文書を読み込む
doc.LoadFromFile("Sample.docx")

# 最初のセクションを取得する
section = doc.Sections.get_Item(0)

# 許可の開始タグと終了タグを作成する
start = PermissionStart(doc, "exception1")
end = PermissionEnd(doc, "exception1")

# 最初のセクションに許可の開始タグと終了タグを挿入する
section.Paragraphs.get_Item(1).ChildObjects.Insert(0, start)
section.Paragraphs.get_Item(2).ChildObjects.Add(end)

# 編集制限を設定する
doc.Protect(ProtectionType.AllowOnlyReading, "password")

# 文書を保存する
doc.SaveToFile("output/編集可能領域.docx")
doc.Close()

結果文書
Word文書に編集制限を設定する際の制限解除領域の追加

Word文書の編集制限の解除

我々は直接編集の制限を解除するには、noneに設定されたタイプのWord文書の編集制限を介して行うことができます。 詳しい手順は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用してWord文書を読み込みます。
  • Document.Protect() メソッドを使用して、制限タイプをNoneに設定し、制限を解除します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。

Python

from spire.doc import *
from spire.doc.common import *

# Documentクラスのオブジェクトを作成する
doc = Document()

# Word文書を読み込む
doc.LoadFromFile("output/編集の制限.docx")

# 制限タイプをNoProtectionに設定して編集制限を解除する
doc.Protect(ProtectionType.NoProtection)

# 文書を保存する
doc.SaveToFile("output/編集制限の解除.docx")
doc.Close()

Word文書でPythonを使用して編集制限を設定したり、導入の操作上の編集制限を解除する方法について上記は、より多くのチュートリアルはSpire.Doc for Pythonのチュートリアルページを見に行くことができます。 また、Spire.Docのフォーラムで議論に参加することもできます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0