1

ページに完全に収まるようにファイルから画像を印刷したい。

私が今までコーディングできたのはこれだけです:

    private void button_print_Click(object sender, EventArgs e)
    {
        if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            printDocument1.PrinterSettings = printDialog1.PrinterSettings;
            printDocument1.PrintPage += PrintPage;
            printDocument1.Print();          
        }
    }

    private void PrintPage(object o, PrintPageEventArgs e)
    {
        System.Drawing.Image img = imgOriginal;
        Point loc = new Point(0, 24);
        e.Graphics.DrawImage(img, loc);

    }

ここでの問題は、画像が大きすぎてページに完全に収まらないことです。私に何ができる?私がグーグルで見つけたすべてのスレッドと質問は、それほど有望ではありません。

何か案は?

前もって感謝します

マルコ・フロスト

4

1 に答える 1

1
private void PrintPage(object o, PrintPageEventArgs e)
{
  string filepath = "D:\\patient images\\" + txtPatCode.Text + "\\" + lstImages.SelectedItems[0].Text;
  System.Drawing.Image img = Image.FromFile(filepath);
  ResizeImage(img, 200);
  Point loc = new Point(200, 200);
  e.Graphics.DrawImage(img, loc);           
}

public static Image ResizeImage(Image img, int minsize)
{
  var size = img.Size;
  if (size.Width >= size.Height)
  {
    // Could be: if (size.Height < minsize) size.Height = minsize;
    size.Height = minsize;
    size.Width = (size.Height * img.Width + img.Height - 1) / img.Height;
  }
  else
  {
    size.Width = minsize;
    size.Height = (size.Width * img.Height + img.Width - 1) / img.Width;
  }
  return new Bitmap(img, size);
}
于 2013-11-14T21:56:52.567 に答える