1

これが私の印刷用コードです。印刷をクリックすると、ダイアログが表示されます。[OK] をクリックすると、キャプチャ画面が開始されます。Bitmap memoryImage は、現在表示されているフォームのビットマップになります。それが正しいことを確認し、画像が正常にキャプチャされました。

最後に printDocument.Print() が実行されます。空白の 1 ページのみを印刷します。e.Graphics.Color(Gray); に変更してみました。それでも、空白のページしか印刷されません。

明らかにプリンターとの通信は問題ありません。私の推測では、画像が添付される前にページが実際に印刷されますが、以前に印刷用にコーディングされたことがないため、コードを再配置する方法がわかりません。

System.Drawing.Printing を使用します。

// 印刷ダイアログを表示 (うまくいきます)

    private void button2_Click(object sender, EventArgs e)
    {         
        PrintDialog printDialog1 = new PrintDialog();
        printDialog1.Document = printDocument1;
        DialogResult result = printDialog1.ShowDialog();
        if (result == DialogResult.OK)
        {
            CaptureScreen();
            printDocument1.Print();
            //this.Close();
        }
    }

    Bitmap memoryImage;

//キャプチャ画面 (同様に機能します)

    private void CaptureScreen()
    {
        Graphics myGraphics = this.CreateGraphics();
        Size s = this.Size;
        memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
        Graphics memoryGraphics = Graphics.FromImage(memoryImage);
        memoryGraphics.CopyFromScreen(
            this.Location.X, this.Location.Y, 0, 0, s);
    }

// キャプチャした画面から画像を描画します (動作しません)

    private void printDocument1_PrintPage(System.Object sender,
           System.Drawing.Printing.PrintPageEventArgs e)
    {
        e.Graphics.DrawImage(memoryImage, 0, 0);
    }
4

0 に答える 0