🦔

.NETでPDF⇒JPEG変換をベンチマークしてみた

2023/12/06に公開

はじめに

PDFをレンダリングしてJPEGファイルに変換する処理を、下記のライブラリーを利用して評価してみました。基本的に配布ライセンスの必要ないライブラリで、日本で入手しやすいものをいくつかピックアップしました。

ライブラリ ライセンス 非Windows サイズ
Aspose.PDF 有償 47,364[KB]
Cube.Pdf.Pdfium 無償 4,691[KB]
PDFtoImage 無償 31,398[KB]
Windows.Data.Pdf 無償 7,164[KB]
Xfinium.Pdf 有償 7,150[KB]

Cube.Pdf.PdfiumとWindows.Data.Pdfについては、Xで情報提供いただきました。ご協力ありがとうございました!

Windows.Data.Pdfは、本来UWP用のライブラリですが、Windows10以降であれば実は利用する方法があります。詳細は下記の記事をご覧ください。

なおWindows.Data.Pdfのサイズは.NET Framwwork時のサイズで.NET 6.0+の場合は0になります。

環境・評価条件

BenchmarkDotNet v0.13.10, Windows 11 (10.0.22621.2715/22H2/2022Update/SunValley2)
13th Gen Intel Core i9-13900H, 1 CPU, 20 logical and 14 physical cores
.NET SDK 8.0.100
  [Host]   : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2 [AttachedDebugger]
  ShortRun : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX2

Job=ShortRun  IterationCount=3  LaunchCount=1  
WarmupCount=3  

重たい処理で誤差が小さいのでShortRunにしています。

評価コード

下記を参照。

計測結果

Cube.Pdf.Pdfiumが消費メモリーや配布モジュールのサイズではとくに優秀でした。処理速度も十分でており、とても魅力的です。

単純な処理速度ではWindows.Data.Pdfがもっとも早く、消費メモリーや配布サイズも優秀です。

非Windows環境ではAspose.PDFが優秀なのですが、ちょっと高めです。国内だとXlsoftさんが代理店になっていて、ライセンス費用は下記のリンク先にあります。

これらを踏まえて、環境やお財布などで判断して選定するのが良さそうです。

Discussion