0

以下のコードでビットマップを印刷しようとしていますが、機能しません。どうしてか分かりません....

   private void btnImprimir_Click(object sender, EventArgs e)
    {
        PrintDocument pd = new PrintDocument();
        pd.PrintPage += PrintPage;
        pd.Print(); 
    }

    private void PrintPage(object o, PrintPageEventArgs e)
    {
        button1.Visible = false;
        button2.Visible = false;
        button3.Visible = false;
        button4.Visible = false;
        Bitmap bitmap = new Bitmap(this.Width, this.Height);
        this.DrawToBitmap(bitmap, this.ClientRectangle);
        Point loc = new Point(this.Width, this.Height);
        e.Graphics.DrawImage(bitmap, loc);
        button1.Visible = true;
        button2.Visible = true;
        button3.Visible = true;
        button4.Visible = true;
    }
4

2 に答える 2

3

このように使用する

Image bmIm;
private void PrintImage(Image img)
{
  bmIm = img;
  PrintDocument pd = new PrintDocument();
  pd.OriginAtMargins = true;
  pd.DefaultPageSettings.Landscape = true;
  pd.PrintPage += pd_PrintPage;
  pd.Print();
}
void pd_PrintPage(object sender, PrintPageEventArgs e)
{
  double cmToUnits = 100 / 2.54;
  e.Graphics.DrawImage(bmIm, 0, 0,(float)(27 * cmToUnits),(float)(18 * cmToUnits));
}
于 2013-01-14T14:00:37.063 に答える
1

イベントが適切に接続されていないようです(コードが欠落している場合を除く)。

pd.PrintPage += this.PrintPage;

コードサンプルにないものを割り当てようとしてpd_PrintPageいたので、何をするのかわかりません。

于 2013-01-14T14:39:11.193 に答える