.NETでC#を使用してPDFをHTMLに変換する方法

HTMLはオープンスタンダードのウェブマークアップ言語であり、クロスプラットフォーム対応、簡単な閲覧、検索エンジンに優しい特性を備えています。このため、コンテンツを多くのデバイスで簡単にアクセスできるようにし、オンラインでの共有やインタラクションを最適化します。**PDFファイルをHTML形式に変換**することで、PDFの内容をブラウザで手軽に表示でき、より複雑なHTMLページへの統合も簡単になります。C#を使って.NETフレームワークでこれを実現すれば、高速な変換や自動化も可能です。本記事では、.NETフレームワークを使用して**C#でPDFファイルをHTML形式に変換する方法**を紹介します。

- **[C#でPDFをHTML形式に直接変換する方法](#cでpdfをhtml形式に直接変換する方法  )**
- **[PDFをHTMLに変換する際のカスタムオプション設定](#pdfをhtmlに変換する際のカスタムオプション設定)**
- **[ストリームを使用してPDFをHTMLに変換する方法](#ストリームを使用してpdfをhtmlに変換する方法)**

使用するツールは無料の[Free Spire.PDF for .NET](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-net.html)です。インストールは以下のコマンドで行います：  

`Install-Package FreeSpire.PDF`

記事で使用したPDF文書の例：
![C#を使用してPDFをHTMLに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/642414f9-938d-c99a-d186-826bd0f6554e.png)

## C#でPDFをHTML形式に直接変換する方法

`PdfDocument.LoadFromFile()`メソッドを使用してPDFファイルを読み込み、その後`PdfDocument.SaveToFile(string: fileName, FileFormat.HTML)`メソッドでHTMLファイルとして保存します。操作手順は以下の通りです：

1. 必要なモジュールをインポートする。  
2. `PdfDocument`インスタンスを作成し、`PdfDocument.LoadFromFile()`でPDFファイルを読み込む。  
3. `PdfDocument.SaveToFile(string: fileName, FileFormat.HTML)`でHTML形式に変換して保存する。  
4. リソースを解放する。

**コード例**  
```csharp
using Spire.Pdf;

namespace PDFToHTML
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentインスタンスを作成
            PdfDocument pdf = new PdfDocument();

            // PDFファイルを読み込む
            pdf.LoadFromFile("Sample.pdf");

            // PDFをHTMLに変換して保存
            pdf.SaveToFile("output/PDFToHTML.html", FileFormat.HTML);

            // リソースを解放する
            pdf.Dispose();
        }
    }
}
```

実行結果
![C#でPDFをHTML形式に直接変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/523e560e-f9d3-e6e5-9854-6b1a855d6d87.png)

## PDFをHTMLに変換する際のカスタムオプション設定

PDFを読み込んだ後、`PdfDocument.ConvertOptions`プロパティを使用して`PdfConvertOptions`インスタンスを取得し、`PdfConvertOptions.SetPdfToHtmlOptions()`メソッドで変換オプションを設定します。このメソッドには以下の4つのパラメータがあります：

- bool: SVGをHTMLに埋め込むかどうか  
- bool: 画像をHTMLに埋め込むかどうか  
- int: 単一ファイルの最大ページ数  
- bool: 高品質のSVGを使用するかどうか  

操作手順は以下の通りです：  
1. 必要なモジュールをインポートする。  
2. `PdfDocument`インスタンスを作成し、`PdfDocument.LoadFromFile()`でPDFファイルを読み込む。  
3. `PdfDocument.ConvertOptions`プロパティを利用して`PdfConvertOptions`を取得する。  
4. `PdfConvertOptions.SetPdfToHtmlOptions()`を使用してオプションを設定する。  
5. `PdfDocument.SaveToFile(string: fileName, FileFormat.HTML)`でHTML形式に変換して保存する。  
6. リソースを解放する。

**コード例**  
```csharp
using Spire.Pdf;

namespace PDFToHTML
{
    class Program
    {
        static void Main(string[] args)
        {
            // PdfDocumentインスタンスを作成
            PdfDocument pdf = new PdfDocument();

            // PDFファイルを読み込む
            pdf.LoadFromFile("Sample.pdf");

            // ConvertOptionsプロパティにアクセス
            PdfConvertOptions toHtmlOptions = pdf.ConvertOptions;

            // HTML変換オプションを設定
            toHtmlOptions.SetPdfToHtmlOptions(false, true, 5, false);

            // PDFをHTMLに変換して保存
            pdf.SaveToFile("output/PDFToHTML.html", FileFormat.HTML);

            // リソースを解放する
            pdf.Dispose();
        }
    }
}
```

実行結果
![PDFをHTMLに変換する際のカスタムオプション設定](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/fe804104-57d4-7aea-0b74-db55812a4c95.png)

## ストリームを使用してPDFをHTMLに変換する方法

ディスクからPDFファイルを読み込んで変換するだけでなく、`PdfDocument.LoadFromStream()`メソッドを使用してストリームから直接PDFを読み込み、`PdfDocument.SaveToStream(Stream: stream, FileFormat.HTML)`でHTML形式のストリームに変換することも可能です。操作手順は以下の通りです：

1. 必要なモジュールをインポートする。  
2. `MemoryStream`インスタンスを作成する、または既存のインスタンスを使用する。  
3. `PdfDocument`インスタンスを作成し、`PdfDocument.LoadFromStream()`でストリームからPDFを読み込む。  
4. `PdfDocument.SaveToStream(Stream: stream, FileFormat.HTML)`でHTML形式のストリームに変換する。  
5. ストリームをファイルに書き込むか、他の用途に利用する。  
6. リソースを解放する。

**コード例**  
```csharp
using Spire.Pdf;

namespace PDFToHTML
{
    class Program
    {
        static void Main(string[] args)
        {
            // Streamインスタンスを作成するか、既存のインスタンスを使用
            MemoryStream stream = new MemoryStream();
            File.OpenRead("Sample.pdf").CopyTo(stream);

            // PdfDocumentインスタンスを作成
            PdfDocument pdf = new PdfDocument();

            // ストリームからPDFファイルを読み込む
            pdf.LoadFromStream(stream);

            // PDFをHTMLに変換し、ストリームに保存
            pdf.SaveToStream(stream, FileFormat.HTML);
            
            // ストリームをファイルに書き込むか、必要に応じて他の操作を実行
            File.WriteAllBytes("output/PDFToHTMLStream.html", stream.ToArray());

            // リソースを解放する
            pdf.Dispose();
        }
    }
}
```

実行結果  
![ストリームを使用してPDFをHTMLに変換](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/c4979f28-b1d1-d881-586c-bbf4640fa288.png)

本記事では、.NETフレームワークを使用してC#でPDFをHTML形式に変換する方法を、具体的な手順とコード例を交えて解説しました。