C#でPDFファイルのサムネイルを生成する

PDFドキュメントをWebアプリケーションに埋め込むときに、サムネイルを生成する必要がある場合があります。また、PDFビューアを作成する場合は、ページのサムネイルが必要です。このようなシナリオでは、この記事では、C#.NETでプログラムによってPDFファイルのサムネイルを生成する方法について説明します。特定のページまたはPDFファイル内のすべてのページのサムネイルを作成する方法を明示的に説明します。

PDFのサムネイルを生成するC#.NET API

Aspose.PDF for .NETは、.NETアプリケーション内でPDFドキュメントを作成および操作できるC#クラスライブラリです。 APIを使用すると、基本的なPDF自動化操作と高度なPDF自動化操作を非常に簡単に実行できます。このAPIを使用して、PDFファイルのサムネイルを生成します。 APIは、DLLとしてダウンロードするか、NuGetを介してインストールできます。

PM> Install-Package Aspose.Pdf

C#.NETでPDFファイルのサムネイルを生成する

通常、PDFドキュメントのサムネイル画像を1つ生成する必要があります。サムネイルのページは、カバーページまたは任意の他のページにすることができます。以下は、C#でPDFの目的のページのサムネイルを生成する手順です。

  • Documentクラスを使用してPDFファイルをロードします。
  • Document.Pagesコレクションから目的のページの参照を取得します。
  • 画像ファイル用に新しいFileStreamを作成します。
  • Resolutionクラスのインスタンスを作成して、サムネイル画像の解像度を設定します。
  • JpegDeviceをインスタンス化し、画像の高さ、幅、解像度、品質を設定します。
  • JpegDevice.Process(Page、FileStream)メソッドを使用してサムネイルを生成します。
  • ファイルストリームを閉じます。

次のコードサンプルは、C#でPDFファイルのサムネイルを生成する方法を示しています。

// ドキュメントを開く
Document pdfDocument = new Document("file.pdf");

int pageIndex = 0;

// コレクションから目的のインデックスのページを取得します
var page = pdfDocument.Pages[pageIndex];

// 画像ファイルのストリームを作成する
using (FileStream imageStream = new FileStream("Thumbanils_" + page.Number + ".jpg", FileMode.Create))
{
    // 解決オブジェクトの作成
    Resolution resolution = new Resolution(300);

    // JpegDeviceのインスタンスを作成し、画像の高さ、幅、解像度、品質を設定します
    JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);

    // 特定のページを変換し、画像を保存してストリーミングする
    jpegDevice.Process(page, imageStream);

    // ストリームを閉じる
    imageStream.Close();
}

C#でPDFのすべてのページのサムネイルを生成する

以下は、C#でPDFのすべてのページのサムネイルを生成する手順です。

  • Documentクラスを使用してPDFファイルをロードします。
  • Document.Pagesコレクションを使用して、PDFのすべてのページをループします。
  • 各反復で、次の操作を実行します。
    • 画像ファイル用に新しいFileStreamを作成します。
    • Resolutionクラスのインスタンスを作成して、サムネイル画像の解像度を設定します。
    • JpegDeviceをインスタンス化し、画像の高さ、幅、解像度、品質を設定します。
    • JpegDevice.Process(Page、FileStream)メソッドを使用してサムネイルを生成します。
    • ファイルストリームを閉じます。

次のコードサンプルは、PDFのすべてのページのサムネイルを生成する方法を示しています。

// ドキュメントを開く
Document pdfDocument = new Document("file.pdf");

// ページをループする
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
    // 画像ごとにストリームを作成する
    using (FileStream imageStream = new FileStream("Thumbanils_" + pageCount + ".jpg", FileMode.Create))
    {
        // 解決オブジェクトの作成
        Resolution resolution = new Resolution(300);

        // JpegDeviceのインスタンスを作成し、画像の高さ、幅、解像度、品質を設定します
        JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);

        // 特定のページを変換し、画像を保存してストリーミングする
        jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);

        // ストリームを閉じる
        imageStream.Close();
    }
}

無料ライセンスを取得する

評価の制限なしにAspose.PDF for .NETを使用するには、無料の一時ライセンスを取得できます。

結論

この記事では、C#でPDFファイルのサムネイルを生成する方法を学びました。特定のページまたはPDFファイル内のすべてのページのサムネイルを生成する方法を見てきました。さらに、ドキュメントを使用して、C#PDFAPIの詳細を調べることができます。ご不明な点やご質問がございましたら、フォーラムからお問い合わせください。

関連項目