【C#】PDFファイルから画像ファイルを作成する。

PDFiumというPDFレンダリングエンジンを使用してPDFを画像ファイル(.tif)に変換します。

必要なパッケージ

まずNuGetから以下二つをインストールしてください。
・PdfiumViewer
・PdfiumViewer.Native.x86.v8-xfa

変換する関数

変更処理をして成否(true/false)を返す関数です。

private bool Conv_pdf_to_tif(string _filePath, string _filePath_tif = "")
{
    // PDFファイルパスと出力する画像ファイルパスを作成
    string inputPath = @_filePath;
    string outputPath = "";
    if (_filePath_tif == "")
    {
        outputPath = @_filePath + ".tif";
    }
    else
    {
        outputPath = @_filePath_tif;
    }

    try
    {
        // PDFをロード
        PdfiumViewer.PdfDocument document = PdfiumViewer.PdfDocument.Load(inputPath);

        //PDFから画像データを作成
        var image = document.Render(0, 600, 600, PdfiumViewer.PdfRenderFlags.CorrectFromDpi);

        //画像をセーブ
        image.Save(outputPath, ImageFormat.Tiff);

        return true;

    }
    catch (Exception ex)
    {
        return false;
    }
}

説明

第一引数に変更元となるPDFファイルのフルパスを指定します。第二引数は作成したtifファイルを任意の場所・名前で保存したいときにフルパスで指定してください。指定しない場合はPDFファイルと同じフォルダに「PDFファイル名 + “.tif"」で作成します。

document.Render関数は引数違いで色々ありますので、必要に応じて変更してください。

第四引数にPdfiumViewer.PdfRenderFlags.CorrectFromDpiを指定すると等倍のサイズで画像が作成される様です。

最後に

この関数はFax送信プログラム作成の過程で開発したものです。Fax送信するためにはファイルサイズの関係でPDFファイルじゃダメなんですね。思ってるより手間がかかりました。

ほな、また

参考

CAD日記 PDFium ViewerによるPDFレンダリングがイケてる
テックメモ C# PDFiumでPDFを読み込む