C#でPDFファイルを画像に変換

Aimen Fatima 2023年10月12日
  1. PDFから画像へのコンバーター
  2. PDFium パッケージを使用して C# で PDF ファイルを画像に変換する
  3. Syncfusion パッケージを使用して C# で PDF ファイルを画像に変換する
  4. PDFRasterizer を使用して C# で PDF ファイルを画像に変換する
C#でPDFファイルを画像に変換

この記事では、C# での PDF ファイルの画像への変換について説明します。

PDFファイルを画像に変換する2つの方法を探ります。 詳しく説明するために、C# プロジェクトを段階的に作成し、すべてのコード スニペットを提供します。

PDFから画像へのコンバーター

C# を使用して PDF ファイルを画像に変換する方法は複数あります。 サードパーティのアセンブリを使用して、コンバーターを作成したり、独自のコンバーターを作成したりできます。

2つの異なるアセンブリを使用して、PDF ファイルを画像に変換するコンバーターを作成します。 これらは:

  1. PDFium
  2. シンクロフュージョン

これら 2つの NuGet パッケージは、nuget.org からプロジェクトにインストールできます。 これらのパッケージを段階的にインストールするための C# プロジェクトとガイドを作成しましょう。

PDFium パッケージを使用して C# で PDF ファイルを画像に変換する

  • Visual Studio で コンソール アプリケーション を作成します。 これらのパッケージをインストールして操作するには、Visual Studio 2019 以降をお勧めします。

    プロジェクトの作成

  • Project タブをクリックして Manage NuGet Packages を選択するか、Tools タブをクリックして NuGet Package Manager を選択し、Manage NuGet Packages for Solution を選択します。

    NuGet パッケージ

    NuGet パッケージ 2

  • Browse タブを選択し、Package Sourcenuget.org に設定します。
  • Package Source ウィンドウに nuget.org が見つからないとします。 設定タブをクリックして追加します。 + アイコンをクリックして、画像に表示されている名前とソースを入力します。

    NuGet設定

  • 検索バーにPDFiumと入力します。 PdfiumViewer、PdfiumViewer.Native.x86.v8-xfa、および PDFium.x86 をインストールします。

    PDFium 検索

    PDFiumパッケージ

  • これらのパッケージをインストールすると、PdfiumViewer への参照が参照ウィンドウで利用できるようになります。 プロジェクト ディレクトリに Samples という名前のフォルダーを作成し、変換する PDF ファイルをこのフォルダーに配置します。

    参照ウィンドウ

  • System.Drawing への参照を追加して、このアセンブリをプロジェクトにインポートします。 Solution Explorer ウィンドウの References タブを右クリックし、Add Reference を選択し、Framework に移動して、System.Drawing を選択します。

    参照を追加

    システム図

  • Program.cs ファイルに次のコード スニペットを追加します。 要件に応じて、入力および出力ファイル名をカスタマイズできます。
  • このコード スニペットは、単一ページと複数ページのドキュメントを変換します。 コードを実行した後、PDF ファイルは画像に変換されます (各 PDF ファイル ページは画像として)。
    using PdfiumViewer;
    using System;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Linq;
    
    namespace PdfToImage {
      class Program {
        static void Main(string[] args) {
          var projectDirectory = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;
    
          try {
            using (var document = PdfDocument.Load(projectDirectory + @"\Samples\document.pdf")) {
              var pageCount = document.PageCount;
    
              for (int i = 0; i < pageCount; i++) {
                var dpi = 300;
    
                using (var image = document.Render(i, dpi, dpi, PdfRenderFlags.CorrectFromDpi)) {
                  var encoder =
                      ImageCodecInfo.GetImageEncoders().First(c => c.FormatID == ImageFormat.Jpeg.Guid);
                  var encoderParams = new EncoderParameters(1);
                  encoderParams.Param[0] =
                      new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
    
                  image.Save(projectDirectory + @"\Samples\image_" + i + ".jpg", encoder,
                             encoderParams);
                }
              }
            }
          } catch (Exception ex) {
            Console.WriteLine(ex.Message);
          }
    
          Console.WriteLine("Pdf converted to images. Press any key to exit...");
          Console.ReadKey();
        }
      }
    }
    
  • DLL 'pdfium.dll' に 'FPDF_AddRef' という名前のエントリ ポイントが見つかりませんという例外が発生した場合は、ビルド設定でターゲット プラットフォームを変更する必要があります。
  • Build タブに移動し、システムに応じてプラットフォーム ターゲット (x86 または x64) を選択します。 Build の下にプラットフォーム ターゲットが見つからない場合は、Project タブを選択し、プロジェクト プロパティを選択して、Build の下でプラットフォーム ターゲットを見つけます。

    プロジェクトのプロパティ

    ビルドタブ

Syncfusion パッケージを使用して C# で PDF ファイルを画像に変換する

  • 上記の手順 1 に従って、Visual Studio 2019 以降のバージョンで コンソール アプリケーション を作成します。
  • 上記のセクションで説明した手順 2 と 3 に従って、NuGet.org から Syncfusion パッケージを参照します。
  • Syncfusion.pdfViewer.Windows パッケージを検索してインストールします。

    Syncfusion パッケージ

  • 上記の手順 6 に従って、System.DrawingSystem.Windows.Forms への参照を追加します。

    リファレンス - システム図面とシステム Windows フォーム

  • 次のコード スニペットを Program.cs ファイルにコピーして、PDF ファイルの 1 ページを画像に変換します。 for ループを使用して、複数ページの変換用にカスタマイズできます。
  • 必要に応じて、入力ファイル名と出力ファイル名をカスタマイズします。 ExportAsImage() メソッドで適切なパラメーターを渡すことにより、変換する特定のページを選択できます。
    using Syncfusion.Pdf.Parsing;
    using Syncfusion.Windows.Forms.PdfViewer;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace PDFToJPEG {
      class Program {
        static void Main(string[] args) {
          // Initialize the PdfViewer Control
          PdfViewerControl pdfViewer = new PdfViewerControl();
    
          // Load the input PDF file
          PdfLoadedDocument document = new PdfLoadedDocument("../../Data/document.pdf");
    
          pdfViewer.Load(document);
    
          Bitmap image = pdfViewer.ExportAsImage(0);
    
          // Save the image.
          image.Save("output.jpg", ImageFormat.Jpeg);
        }
      }
    }
    

    プロジェクト ディレクトリ ->bin ->Debug に移動して、出力イメージ ファイルを見つけます。

PDFRasterizer を使用して C# で PDF ファイルを画像に変換する

PDFRasterizer は、PDF ファイルを C# で開発された画像に変換するツールです。 Windows フォームを使用した GUI を提供します。

ソースコードをダウンロードして、エラーなく使用できます。 PDFRasterizer に移動してコンポーネントをダウンロードします。

関連記事 - Csharp PDF

関連記事 - Csharp Image