3
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Pythonコードを使用してPDFをHTMLに変換する方法

Posted at

PDFファイルは、文書を共有および配布するための人気のある選択肢ですが、PDFのコンテンツを抽出して再利用することは非常に難しい場合があります。幸いにも、Pythonを使用してPDFファイルをHTMLに変換することは、PDF情報の取得と再利用のための優れた解決策を提供します。これにより、アクセシビリティ、検索性、適応性が向上します。さらに、HTML形式では、検索エンジンがコンテンツをインデックス化できるため、ウェブ上でより見つけやすくなります。さらに、Pythonの柔軟性と使いやすさにより、初心者から経験豊富な開発者まで、PDFをHTMLに簡単かつ効率的に変換するためにPythonを使用することができます。

この記事では、PythonプログラムでPDFをHTMLに変換する方法に焦点を当てています。以下のトピックが主に含まれます:


この記事で使用する方法は、Spire.PDF for Pythonを使用します。公式ウェブサイトからダウンロードするか、PyPI経由でインストールすることができます: pip install Spire.PDF.

Pythonを使用したPDFからHTMLへの変換の概要

Spire.PDF for Pythonでは、PdfDocument クラスがPDFドキュメントを表します。このクラスの LoadFromFile() メソッドを使用してPDFファイルをロードし、HTMLなどの他の形式でドキュメントを保存することで、PDFからHTMLへの簡単な変換を実現できます。

さらに、このAPIでは、PdfDocument.ConvertOptions プロパティの SetConvertHtmlOptions() メソッドも提供されており、変換中に画像の埋め込みオプションを設定することができます。以下は、このメソッドに渡すことができるパラメーターで、最大ページ数、SVGの埋め込みオプション、画像の埋め込みオプション、SVGの品質オプションを設定するためのものです:

  • useEmbeddedSvg (bool): Trueに設定すると、変換されたHTMLファイルにSVGを埋め込むことができます。結果のHTMLファイルには、画像を含むPDFドキュメントのすべての要素が1つのHTMLファイルに含まれます。
  • useEmbeddedImg (bool): Trueに設定すると、変換されたHTMLファイルに画像を埋め込むことができます。このパラメーターは、useEmbeddedSvgがFalseに設定されている場合にのみ機能します。
  • maxPageOneFile (int): 1つのHTMLファイルに含める最大ページ数を設定します。PDFのページ数が指定された数よりも多い場合、複数のHTMLファイルが生成され、各ファイルには一部のページが含まれます。
  • useHighQualityEmbeddedSvg (bool): Trueに設定すると、HTML変換プロセスで埋め込まれたSVG画像の高品質バージョンが使用されます。

Spire.PDF for Pythonを使用してPythonでPDFからHTMLに変換する典型的なワークフロー:

  1. PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile(string fileName) メソッドを使用してPDFドキュメントをロードします。
  2. PdfDocument.ConvertOptions.SetConvertHtmlOptions() メソッドを使用して変換オプションを設定します。
  3. ドキュメントをHTML形式に変換し、PdfDocument.SaveToFile(string fileName, FileFormat.HTML) メソッドを使用して保存します。

Pythonコードを使用した単一のHTMLファイルへのPDF変換

このコード例では、変換オプションを設定せずにPythonでPDFを直接HTMLに変換する方法を示しています。この場合、LoadFromFile メソッドでPDFファイルをロードし、SaveToFile メソッドでHTMLファイルとして保存するだけです。変換されたHTMLファイルは、画像やその他の要素が埋め込まれた単一のHTMLファイルになります。

コード例:

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

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

# PDFドキュメントを読み込みます
doc.LoadFromFile("News.pdf")

# ドキュメントをHTMLに変換します
doc.SaveToFile("output/HTML/PDFからHTMLへの変換.html", FileFormat.HTML)
doc.Close()

変換結果:
Pythonコードを使用した単一のHTMLファイルへのPDF変換

Pythonを使用した画像を別々にしたHTMLへのPDF変換

useEmbeddedSvg パラメーターを False に設定することで、PDFドキュメントを画像とCSSファイルが分離されたHTMLファイルに変換し、フォルダに保存することができます。これにより、変換されたHTMLファイルのさらなる編集や画像に対する追加の操作が容易になります。

コード例:

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

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

# PDFドキュメントを読み込みます
doc.LoadFromFile("News.pdf")

# SVGの埋め込みを無効にします
doc.ConvertOptions.SetPdfToHtmlOptions(False)

# ドキュメントをHTMLに変換します
doc.SaveToFile("output/HTML1/SVGを埋め込まないPDFからHTMLへの変換.html", FileFormat.HTML)
doc.Close()

変換結果:
Pythonを使用した画像を別々にしたHTMLへのPDF変換

Pythonを使用した複数のHTMLファイルへのPDF変換

useEmbeddedSvgFalse に設定されている前提の下、SetPdfToHtmlOptions メソッドを使用することで、maxPageOneFile(int) パラメーターを設定して、各変換されたHTMLファイルに含まれる最大ページ数を決定することができます。この機能により、変換プロセスでPDFドキュメントを分割することができます。たとえば、パラメーターを1に設定すると、各ページが個別のHTMLファイルに変換されます。

コード例:

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

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

# PDFドキュメントを読み込みます
doc.LoadFromFile("News.pdf")

# SVGの埋め込みを無効にします
doc.ConvertOptions.SetPdfToHtmlOptions(False, False, 1, False)

# ドキュメントをHTMLに変換します
doc.SaveToFile("output/HTML1/PDFから複数のHTMLへの変換.html", FileFormat.HTML)
doc.Close()

変換結果:
Pythonを使用した複数のHTMLファイルへのPDF変換


結論

この記事では、Pythonを使用してPDFをHTMLに変換する方法と、単一のHTMLファイルに変換する、画像を分離する、変換中にPDFドキュメントを分割するなどのさまざまな変換オプションを提供しています。Spire.PDF for Pythonを使用することで、PythonにおけるPDFからHTMLへの変換に対して直感的で効率的なメソッドが提供され、柔軟なカスタマイズオプションもサポートされています。
このAPIを使用したPDFからHTMLへの変換中に発生した問題については、ユーザーはSpire.PDFフォーラムで技術サポートを求めることができます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?