3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pythonを使用してPDFドキュメントからテキストと画像を抽出する方法

Last updated at Posted at 2023-09-22

PDF文書のさまざまな特殊なスタイルを保持しながら、編集、コピー、検索などが難しいものです。PDF文書のコンテンツを処理する必要がある場合、テキストと画像をPDF文書から抽出して、これらのコンテンツをさらに操作したり、他の目的に使用したりするために、ツールを使用することが選択肢となります。この記事では、Pythonを使用してPDFファイルからテキストと画像を抽出して保存する方法について説明します。

この方法には、Spire.PDF for Pythonが必要です。公式ウェブサイトからダウンロードするか、pipを使用して直接インストールすることができます。

pip install Spire.PDF

PDFファイルからテキストを抽出する方法

ExtractText メソッドは、個々のページのすべてのテキスト(空白を含む)を抽出し、文字列として返します。したがって、ドキュメントの各ページを反復処理し、このメソッドを使用して各ページのテキストを抽出し、テキストファイルに書き込むことで、PDFファイルからテキストを抽出することができます。詳細な手順は以下の通りです:

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントをロードします。
  • 抽出されたテキストを保存するためのテキストファイルを作成します。
  • ドキュメントのページを反復処理し、PdfPageBase.ExtractText() メソッドを使用してページのテキストを取得し、テキストファイルに書き込みます。

Python

from spire.pdf import *
from spire.pdf.common import *

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

# PDFドキュメントをロードする
pdf.LoadFromFile("サンプル.pdf")

# 抽出されたテキストを保存するためのTXTファイルを作成する
extractedText = open("output/抽出したテキスト.txt", "w", encoding="utf-8")

# ドキュメントのページを反復処理する
for i in range(pdf.Pages.Count):
    # ページを取得する
    page = pdf.Pages.get_Item(i)
    # ページからテキストを抽出する
    text = page.ExtractText()
    # テキストをTXTファイルに書き込む
    extractedText.write(text + "\n")

extractedText.close()
pdf.Close()

サンプル
2023-09-22_174843.png

抽出したテキスト
2023-09-22_174953.png

PDFファイルから画像を抽出する方法

画像を抽出する方法は、テキストを抽出する方法と似ています。各ページを反復処理し、ExtractImages メソッドを使用して個々のページからすべての画像を抽出し、リストとして返します。その後、リスト内のすべての画像をファイルに保存します。詳細な手順は以下の通りです:

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.LoadFromFile() メソッドを使用してPDFドキュメントをロードします。
    リストを作成します。
  • ドキュメントのページを反復処理し、PdfPageBase.ExtractImages() メソッドを使用してページ内の画像を取得し、作成したリストに追加します。
  • リスト内の画像を保存します。

Python

from spire.pdf import *
from spire.pdf.common import *

# PdfDocumentクラスのオブジェクトを作成します
pdf = PdfDocument()

# PDFドキュメントをロードします
pdf.LoadFromFile("サンプル.pdf")

# 画像を保存するためのリストを作成します
images = []

# ドキュメントのページを反復処理します
for i in range(pdf.Pages.Count):
    page = pdf.Pages.get_Item(i)
    for img in page.ExtractImages():
        images.append(img)

# 抽出した画像を保存します
i = 0
for image in images:
    i += 1
    image.Save("output/Images/Image-{0:d}.png".format(i), ImageFormat.get_Png())

pdf.Close()

抽出した画像
2023-09-22_175302.png

上記は、PDFファイルからテキストや画像を抽出するためのSpire.PDF for Pythonの使用方法についてです。PDFファイルの操作について詳しく知りたい場合は、Spire.PDF for Pythonのチュートリアルをご覧ください。 また、Spire.PDFフォーラムで議論に参加することもできます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?