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();
}
