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

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

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

- **[Pythonを使用したPDFからHTMLへの変換の概要](#pythonを使用したpdfからhtmlへの変換の概要)**
- **[Pythonコードを使用した単一のHTMLファイルへのPDF変換](#pythonコードを使用した単一のhtmlファイルへのpdf変換)**
- **[Pythonを使用した画像を別々にしたHTMLへのPDF変換](#pythonを使用した画像を別々にしたhtmlへのpdf変換)**
- **[Pythonを使用した複数のHTMLファイルへのPDF変換](#pythonを使用した複数のhtmlファイルへのpdf変換)**

---

この記事で使用する方法は、[Spire.PDF for Python](https://www.e-iceblue.com/Download/Spire-PDF-Python.html)を使用します。公式ウェブサイトからダウンロードするか、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ファイルになります。

**コード例：**
```python
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変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/64b929c7-bf62-1837-a775-cd02235e6c37.png)

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

**コード例：**
```python
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変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/277d207f-ac7b-910b-ac47-4e2da02b14bd.png)

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

**コード例：**
```python
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変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/3af0e1eb-e163-3f44-a0d6-991030af334a.png)

---

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