チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

Koohji

Koohji

Word 文書のコメント機能は、コラボレーションやフィードバックにおいて非常に重要な役割を果たします。コメントを活用することで、意見の共有、提案、説明、議論をスムーズに行うことができます。アイデアを伝えたり、既存のコメントに返信したり、不要なコメントを削除したりすることで、ドキュメントの作業効率を大幅に向上させることができます。本記事では、Spire.Doc for Python を使用して Python で Word 文書のコメントを追加、削除、返信する方法について解説します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Python で Word 文書の段落にコメントを追加する

Spire.Doc for Python では、Paragraph.AppendComment() メソッドを使用して、指定した段落にコメントを追加できます。コメント対象のテキスト範囲は、コメントの開始マークと終了マークを設定することで制御します。以下の手順で段落にコメントを追加します。

  • Document クラスのオブジェクトを作成し、Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.Sections.get_Item() メソッドを使用して最初のセクションを取得します。
  • Section.Paragraphs.get_Item() メソッドを使用して、そのセクションの最初の段落を取得します。
  • Paragraph.AppendComment() メソッドで、段落にコメントを追加します。
  • Comment.Format.Author プロパティを設定して、コメントの作成者を指定します。
  • コメントの開始マーク (CommentMark) と終了マーク (CommentMark) を作成し、それらを CommentMark.CommentId プロパティを通じてコメントの開始・終了位置として設定します。
  • Paragraph.ChildObjects.Insert() メソッドを使用して、コメントの開始マークと終了マークをそれぞれ段落の先頭と末尾に挿入します。
  • Document.SaveToFile() メソッドで Word 文書を保存します。
  • Python
from spire.doc import Document, CommentMark, CommentMarkType

# Document クラスのオブジェクトを作成し、Word 文書を読み込みます
doc = Document()
doc.LoadFromFile("Sample.docx")

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

# 4 番目の段落を取得します
paragraph = section.Paragraphs.get_Item(3)

# 段落にコメントを追加します
comment = paragraph.AppendComment("この部分はさらに説明が必要です。")

# コメントの著者を設定します
comment.Format.Author = "大輝"

# コメントの開始マークと終了マークを作成し、作成したコメントの開始マークと終了マークとして設定します
commentStart = CommentMark(doc, CommentMarkType.CommentStart)
commentEnd = CommentMark(doc, CommentMarkType.CommentEnd)
commentStart.CommentId = comment.Format.CommentId
commentEnd.CommentId = comment.Format.CommentId

# コメントの開始マークと終了マークを段落の先頭と末尾に挿入します
paragraph.ChildObjects.Insert(0, commentStart)
paragraph.ChildObjects.Add(commentEnd)

# 文書を保存します
doc.SaveToFile("output/段落へのコメント.docx")
doc.Close()

PythonでWordの段落にコメントを追加

Python で Word 文書のテキストにコメントを追加する

Spire.Doc for Python では、指定したテキストを検索し、その部分にコメントを追加することも可能です。以下の手順で、特定のテキストにコメントを追加します。

  • Document クラスのオブジェクトを作成し、Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.FindString() メソッドを使用して、コメントを追加したいテキストを検索します。
  • Comment クラスのオブジェクトを作成し、Comment.Body.AddParagraph().Text プロパティでコメント内容を設定し、Comment.Format.Author プロパティで作成者を指定します。
  • TextSelection.GetAsOneRange() メソッドを使用して、検索したテキストを TextRange として取得し、TextRange.OwnerParagraph プロパティを使ってそのテキストが属する段落を取得します。
  • Paragraph.ChildObjects.Insert() メソッドで、検索したテキストの後にコメントを挿入します。
  • コメントの開始マーク (CommentMark) と終了マーク (CommentMark) を作成し、それらを CommentMark.CommentId プロパティを通じてコメントの開始・終了位置として設定します。
  • Paragraph.ChildObjects.Insert() メソッドを使用して、検索したテキストの前後にコメントの開始マークと終了マークを挿入します。
  • Document.SaveToFile() メソッドで Word 文書を保存します。
  • Python
from spire.doc import Document, Comment, CommentMark, CommentMarkType

# Document クラスのオブジェクトを作成し、Word 文書を読み込みます
doc = Document()
doc.LoadFromFile("Sample.docx")

# コメントを追加するテキストを検索します
text = doc.FindString("抗酸化作用", True, True)

# コメントを作成し、コメントの内容と著者を設定します
comment = Comment(doc)
comment.Body.AddParagraph().Text = "抗酸化作用について、さらに詳しく説明する必要があります。"
comment.Format.Author = "奈々"

# 検索したテキストをテキスト範囲として取得し、それが属する段落を取得します
range = text.GetAsOneRange()
paragraph = range.OwnerParagraph

# コメントを段落に追加します
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range) + 1, comment)

# コメントの開始マークと終了マークを作成し、作成したコメントの開始マークと終了マークとして設定します
commentStart = CommentMark(doc, CommentMarkType.CommentStart)
commentEnd = CommentMark(doc, CommentMarkType.CommentEnd)
commentStart.CommentId = comment.Format.CommentId
commentEnd.CommentId = comment.Format.CommentId

# 作成したコメントの開始マークと終了マークを、検索したテキストの前後に挿入します
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range), commentStart)
paragraph.ChildObjects.Insert(paragraph.ChildObjects.IndexOf(range) + 1, commentEnd)

# 文書を保存します
doc.SaveToFile("output/テキストへのコメント.docx")
doc.Close()

Spire.DocでWordのテキストにコメントを追加

Python で Word 文書のコメントを削除する

Spire.Doc for Python では、Document.Comments.RemoveAt() メソッドを使用して特定のコメントを削除できます。また、Document.Comments.Clear() メソッドを使用すれば、すべてのコメントを削除できます。以下の手順でコメントを削除します。

  • Document クラスのオブジェクトを作成し、Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.Comments.RemoveAt() メソッドを使用して特定のコメントを削除する、または Document.Comments.Clear() メソッドですべてのコメントを削除します。
  • Document.SaveToFile() メソッドで Word 文書を保存します。
  • Python
from spire.doc import Document

# Document クラスのオブジェクトを作成し、Word 文書を読み込みます
doc = Document()
doc.LoadFromFile("Sample1.docx")

# 2 番目のコメントを削除します
doc.Comments.RemoveAt(1)

# すべてのコメントを削除します
# doc.Comments.Clear()

# 文書を保存します
doc.SaveToFile("output/コメントの削除.docx")
doc.Close()

PythonでWordからコメントを削除

Python で Word 文書のコメントに返信する

Spire.Doc for Python を使用すると、Comment.ReplyToComment(Comment) メソッドを利用して、特定のコメントに対して返信を追加できます。以下の手順でコメントに返信を追加します。

  • Document クラスのオブジェクトを作成し、Document.LoadFromFile() メソッドで Word 文書を読み込みます。
  • Document.Comments.get_Item() メソッドを使用して、対象のコメントを取得します。
  • Comment クラスのオブジェクトを作成し、Comment.Body.AddParagraph().Text プロパティでコメント内容を設定し、Comment.Format.Author プロパティで作成者を指定します。
  • Comment.ReplyToComment() メソッドを使用して、作成したコメントを取得したコメントへの返信として設定します。
  • Document.SaveToFile() メソッドで Word 文書を保存します。
  • Python
from spire.doc import Document, Comment

# Document クラスのオブジェクトを作成し、Word 文書を読み込みます
doc = Document()
doc.LoadFromFile("output/テキストへのコメント.docx")

# コメントを取得します
comment = doc.Comments.get_Item(0)

# 返信コメントを作成し、内容と著者を設定します
reply = Comment(doc)
reply.Body.AddParagraph().Text = "これは次のバージョンに追加されます。"
reply.Format.Author = "優花"


# 取得したコメントへの返信として作成したコメントを設定します
comment.ReplyToComment(reply)

# 文書を保存します
doc.SaveToFile("output/コメントへの返信.docx")
doc.Close()

Python用Spire.DocでWordのコメントに返信

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word 文書にブックマークを追加すると、特定の位置をマークしてすばやく参照したり移動したりできるようになります。ブックマークは仮想的な目印として機能し、長い文書内の重要なセクションを簡単に見つけるのに役立ちます。本記事では、Spire.Doc for Python を使用して Word 文書にブックマークを追加する方法を紹介します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Word の段落にブックマークを追加する

Spire.Doc for Python では、BookmarkStart クラスがブックマークの開始位置を、BookmarkEnd クラスがブックマークの終了位置を表します。段落をブックマークするには、段落の先頭に BookmarkStart オブジェクトを挿入し、末尾に BookmarkEnd オブジェクトを追加します。具体的な手順は次のとおりです。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ファイルを読み込みます。
  • Document.Sections[index].Paragraphs[index] プロパティを使用して対象の段落を取得します。
  • Paragraph.AppendBookmarkStart() メソッドで BookmarkStart を作成し、Paragraph.Items.Insert() メソッドで段落の先頭に挿入します。
  • Paragraph.AppendBookmarkEnd() メソッドを使用して段落の末尾に BookmarkEnd を追加します。
  • Document.SaveToFile() メソッドを使用して、文書を別の Word ファイルとして保存します。
  • Python
from spire.doc import Document

# Document オブジェクトを作成します
doc = Document()

# サンプルの Word ファイルを読み込みます
doc.LoadFromFile('Sample.docx')

# 2 番目の段落を取得します
paragraph = doc.Sections.get_Item(0).Paragraphs.get_Item(1)

# ブックマークの開始を作成します
start = paragraph.AppendBookmarkStart('ブックマーク 1')

# 段落の先頭に挿入します
paragraph.Items.Insert(0, start)

# 段落の末尾にブックマークの終了を追加します
paragraph.AppendBookmarkEnd('ブックマーク 1')

# ファイルを保存します
doc.SaveToFile('output/段落にブックマークを追加.docx')
doc.Dispose()

Spire.DocでWord文書の段落にブックマークを挿入

特定の Word のテキストにブックマークを追加する

特定のテキストをブックマークするには、まず文書内で該当するテキストを見つけ、その段落内の位置を取得します。次に、そのテキストの前に BookmarkStart を、後に BookmarkEnd を挿入します。具体的な手順は次のとおりです。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ファイルを読み込みます。
  • 文書内でブックマークを付けたい文字列を検索します。
  • その文字列が属する段落を取得し、段落内での位置を特定します。
  • 文字列の前に BookmarkStart を挿入し、後に BookmarkEnd を挿入します。
  • Document.SaveToFile() メソッドを使用して、文書を別の Word ファイルとして保存します。
  • Python
from spire.doc import Document

# Document オブジェクトを作成します
doc = Document()

# サンプルの Word ファイルを読み込みます
doc.LoadFromFile('Sample.docx')

# 検索する文字列を指定します
stringToFind = '抗酸化作用'

# 文書内で指定した文字列を検索します
finds = doc.FindAllString(stringToFind, False, True)
specificText = finds[0]

# 検索した文字列が含まれる段落を取得します
paragraph = specificText.GetAsOneRange().OwnerParagraph

# 段落内での文字列のインデックスを取得します
index = paragraph.ChildObjects.IndexOf(specificText.GetAsOneRange())

# ブックマークの開始を作成します
start = paragraph.AppendBookmarkStart("ブックマーク 2")

# 指定したインデックスの位置にブックマークの開始を挿入します
paragraph.ChildObjects.Insert(index, start)

# ブックマークの終了を作成します
end = paragraph.AppendBookmarkEnd("ブックマーク 2")

# 検索した文字列の末尾にブックマークの終了を挿入します
paragraph.ChildObjects.Insert(index + 2, end)

# 文書を別のファイルとして保存します
doc.SaveToFile("output/テキストにブックマークを挿入.docx")
doc.Dispose()

PythonでWord文書のテキストにブックマークを挿入

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word 文書の表に行や列を追加・削除することで、データの構造を適切に調整できます。行や列を追加することで、データの増加に対応し、必要な情報をすべて表示できるようになります。一方で、不必要な行や列を削除すれば、表を整理し、文書の冗長な情報を削減できます。本記事では、Spire.Doc for Python を使用して、Python で Word 文書の表に行や列を追加・削除する方法を解説します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Python で Word の表に行を追加または挿入する

Word の表に行を追加するには、表の末尾に追加する方法と、特定の位置に挿入する方法があります。これには Table.AddRow() または Table.InsertRow() メソッドを使用します。以下の手順で実装できます。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections[] プロパティを使用して最初のセクションを取得します。
  • Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
  • Table.Rows.Insert() メソッドを使用して、表の特定の位置に行を挿入します。
  • 挿入した行にデータを追加します。
  • Table.AddRow() メソッドを使用して表の末尾に行を追加します。
  • 追加した行にデータを入力します。
  • Document.SaveToFile() メソッドを使用して、変更を保存します。
  • Python
from spire.doc import Document, Table, HorizontalAlignment, VerticalAlignment

# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")

# 文書の最初のセクションを取得します。
section = document.Sections[0]

# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None

# テーブルの 3 行目として新しい行を挿入します。
table.Rows.Insert(2, table.AddRow())
# 挿入された行を取得します。
insertedRow = table.Rows[2]
# 行にデータを追加します。
for i in range(insertedRow.Cells.Count):
    cell = insertedRow.Cells[i]
    paragraph = cell.AddParagraph()
    textRange = paragraph.AppendText("挿入された行")
    textRange.CharacterFormat.FontName = "Yu Gothic UI"
    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
    cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle

# テーブルの末尾に新しい行を追加します。
addedRow = table.AddRow()
# 行にデータを追加します。
for i in range(addedRow.Cells.Count):
    cell = addedRow.Cells[i]
    paragraph = cell.AddParagraph()
    textRange = paragraph.AppendText("終了行")
    textRange.CharacterFormat.FontName = "Yu Gothic UI"
    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
    cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle

# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表に行を追加・挿入.docx")
document.Close()

PythonでWordのテーブルに行を追加・挿入する

Python で Word の表に列を追加または挿入する

Spire.Doc for Python には、Word の表に直接列を追加・挿入するメソッドはありません。しかし、各行の特定の位置にセルを追加・挿入することで実現できます。TableRow.Cells.Add() または TableRow.Cells.Insert() メソッドを使用し、以下の手順で実装します。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections[] プロパティを使用して最初のセクションを取得します。
  • Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
  • 表の各行をループ処理します。
  • TableCell オブジェクトを作成し、TableRow.Cells.Insert() メソッドを使用して各行の特定の位置に挿入し、セルの幅を設定します。
  • セルにデータを追加し、テキストの配置を設定します。
  • TableRow.AddCell() メソッドを使用して各行の末尾にセルを追加し、セルの幅を設定します。
  • セルにデータを追加し、テキストの配置を設定します。
  • Document.SaveToFile() メソッドを使用して、変更を保存します。
  • Python
from spire.doc import Document, TableCell, Table, HorizontalAlignment, VerticalAlignment, AutoFitBehaviorType

# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")

# 文書の最初のセクションを取得します。
section = document.Sections[0]

# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None

# テーブルの各行をループ処理します。
for i in range(table.Rows.Count):
    row = table.Rows[i]
    # TableCell オブジェクトを作成します。
    cell = TableCell(document)
    # 行の 3 列目にセルを挿入し、セルの幅を設定します。
    row.Cells.Insert(2, cell)
    cell.Width = row.Cells[0].Width
    # セルにデータを追加します。
    paragraph = cell.AddParagraph()
    textRange = paragraph.AppendText("挿入された列")
    textRange.CharacterFormat.FontName = "Yu Gothic UI"
    # テキストの配置を設定します。
    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
    cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle

    # 行の末尾にセルを追加し、セルの幅を設定します。
    cell = row.AddCell()
    cell.Width = row.Cells[1].Width
    # セルにデータを追加します。
    paragraph = cell.AddParagraph()
    textRange = paragraph.AppendText("終了列")
    textRange.CharacterFormat.FontName = "Yu Gothic UI"
    # テキストの配置を設定します。
    paragraph.Format.HorizontalAlignment = HorizontalAlignment.Left
    cell.CellFormat.VerticalAlignment = VerticalAlignment.Middle

# 列を自動調整する
table.AutoFit(AutoFitBehaviorType.AutoFitToContents)

# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表に列を追加・挿入.docx")
document.Close()

Spire.DocでWordの表に行を追加・挿入する

Python で Word の表から行を削除する

Word の表から特定の行を削除するには、Table.Rows.RemoveAt() メソッドを使用します。以下の手順で実装します。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections[] プロパティを使用して最初のセクションを取得します。
  • Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
  • Table.Rows.RemoveAt() メソッドを使用して、特定の行を削除します。
  • Document.SaveToFile() メソッドを使用して、変更を保存します。
  • Python
from spire.doc import Document, Table

# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")

# 文書の最初のセクションを取得します。
section = document.Sections[0]

# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None

# 行を削除します。
table.Rows.RemoveAt(1)

# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表から行を削除.docx")
document.Close()

PythonでWordの表から行を削除する

Python で Word の表から列を削除する

Word の表から特定の列を削除するには、各行から対応するセルを削除する必要があります。これには TableRow.Cells.RemoveAt() メソッドを使用します。以下の手順で実装します。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections[] プロパティを使用して最初のセクションを取得します。
  • Section.Tables[] プロパティを使用してセクション内の最初の表を取得します。
  • 表の各行をループ処理します。
  • TableRow.Cells.RemoveAt() メソッドを使用して、各行の特定のセルを削除します。
  • Document.SaveToFile() メソッドを使用して、変更を保存します。
  • Python
from spire.doc import Document, Table

# Document オブジェクトを作成します。
document = Document()
# Word 文書を読み込みます。
document.LoadFromFile("Sample.docx")

# 文書の最初のセクションを取得します。
section = document.Sections[0]

# 最初のセクションの最初のテーブルを取得します。
table = section.Tables[0] if isinstance(section.Tables[0], Table) else None

# テーブルの各行をループ処理します。
for i in range(table.Rows.Count):
    row = table.Rows[i]
    # 列のセルを削除します。
    row.Cells.RemoveAt(2)

# 変更後の文書を保存します。
document.SaveToFile("output/Wordの表から列を削除.docx")
document.Close()

Spire.DocでWordの表から列を削除する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

ハイパーリンクは、動的でインタラクティブな Word 文書を作成するために欠かせない要素です。特定のテキストやオブジェクトを他の文書、ウェブページ、メールアドレス、または同じ文書内の特定の位置にリンクすることで、ユーザーは情報をシームレスに移動できます。本記事では、Spire.Doc for Python を使用して、Python で Word 文書にハイパーリンクを追加または削除する方法を学びます。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Python で Word にハイパーリンクを追加する

Spire.Doc for Python は、段落内のテキストや画像にウェブリンク、メールリンク、ファイルリンク、またはブックマークリンクを追加するための Paragraph.AppendHyperlink() メソッドを提供します。以下に詳細な手順を示します。

  • Document オブジェクトを作成します。
  • セクションと段落を追加します。
  • Paragraph.AppendHyperlink(link: str, text: str, type: HyperlinkType) メソッドを使用して、テキストに基づいたハイパーリンクを挿入します。
  • Paragraph.AppendPicture() メソッドを使用して、段落に画像を追加します。
  • Paragraph.AppendHyperlink(link: str, picture: DocPicture, type: HyperlinkType) メソッドを使用して、画像に基づいたハイパーリンクを挿入します。
  • Document.SaveToFile() メソッドを使用して、結果の文書を保存します。
  • Python
from spire.doc import *

# Word文書を作成する
doc = Document()

# セクションを追加する
section = doc.AddSection()
section.PageSetup.Margins.All = 72.0

# 段落スタイルを作成する
style = ParagraphStyle(doc)
style.Name = "例のスタイル"
style.CharacterFormat.FontName = "Yu Gothic UI"
style.CharacterFormat.FontSize = 16.0
doc.Styles.Add(style)

# 段落を追加する
paragraph = section.AddParagraph()
paragraph.ApplyStyle(style.Name)
paragraph.AppendHyperlink("https://jp.e-iceblue.com/", "ホームページ", HyperlinkType.WebLink)

# 改行を挿入する
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)

# メールリンクを追加する
paragraph.AppendHyperlink("mailto:support @e-iceblue.com", "メールを送る", HyperlinkType.EMailLink)

# 改行を挿入する
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)

# ファイルリンクを追加する
filePath = "レポート.xlsx"
paragraph.AppendHyperlink(filePath, "レポートを開く", HyperlinkType.FileLink)

# 改行を挿入する
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)

# 別のセクションを追加し、ブックマークを作成する
section2 = doc.AddSection()
bookmarkParagraph = section2.AddParagraph()
bookmarkParagraph.AppendText("ここにブックマークがあります")
start = bookmarkParagraph.AppendBookmarkStart("myBookmark")
bookmarkParagraph.Items.Insert(0, start)
bookmarkParagraph.AppendBookmarkEnd("myBookmark")

# ブックマークへのリンクを追加する
paragraph.AppendHyperlink("myBookmark", "この文書内の場所へ移動", HyperlinkType.Bookmark)

# 改行を挿入する
paragraph.AppendBreak(BreakType.LineBreak)
paragraph.AppendBreak(BreakType.LineBreak)

# 画像リンクを追加する
imagePath = "Logo.png"
picture = paragraph.AppendPicture(imagePath)
paragraph.AppendHyperlink("https://jp.e-iceblue.com/", picture, HyperlinkType.WebLink)

# ファイルに保存する
doc.SaveToFile("output/Wordでハイパーリンクを作成.docx", FileFormat.Docx2019)
doc.Dispose()

PythonコードによるWord文書へのハイパーリンク挿入

Python で Word からハイパーリンクを削除する

Word 文書内のすべてのハイパーリンクを一度に削除するには、文書内のすべてのハイパーリンクを見つけて、それらをフラット化するカスタムメソッド FlattenHyperlinks() を作成する必要があります。以下に詳細な手順を示します。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して、サンプルの Word 文書を読み込みます。
  • カスタムメソッド FindAllHyperlinks() を使用して、文書内のすべてのハイパーリンクを見つけます。
  • ハイパーリンクをループして、カスタムメソッド FlattenHyperlinks() を使用してすべてをフラット化します。
  • Document.SaveToFile() メソッドを使用して、結果の文書を保存します。
  • Python
from spire.doc import *
from spire.doc.common import *


# ドキュメント内のすべてのハイパーリンクを検索する関数
def FindAllHyperlinks(document):
    hyperlinks = []
    for i in range(document.Sections.Count):
        section = document.Sections.get_Item(i)
        for j in range(section.Body.ChildObjects.Count):
            sec = section.Body.ChildObjects.get_Item(j)
            if sec.DocumentObjectType == DocumentObjectType.Paragraph:
                for k in range((sec if isinstance(sec, Paragraph) else None).ChildObjects.Count):
                    para = (sec if isinstance(sec, Paragraph)
                            else None).ChildObjects.get_Item(k)
                    if para.DocumentObjectType == DocumentObjectType.Field:
                        field = para if isinstance(para, Field) else None
                        if field.Type == FieldType.FieldHyperlink:
                            hyperlinks.append(field)
    return hyperlinks


# ハイパーリンクフィールドを平坦化する関数
def FlattenHyperlinks(field):
    ownerParaIndex = field.OwnerParagraph.OwnerTextBody.ChildObjects.IndexOf(
        field.OwnerParagraph)
    fieldIndex = field.OwnerParagraph.ChildObjects.IndexOf(field)
    sepOwnerPara = field.Separator.OwnerParagraph
    sepOwnerParaIndex = field.Separator.OwnerParagraph.OwnerTextBody.ChildObjects.IndexOf(
        field.Separator.OwnerParagraph)
    sepIndex = field.Separator.OwnerParagraph.ChildObjects.IndexOf(
        field.Separator)
    endIndex = field.End.OwnerParagraph.ChildObjects.IndexOf(field.End)
    endOwnerParaIndex = field.End.OwnerParagraph.OwnerTextBody.ChildObjects.IndexOf(
        field.End.OwnerParagraph)

    FormatFieldResultText(field.Separator.OwnerParagraph.OwnerTextBody,
                          sepOwnerParaIndex, endOwnerParaIndex, sepIndex, endIndex)

    field.End.OwnerParagraph.ChildObjects.RemoveAt(endIndex)

    for i in range(sepOwnerParaIndex, ownerParaIndex - 1, -1):
        if i == sepOwnerParaIndex and i == ownerParaIndex:
            for j in range(sepIndex, fieldIndex - 1, -1):
                field.OwnerParagraph.ChildObjects.RemoveAt(j)

        elif i == ownerParaIndex:
            for j in range(field.OwnerParagraph.ChildObjects.Count - 1, fieldIndex - 1, -1):
                field.OwnerParagraph.ChildObjects.RemoveAt(j)

        elif i == sepOwnerParaIndex:
            for j in range(sepIndex, -1, -1):
                sepOwnerPara.ChildObjects.RemoveAt(j)
        else:
            field.OwnerParagraph.OwnerTextBody.ChildObjects.RemoveAt(i)


# フィールドをテキスト範囲に変換し、テキストの書式設定をクリアする関数
def FormatFieldResultText(ownerBody, sepOwnerParaIndex, endOwnerParaIndex, sepIndex, endIndex):
    for i in range(sepOwnerParaIndex, endOwnerParaIndex + 1):
        para = ownerBody.ChildObjects[i] if isinstance(
            ownerBody.ChildObjects[i], Paragraph) else None
        if i == sepOwnerParaIndex and i == endOwnerParaIndex:
            for j in range(sepIndex + 1, endIndex):
                if isinstance(para.ChildObjects[j], TextRange):
                    FormatText(para.ChildObjects[j])

        elif i == sepOwnerParaIndex:
            for j in range(sepIndex + 1, para.ChildObjects.Count):
                if isinstance(para.ChildObjects[j], TextRange):
                    FormatText(para.ChildObjects[j])
        elif i == endOwnerParaIndex:
            for j in range(0, endIndex):
                if isinstance(para.ChildObjects[j], TextRange):
                    FormatText(para.ChildObjects[j])
        else:
            for j, unusedItem in enumerate(para.ChildObjects):
                if isinstance(para.ChildObjects[j], TextRange):
                    FormatText(para.ChildObjects[j])


# テキストをフォーマットする関数
def FormatText(tr):
    tr.CharacterFormat.TextColor = Color.get_Black()
    tr.CharacterFormat.UnderlineStyle = UnderlineStyle.none


# ドキュメントオブジェクトを作成
doc = Document()

# Wordファイルを読み込む
doc.LoadFromFile("output/Wordでハイパーリンクを作成.docx")

# すべてのハイパーリンクを取得
hyperlinks = FindAllHyperlinks(doc)

# すべてのハイパーリンクを平坦化
for i in range(len(hyperlinks) - 1, -1, -1):
    FlattenHyperlinks(hyperlinks[i])

# 異なるファイルに保存
doc.SaveToFile("output/Wordからハイパーリンクを削除.docx")
doc.Close()

Spire.DocでWord文書からハイパーリンクを削除

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word 文書に画像を挿入すると、大量のテキストを分割し、内容を視覚的にわかりやすくすることができます。また、複雑な概念や説明しにくい内容を効果的に伝える手段にもなります。本記事では、Spire.Doc for Python を使用してプログラムで Word 文書に画像を追加する方法を紹介します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Python で Word 文書に画像を挿入する

Spire.Doc for Python では、Paragraph.AppendPicture() メソッドを使用して Word 文書に画像を挿入できます。以下の手順で実装できます。

  • Document オブジェクトを作成します。
  • Document.AddSection() メソッドを使用してセクションを追加します。
  • Section.AddParagraph() メソッドを使用して、セクションに 2 つの段落を追加します。
  • 段落にテキストを追加し、書式を設定します。
  • 画像を読み込み、Paragraph.AppendPicture() メソッドを使用して指定した段落に追加します。
  • DocPicture.Width および DocPicture.Height プロパティを使用して、画像の幅と高さを設定します。
  • DocPicture.TextWrappingStyle プロパティを使用して、画像のテキストの折り返しスタイルを設定します。
  • Document.SaveToFile() メソッドを使用して、結果の文書を保存します。
  • Python
from spire.doc import Document, TextWrappingStyle, FileFormat

# Documentオブジェクトを作成
document = Document()

# セクションを追加
section = document.AddSection()
section.PageSetup.Margins.All = 50

# 段落を追加
paragraph1 = section.AddParagraph()
# 段落にテキストを追加し、フォーマットを設定
tr = paragraph1.AppendText("Spire.Doc for Pythonは、開発者が高速かつ高品質なパフォーマンスでWord文書を作成、読み取り、書き込み、変換、および比較するために特別に設計されたプロフェッショナルなWord Python APIです。")
tr.CharacterFormat.FontName = "Yu Gothic UI"
tr.CharacterFormat.FontSize = 11
paragraph1.Format.LineSpacing = 18
paragraph1.Format.BeforeSpacing = 10
paragraph1.Format.AfterSpacing = 10

# 別の段落を追加
paragraph2 = section.AddParagraph()
tr = paragraph2.AppendText("Spire.Doc for Pythonは、多くのWord文書処理タスクを実行することを可能にします。Word 97-2003 / 2007 / 2010 / 2013 / 2016 / 2019をサポートしており、XML、RTF、TXT、XPS、EPUB、EMF、HTMLなどの一般的に使用されるファイル形式への変換やその逆も可能です。さらに、Pythonを使用してWord Doc/DocxをPDFに変換したり、WordをSVGやPostScriptに高品質で変換することをサポートしています。")
# 段落にテキストを追加し、フォーマットを設定
tr.CharacterFormat.FontName = "Yu Gothic UI"
tr.CharacterFormat.FontSize = 11
paragraph2.Format.LineSpacing = 18

# 指定した段落に画像を追加
picture = paragraph1.AppendPicture("Spire.Doc for Python.png")

# 画像の幅と高さを設定
picture.Width = 100
picture.Height = 100

# 画像のテキスト折り返しスタイルを設定
picture.TextWrappingStyle = TextWrappingStyle.Square

# 結果の文書を保存
document.SaveToFile("output/Wordに画像を挿入.docx", FileFormat.Docx)
document.Close()

Spire.Doc for PythonでWord文書に画像を挿入

Python で Word 文書の指定位置に画像を挿入する

画像を Word 文書の特定の位置に配置したい場合は、DocPicture.HorizontalPosition および DocPicture.VerticalPosition プロパティを設定することで調整できます。以下の手順で実装できます。

  • Document オブジェクトを作成します。
  • Document.AddSection() メソッドを使用してセクションを追加します。
  • Section.AddParagraph() メソッドを使用して、セクションに段落を追加します。
  • 段落にテキストを追加し、書式を設定します。
  • Paragraph.AppendPicture() メソッドを使用して、段落に画像を追加します。
  • DocPicture.Width および DocPicture.Height プロパティを使用して、画像の幅と高さを設定します。
  • DocPicture.HorizontalPosition および DocPicture.VerticalPosition プロパティを使用して、画像の横位置と縦位置を設定します。
  • DocPicture.TextWrappingStyle プロパティを使用して、画像のテキストの折り返しスタイルを設定します。
  • Document.SaveToFile() メソッドを使用して、結果の文書を保存します。
  • Python
from spire.doc import Document, FileFormat, TextWrappingStyle, Color

# Document オブジェクトを作成します。
doc = Document()

# セクションを追加します。
section = doc.AddSection()
section.PageSetup.Margins.All = 50

# セクションに段落を追加します。
paragraph = section.AddParagraph()

# 段落にテキストを追加し、書式を設定します。
textRange = paragraph.AppendText("このサンプルは、Word 文書の指定した位置に画像を挿入する方法を示します。")
textRange.CharacterFormat.FontName = "Yu Gothic UI"
textRange.CharacterFormat.FontSize = 14
textRange.CharacterFormat.TextColor = Color.get_BlueViolet()

# 段落に画像を追加します。
picture = paragraph.AppendPicture("Image.jpg")

# 画像の位置を設定します。
picture.HorizontalPosition = 150.0
picture.VerticalPosition = 80.0

# 画像のサイズを設定します。
picture.Width = 100.0
picture.Height = 160.0

# 画像の折り返しスタイルを設定します。
# (テキストの折り返しスタイルが「インライン」の場合、位置設定は適用されません。)
picture.TextWrappingStyle = TextWrappingStyle.Through

# 文書を保存します。
doc.SaveToFile("output/Wordに画像を挿入.docx", FileFormat.Docx)
doc.Close()

PythonでWord文書に任意の位置に画像を挿入

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word 文書に背景色や画像を追加することで、視覚的な魅力を高め、読者の関心を引くことができます。プロフェッショナルなレポート、クリエイティブなチラシ、個人的な招待状など、適切な背景色や画像を取り入れることで、通常の文書を魅力的な作品へと変えることが可能です。本記事では、Spire.Doc for Python を使用して、Word 文書に背景色や背景画像を追加する方法を紹介します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Word 文書に背景色を追加する

Word 文書の背景色を設定するには、背景の種類を「Color」に変更し、背景色を指定します。具体的な手順は以下のとおりです。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Background プロパティを取得して背景を取得します。
  • Background.Type プロパティを「Color」に設定します。
  • Background.Color プロパティで背景色を設定します。
  • Document.SaveToFile() メソッドを使用して変更後の文書を保存します。
  • Python
from spire.doc import Document, BackgroundType, Color

# Document オブジェクトを作成します
document = Document()
# Word 文書を読み込みます
document.LoadFromFile("Sample.docx")

# 文書の背景を取得します
background = document.Background

# 背景の種類をカラーに設定します
background.Type = BackgroundType.Color
# 背景色を設定します
background.Color = Color.get_AliceBlue()

# 処理結果の文書を保存します
document.SaveToFile("output/背景色の追加.docx")
document.Close()

Spire.Doc for Pythonで追加されたWord文書の単一色背景

Word 文書にグラデーション背景を追加する

グラデーション背景とは、2 色以上の色が滑らかに移り変わる背景スタイルです。グラデーション背景を追加するには、背景の種類を「Gradient」に変更し、グラデーションの色、シェーディングのバリエーション、スタイルを指定します。具体的な手順は以下のとおりです。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Background プロパティを取得して背景を取得します。
  • Background.Type プロパティを「Gradient」に設定します。
  • Background.Gradient.Color1 および Background.Gradient.Color2 プロパティで2つのグラデーション色を設定します。
  • Background.Gradient.ShadingVariant および Background.Gradient.ShadingStyle プロパティでグラデーションのシェーディングバリエーションとスタイルを設定します。
  • Document.SaveToFile() メソッドを使用して変更後の文書を保存します。
  • Python
from spire.doc import Document, BackgroundType, Color, GradientShadingStyle, GradientShadingVariant

# Document オブジェクトを作成します
document = Document()
# Word 文書を読み込みます
document.LoadFromFile("Sample.docx")

# 文書の背景を取得します
background = document.Background

# 背景の種類をグラデーションに設定します
background.Type = BackgroundType.Gradient

# 2 色のグラデーションを設定します
background.Gradient.Color1 = Color.get_White()
background.Gradient.Color2 = Color.get_LightBlue()

# グラデーションのシェーディングのバリアントとスタイルを設定します
background.Gradient.ShadingVariant = GradientShadingVariant.ShadingDown
background.Gradient.ShadingStyle = GradientShadingStyle.Horizontal

# 処理結果の文書を保存します
document.SaveToFile("output/グラデーション背景の追加.docx")
document.Close()

Pythonを使ったWord文書のグラデーション背景設定

Word 文書に背景画像を追加する

Word 文書の背景に画像を追加するには、背景の種類を「Picture」に変更し、画像を設定します。具体的な手順は以下のとおりです。

  • Document オブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Background プロパティを取得して背景を取得します。
  • Background.Type プロパティを「Picture」に設定します。
  • Background.SetPicture() メソッドを使用して背景画像を設定します。
  • Document.SaveToFile() メソッドを使用して変更後の文書を保存します。
  • Python
from spire.doc import Document, BackgroundType

# Document オブジェクトを作成します
document = Document()
# Word 文書を読み込みます
document.LoadFromFile("Sample.docx")

# 文書の背景を取得します
background = document.Background

# 背景の種類を画像に設定します
background.Type = BackgroundType.Picture

# 背景画像を設定します
background.SetPicture("BackgroundImage.jpg")

# 処理結果の文書を保存します
document.SaveToFile("output/背景画像の追加.docx")
document.Close()

PythonコードでWord文書の画像背景を追加

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

ページサイズとは、文書のページの寸法を指します。これは印刷可能領域の幅と高さを決定し、文書のレイアウトやデザインにおいて重要な役割を果たします。例えば、ビジネス文書には標準的なレターサイズ(8.5 x 11インチ)、国際的な文書には A4 サイズ(210 x 297mm)が使用されることが一般的です。ページサイズを適切に設定することで、目的の出力形式やプレゼンテーション媒体に適合した文書を作成できます。本記事では、Spire.Doc for Python を使用して、Word 文書のページサイズを調整する方法を紹介します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Word 文書のページサイズを標準サイズに変更する

Spire.Doc for Python を使用すると、A3、A4、A5、A6、B4、B5、B6、レター、リーガル、タブロイドなど、さまざまな標準ページサイズに簡単に変更できます。以下の手順で、Word 文書のページサイズを標準サイズに変更する方法を説明します。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • 文書内のセクションを順番に処理します。
  • 各セクションのページサイズを Section.PageSetup.PageSize プロパティに PageSize.A4() などの標準サイズを設定して変更します。
  • Document.SaveToFile() メソッドを使用して変更後の文書を保存します。
  • Python
from spire.doc import Document, PageSize

# Document クラスのインスタンスを作成します
doc = Document()
# Word 文書を読み込みます
doc.LoadFromFile("Sample.docx")

# 文書内のセクションを順に処理します
for i in range(doc.Sections.Count):
    section = doc.Sections.get_Item(i)
    # 各セクションのページサイズを A4 に変更します
    section.PageSetup.PageSize = PageSize.A4()

# 処理結果の文書を保存します
doc.SaveToFile("output/標準ページサイズ.docx")
doc.Close()

Spire.Doc for Pythonによる標準Word文書のページサイズ設定

Word 文書のページサイズをカスタムサイズに変更する

標準の用紙サイズに合わない独自の寸法で印刷する場合、カスタムページサイズを設定できます。以下の手順で、Spire.Doc for Python を使用して Word 文書のページサイズをカスタムサイズに変更する方法を説明します。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • カスタム寸法で SizeF クラスのインスタンスを作成します。
  • 文書内のセクションを順番に処理します。
  • Section.PageSetup.PageSize プロパティに SizeF インスタンスを割り当て、各セクションのページサイズを変更します。
  • Document.SaveToFile() メソッドを使用して変更後の文書を保存します。
  • Python
from spire.doc import Document, SizeF

# Document クラスのインスタンスを作成します
doc = Document()
# Word 文書を読み込みます
doc.LoadFromFile("Sample.docx")

# 指定した寸法で SizeF クラスのインスタンスを作成します
customSize = SizeF(600.0, 800.0)

# 文書内のセクションを順に処理します
for i in range(doc.Sections.Count):
    section = doc.Sections.get_Item(i)
    # 各セクションのページサイズを指定した寸法に変更します
    section.PageSetup.PageSize = customSize

# 処理結果の文書を保存します
doc.SaveToFile("output/カスタムページサイズ.docx")
doc.Close()

PythonコードによるWord文書ページサイズのカスタム設定

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

ドキュメント作成の過程で、空白行が多く見られることがあります。これらの空白は、内容の流れを妨げ、レイアウトを散らかし、ドキュメントの全体的な美的印象を損なう可能性があります。読みやすさを最適化し、構造的に整ったドキュメントを維持するためには、空白行を削除することが重要です。本記事では、Spire.Doc for Python を使用して、Python で Word ドキュメントから空白行を削除する方法を紹介します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Python で Word ドキュメントから空白行を削除

Word ドキュメント内の空白行は、セクションの子オブジェクトである空の段落として表示されます。したがって、空白行を削除するには、セクションを繰り返し処理し、その中の空の段落を特定して削除する必要があります。具体的な手順は以下の通りです:

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 各セクションとセクション内の子オブジェクトを繰り返し処理します。
  • 子オブジェクトが段落型であるかを確認します。もし段落型であれば、さらにそのオブジェクトが「Paragraph」クラスのインスタンスかを確認します。その後、段落にテキストが含まれていないかをチェックし、テキストがなければ、Section.Body.ChildObjects.Remove() メソッドを使用して段落を削除します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。
  • Python
from spire.doc import Document, DocumentObjectType, Paragraph

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

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

# 文書内の各セクションを繰り返し処理
for i in range(doc.Sections.Count):
    section = doc.Sections.get_Item(i)
    j = 0
    # セクション内の各子オブジェクトを繰り返し処理
    while j < section.Body.ChildObjects.Count:
        # 子オブジェクトがParagraph型かどうかをチェック
        if section.Body.ChildObjects[j].DocumentObjectType == DocumentObjectType.Paragraph:
            objItem = section.Body.ChildObjects[j]
            # 子オブジェクトがParagraphクラスのインスタンスかどうかをチェック
            if isinstance(objItem, Paragraph):
                paraObj = Paragraph(objItem)
                # 段落のテキストが空かどうかをチェック
                if len(paraObj.Text) == 0:
                    # テキストが空の場合、セクションの子オブジェクトリストから削除
                    section.Body.ChildObjects.Remove(objItem)
                    j -= 1
        j += 1

# 文書を保存
doc.SaveToFile("output/空白行の削除.docx")
doc.Close()

Spire.DocとPythonを使ってWord文書から空白行を削除する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

機密情報を不正アクセスから守ることは、個人や組織にとって重要な課題です。財務記録、法的文書、個人情報などの機密性の高い Word 文書を共有したり保存したりする場合、文書を暗号化することでそのセキュリティと機密性を強化できます。さらに、Python を使用すると、多数の Word 文書を簡単に暗号化することができます。この記事では、Spire.Doc for Python を使って Python プログラムで Word 文書を暗号化復号化する方法を紹介します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

Python で Word 文書をパスワードで暗号化

Spire.Doc for Python が提供する Document.Encrypt(password: str) メソッドを使用することで、Word 文書にオープンパスワードを設定し、許可された人物のみが文書を開いて閲覧できるようにすることができます。パスワードで Word 文書を暗号化する詳細な手順は以下の通りです。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、Word 文書をロードします。
  • Document.Encrypt() メソッドを使用して、文書を暗号化します。
  • Document.SaveToFile() メソッドを使用して、文書を保存します。
  • Python
from spire.doc import Document

# Documentクラスのインスタンスを作成
doc = Document()

# Wordドキュメントを読み込む
doc.LoadFromFile("Sample.docx")

# ドキュメントを暗号化する
doc.Encrypt("password")

# ドキュメントを保存する
doc.SaveToFile("output/暗号化されたWord文書.docx")
doc.Close()

Pythonを使ってWord文書をパスワードで暗号化

暗号化された Word 文書のパスワードを変更

暗号化された文書をロードする際に、パスワードをパラメータとして渡すことで、Document.LoadFromFile(fileName: str, fileFormat: FileFormat, password: str) メソッドを使用して文書を読み込むことができます。文書を読み込んだ後、Document.Encrypt() メソッドを使用して、新しいパスワードを設定できます。詳細な手順は以下の通りです。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、暗号化された Word 文書をロードします。
  • Document.Encrypt() メソッドを使用して、文書のパスワードを変更します。
  • Document.SaveToFile() メソッドを使用して、文書を保存します。
  • Python
from spire.doc import Document, FileFormat

# Documentクラスのインスタンスを作成
doc = Document()

# 暗号化されたWordドキュメントを読み込む
doc.LoadFromFile("output/暗号化されたWord文書.docx", FileFormat.Docx, "password")

# パスワードを変更する
doc.Encrypt("password1")

# ドキュメントを保存する
doc.SaveToFile("output/Word文書のパスワード変更.docx")
doc.Close()

パスワードを削除して Word 文書を暗号化解除

暗号化された Word 文書を読み込んだ後、Document.RemoveEncryption() メソッドを使用して、文書から暗号化を削除することもできます。これにより、すべてのユーザーが文書を利用できるようになります。詳細な手順は以下の通りです。

  • Document クラスのインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して、暗号化された Word 文書をロードします。
  • Document.RemoveEncryption() メソッドを使用して、パスワードを削除します。
  • Document.SaveToFile() メソッドを使用して、文書を保存します。
  • Python
from spire.doc import Document, FileFormat

# Documentクラスのインスタンスを作成
doc = Document()

# 暗号化されたWordドキュメントを読み込む
doc.LoadFromFile("output/暗号化されたWord文書.docx", FileFormat.Auto, "password")

# パスワードを削除する
doc.RemoveEncryption()

# ドキュメントを保存する
doc.SaveToFile("output/Word文書パスワードの削除.docx", FileFormat.Auto)
doc.Close()

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Word 文書の編集制限機能は、ユーザーが編集可能な範囲や編集内容を制御・制限できる機能です。この機能は、機密性の高い文書や重要な文書を不正または不適切な変更から保護するためによく使用されます。編集制限を適用することで、文書の所有者は、どの種類の変更が可能か、文書のどの部分を編集できるかを指定でき、文書の保護や共同作業、情報収集の効率化などに役立ちます。

本記事では、Spire.Doc for Python を使用して Word 文書の編集制限を設定および解除する方法を紹介します。

Spire.Doc for Python のインストール

この操作には、Spire.Doc for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.Doc for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.Doc

パスワードで Word 文書全体の編集を制限

Word 文書の編集制限には以下の 4 種類があります。

  • 変更不可(読み取り専用)
  • 変更履歴の記録のみ許可
  • コメントの追加のみ許可
  • フォームの入力のみ許可

Spire.Doc for Python では、Document.Protect() メソッドを使用して編集制限を設定でき、ProtectionType 列挙型で制限の種類を指定できます。

以下に ProtectionType 列挙型と対応する編集制限を示します。

Enum 編集制限 説明
ProtectionType.AllowOnlyReading 変更不可 (読み取り専用) 読み取りのみ許可
ProtectionType.AllowOnlyRevisions 変更履歴の記録のみ許可 変更履歴の記録のみ許可
ProtectionType.AllowOnlyComments コメントの追加のみ許可 コメントのみ許可
ProtectionType.AllowOnlyFormFields フォームの入力のみ許可 フォームの入力のみ許可
ProtectionType.NoProtection 制限なし 制限なし

Word 文書にパスワード付きの編集制限を設定する手順は以下のとおりです。

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

# 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()

PythonでWord文書全体に編集制限を設定

Word 文書の編集制限に例外を設定

Word 文書に編集制限を設定する際、一部の範囲を例外として許可することができます。そのためには、許可範囲の開始タグと終了タグを挿入します。

手順は以下のとおりです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Sections.get_Item() メソッドを使用して最初のセクションを取得します。
  • PermissionStart クラスのオブジェクトと PermissionEnd クラスのオブジェクトを作成します。
  • Paragraph.ChildObjects.Insert() メソッドと Paragraph.ChildObjects.Add() メソッドを使用して、開始タグと終了タグを文書に挿入します。
  • Document.Protect() メソッドを使用して編集制限を適用します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。
  • Python
from spire.doc import Document, PermissionStart, PermissionEnd, ProtectionType

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

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

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

# 権限開始タグと終了タグを作成
start = PermissionStart(doc, "exception1")
end = PermissionEnd(doc, "exception1")

# 権限開始タグと終了タグを最初のセクションに挿入
paragraph = section.Paragraphs.get_Item(1)
paragraph.ChildObjects.Insert(0, start)
paragraph.ChildObjects.Add(end)

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

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

PythonでWord文書に追加された例外領域を含む編集制限

Word 文書の編集制限を解除

文書の編集制限を解除するには、Document.Protect() メソッドを使用し、編集制限の種類を「制限なし」に設定するだけです。

手順は以下のとおりです。

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して Word 文書を読み込みます。
  • Document.Protect() メソッドを使用し、制限の種類を None に設定します。
  • Document.SaveToFile() メソッドを使用して文書を保存します。
  • Python
from spire.doc import Document, ProtectionType

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

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

# 編集制限を削除するために制限タイプを「保護なし」に設定
doc.Protect(ProtectionType.NoProtection)

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

PythonでWord文書の編集制限を解除する

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。