LoginSignup
1
3

【Python】Word文書からPDFへのバッチ変換を簡単に実現

Last updated at Posted at 2023-09-01

Wordファイル(Doc、Docx)とPDFファイルは、広く使用されている文書フォーマットです。Word文書フォーマットは、コンテンツの編集時に明らかな利点があり、さまざまな編集ニーズに対応することができます。ただし、文書の完全性とフォーマットの一貫性を保証し、文書をクロスプラットフォームで互換性のある形式にするためには、PDF形式の方が適しています。PDF文書は、さまざまなプラットフォームやデバイスで開くことができ、文書のフォーマットと外観を一貫して維持することができます。また、セキュリティ面でも優れています。そのため、Word文書をPDFファイルに変換することは一般的な要求となっています。この記事では、Spire.Doc for Pythonを使用してWord文書をPDFファイルに変換する方法、およびバッチ変換やさまざまな変換パラメータの設定について説明します。

Spire.Doc for Pythonの導入

このチュートリアルでは、Spire.Doc for Pythonを使用する必要があります。以下のpipコマンドを使用して、それらを簡単にVSコードにインストールすることができます。

pip install Spire.Doc

1つのWord文書をPDFファイルに変換する

Spire.Doc for Pythonの**Document.SaveToFile()**メソッドを使用すると、WordをPDF、XPS、HTML、RTFなどの形式で保存できます。 以下は、Wordドキュメントを直接PDFファイルの手順として保存したものです:

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用してサンプル Word 文書を読み込みます。
  • Doucment.SaveToFile() メソッドを使用して、ドキュメントを PDF ファイルとして保存します。

Python

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

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

# Word文書を読み込む
document.LoadFromFile("G:/文書/例1.docx")

# 文書をPDFファイルとして保存する
document.SaveToFile("出力/PDF1.pdf", FileFormat.PDF)
document.Close()

変換結果
Word文書をPDFファイルに変換する

Word文書をPDFファイルに一括変換

以下は、Word文書を一括でPDFファイルに変換する手順です。DocおよびDocx形式のWord文書に対応しています:

  • Document クラスのオブジェクトを作成します。
  • 指定されたフォルダ内のすべてのファイルを繰り返し処理し、接尾辞が .doc と .docx のファイルを特定します。
  • Document.LoadFromFile() メソッドを使用して、ドキュメントを 1 つずつ読み込みます。
  • Document.SaveToFile() メソッドを使用して、ドキュメントを PDF 形式に変換し、指定されたパスに保存します。

Python

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

# フォルダパスを取得する
folder_path = "G:/文書"

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

# フォルダ内のすべてのファイルを繰り返し処理する
for file_name in os.listdir(folder_path):
    if file_name.endswith(".doc") or file_name.endswith(".docx"):
        # ファイルのフルパスを構築する
        file_path = os.path.join(folder_path, file_name)
        
        # Word文書を読み込む
        document.LoadFromFile(file_path)

        # 出力ファイルのパスを生成する
        output_path = os.path.join("出力1", os.path.splitext(file_name)[0] + ".pdf")

        # 文書をPDFファイルとして保存する
        document.SaveToFile(output_path, FileFormat.PDF)
        document.Close()
    else:
        print(f"Ignoring file: {file_name}")

変換結果
Word文書をPDFファイルに一括変換

変換中に変換パラメータを設定する(暗号化、ブックマークの組み込み、フォントの埋め込み、画質の設定)

また、Spire.Doc for Pythonは、ToPdfParameterList クラスのプロパティと Document.JPEGQuality プロパティによって、Word文書を変換する際の暗号化、ブックマークの追加、フォントの埋め込み、画質の設定などをサポートしています。 詳しい手順は以下の通りです:

  • Document クラスのオブジェクトを作成します。
  • Document.LoadFromFile() メソッドを使用して、サンプル Word 文書を読み込みます。
  • ToPdfParameterList クラスのオブジェクトを作成します。
  • ToPdfParameterList.PdfSecurity.Encrypt() メソッドを使用して、閲覧パスワードと権限パスワードを設定します。
  • ToPdfParameterList.CreateWordBookmarksUsingHeadings プロパティ設定を使用して、すべてのレベルの見出しからPDFブックマークを生成することもできます。また、ToPdfParameterList.CreateWordBookmarks プロパティの設定を使用して、Word文書のブックマークをPDFブックマークに直接変換することもできます。
  • フォント埋め込みを設定するには、ToPdfParameterList.IsEmbeddedAllFonts プロパティを使用します。
  • 画質を設定するには、Document.JPEGQuality プロパティを使用します。
  • Doucment.SaveToFile() メソッドを使用してパラメータを適用し、ドキュメントをPDFファイルとして保存します。

Python

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

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

# Word文書をロードする
document.LoadFromFile("G:/文書/例1.docx")

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

# 閲覧パスワードと権限パスワードを設定する
openpsd = "password"
permissionpsd = "permission"
parameter.PdfSecurity.Encrypt(openpsd, permissionpsd, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit)

# 見出しを使用してブックマークを作成する
parameter.CreateWordBookmarksUsingHeadings = True
# ブックマークを含める
# parameter.CreateWordBookmarks = True

# フォントを埋め込む
parameter.IsEmbeddedAllFonts = True

# 画像の品質を設定する
document.JPEGQuality = 40

# 文書をPDFファイルとして保存する
document.SaveToFile("出力/PDF2.pdf", parameter)
document.Close()

変換結果
変換中に暗号化を設定
変換中にブックマークの組み込みを設定
変換中にフォントの埋め込みを設定

Spire.Doc for Pythonの使用は、PDF文書に変換されますWord文書の操作方法は上記のとおりです。 操作方法についてご不明な点や詳細をお知りになりたい場合は、Spire.Docのフォーラムで議論することができます。

1
3
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
1
3