見出し画像

PDFium で PDF を読む(64bit)

#VisualStudio #VisualStudio2019 #プログラミング

目的

前回と、目的は、ほぼ同じです。「Window10 上で Visual Studio 2019 を用いて、実際に動くデスクトップ・アプリケーションを作成します。具体的には、PDF ファイルを読み込み、一部のページをまるごと画像化し、その画像をアプリケーションの表面に画像として表示します。PDF ファイルを読み込むために、Google が提供している NuGet の PDFium というライブラリを使用するので、設定の仕方などをメモします。」

ただし、今回は、「64bitで動かすにはどうすればよいのか」が主題です。

64bit 用のライブラリを使用する

NuGet で使用するライブラリが 64bit 用になります。

画像1

画像2


画像4

プログラム

プログラムは変更ありません。

using PdfiumViewer;
using System.Drawing;
using System.Windows.Forms;

namespace _20200922
{
   public partial class Form1 : Form
   {
       readonly int resolution = 150;
       public Form1()
       {
           InitializeComponent();

           OpenFileDialog ofd = new OpenFileDialog();
           ofd.ShowDialog();
           string ReadFileName = ofd.FileName;
           PdfiumViewer.PdfDocument pdfdoc = PdfDocument.Load(ReadFileName);

           SizeF size = pdfdoc.PageSizes[0];
           int w = (int)size.Width * resolution / 72;
           int h = (int)size.Height * resolution / 72;
           Image image = pdfdoc.Render(0, w, h, resolution, resolution, false);

           this.Size = new Size(1400, 900);
           this.BackColor = Color.Blue;

           PictureBox pBox = new PictureBox();
           this.Controls.Add(pBox);
           pBox.Size = new Size(1350, 850);
           pBox.Image = image;

           image.Save("C:\\hoge\\test64.png", System.Drawing.Imaging.ImageFormat.Png);
       }
   }
}

設定を64ビット用に変える

もしも、設定を変更しないで実行すると、次のようなエラーが発生します。

画像5

これは、Visual Studio の設定が 32bit なのに、64bit のライブラリを使用しようとしているために発生するエラーです。そこで、次のように設定を変更します。

まず、プログラムそのものを停止させます。

画像6

その後、設定を変更します。

画像7

画像8

次のように変更して、

画像9

保存します。

画像10

実行ファイルが違うものになる

使用するライブラリは、「名前は同じなのに、中身が違う」ものになりますので、注意します。

画像11

画像12

64bit の pdfium.dll は、15,437 KB です。ところが、以前、使用した pdfium.dll は、

画像13

上のとおり、13,315 KB で、大きさが異なり、別のファイルです。そこで、以前、使用したものを名前を変えておきます。

画像14

ここに、今回のファイルをコピーします。

画像15

すると、今度は、正常に動きます。

画像16


この記事が気に入ったらサポートをしてみませんか?