PDFフアイルを読み込む 02/08 土
自分用メモです。
// PDFフアイルを読み込む public void T4ReadPDF(ProgressBar T4PG, TextBox T4Tb1, DataTable T4Dt) { string DataPdfFileName; OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = "."; // 初期表示フォルダ ofd.Filter = "PDFファイル|*.pdf"; // ファイルの種類 if (ofd.ShowDialog() == DialogResult.OK) { DataPdfFileName = ofd.FileName; } else { return; } var doc = PdfDocument.Load(DataPdfFileName); int i = 0; foreach (var page in doc.Pages) { i++; } T4PG.Maximum = i--; i = 0; foreach (var page in doc.Pages) { int w = (int)page.Width; int h = (int)page.Height; int nw = 1200; int nh = nw * h / w; int namex = ListWaku[0].ImgRect.X; int namey = ListWaku[0].ImgRect.Y; int namew = ListWaku[0].ImgRect.Width; int nameh = ListWaku[0].ImgRect.Height; Bitmap tmp1 = new Bitmap(nw, nh); Bitmap tmp2 = new Bitmap(namew, nameh); Graphics tmp1g = Graphics.FromImage(tmp1); Graphics tmp2g = Graphics.FromImage(tmp2); // ページを画像の変換し、GD+ を利用して画像化する page.Render(tmp1g, 0, 0, nw, nh, PageRotate.Normal, RenderFlags.FPDF_ANNOT); tmp2g.DrawImage(tmp1, -namex, -namey, nw, nh); tmp1g.Dispose(); tmp2g.Dispose(); T4Dt.Rows[7][i] = tmp2; i++; T4PG.Value = i; } doc.Dispose(); }