0

確かにフォーム全体が必要だったので、フォームのスクリーンショットで印刷オプションを作成します。印刷に追加の印刷ダイアログ ボックスが表示されます。

ここにコードがあります、

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e){
  var scr = Screen.FromPoint(this.Location);
        using (var bmp = new Bitmap(scr.WorkingArea.Width, scr.WorkingArea.Height))
        {
            using (var gr = Graphics.FromImage(bmp))
            {
                gr.CopyFromScreen(new Point(scr.WorkingArea.Left, scr.WorkingArea.Top), Point.Empty, bmp.Size);
            }
            // Determine scaling
            float scale = 1.0f;
            scale = Math.Min(scale, (float)e.MarginBounds.Width / bmp.Width);
            scale = Math.Min(scale, (float)e.MarginBounds.Height / bmp.Height);
            // Set scaling and offset
            e.Graphics.TranslateTransform(e.MarginBounds.Left + (e.MarginBounds.Width - bmp.Width * scale) / 2,
                                          e.MarginBounds.Top + (e.MarginBounds.Height - bmp.Height * scale) / 2);
            e.Graphics.ScaleTransform(scale, scale);
            // And draw
            e.Graphics.DrawImage(bmp, 0, 0);

}

以下に示すようなダイアログボックスが表示されます。 問題領域

この問題で私を助けてください...前もって感謝します...

4

1 に答える 1

2

printDocument1.PrintController = new StandardPrintController()呼び出す前に追加するprintDocument1.Print()デフォルトでは、 を使用すると思いますPrintControllerWithStatusDialog

于 2013-05-20T12:32:30.093 に答える