読者です 読者をやめる 読者になる 読者になる

MuPDF conveter(MuPDFLib)でPDFを画像に変換してみる

.NET MuPDF

MuPDFという軽量なPDFレンダラの.NETバインディングMuPDF conveter(MuPDFLib)を使ってみた。簡単にPDFをWPFで表示できたりする。地味に32bit/64bit両対応しているのも良い。

MuPDFのソースなりドキュメントを読まないとパラメータの意味がわからない部分があるのだけど、以下のコードで動作することを確認した。

var pdfPath = "test.pdf";
var pdfPassword = String.Empty; //無指定の場合はパスワードなし
var width = 0; //0の場合はauto(リサイズしない)
var height = 0;
var dpiX = 96.0f;
var dpiY = 96.0f;
var rotation = 0;
var renderType = MuPDFLib.RenderType.RGB;
var rotateLandscape = false; //よくわからない
var convertToLetter = false; //よくわからない
var maxPixels = 0;           //よくわからない

using (var pdf = new MuPDFLib.MuPDF(pdfPath, pdfPassword))
{
    pdf.Page = 1; //1-origin, 明示的に指定しないとコケる
    pdf.AntiAlias = true; //アンチエイリアス有効

    // WPFのImageにそのまま食わせる
    imageView.Source = pdf.GetBitmapSource(
                            width,
                            height,
                            dpiX, 
                            dpiY, 
                            rotation,
                            renderType, 
                            rotateLandscape, 
                            convertToLetter, 
                            maxPixels);
}