Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#打印图像不';行不通_C#_Visual Studio - Fatal编程技术网

C#打印图像不';行不通

C#打印图像不';行不通,c#,visual-studio,C#,Visual Studio,我正在尝试用下面的代码打印位图,但它不起作用。我不知道为什么 private void btnImprimir_Click(object sender, EventArgs e) { PrintDocument pd = new PrintDocument(); pd.PrintPage += PrintPage; pd.Print(); } private void PrintPage(object o, Pri

我正在尝试用下面的代码打印位图,但它不起作用。我不知道为什么

   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;
    }
这样

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));
}
这样

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

看起来您的事件没有正确连接(除非我们缺少一些代码):


您试图分配的
pd\u PrintPage
不在您的代码示例中,因此我不知道它应该做什么。

看起来您的事件没有正确连接(除非我们缺少一些代码):



您试图分配的
pd\u PrintPage
不在您的代码示例中,因此我不知道它应该做什么。

1。你说它不起作用是什么意思?(它不打印,它打印的是空白页吗?)。您是否尝试将位图保存到磁盘并查看它?我已经编辑了我的问题并删除了注释1。你说它不起作用是什么意思?(它不打印,它打印的是空白页吗?)。您是否尝试将位图保存到磁盘并查看它?我已经编辑了我的问题并删除了评论。我想您忘记添加事件连接:
pd.PrintPage+=pd\u PrintPage@Cyborgx37我收到此错误:事件“System.Drawing.Printing.PrintDocument.PrintPage”只能出现在+=或-=@Cyborgx37为什么pd_PrintPage脱离上下文的左侧?@illDev-您是否将PrintPage函数重命名为pd_PrintPage?是!Thx很多..现在编译但是pd.Print()再次出错…因为这台计算机上没有安装打印机…Thx很多!我想您忘记添加事件连接:
pd.PrintPage+=pd\u PrintPage@Cyborgx37我收到此错误:事件“System.Drawing.Printing.PrintDocument.PrintPage”只能出现在+=或-=@Cyborgx37为什么pd_PrintPage脱离上下文的左侧?@illDev-您是否将PrintPage函数重命名为pd_PrintPage?是!Thx很多..现在编译但是pd.Print()再次出错…因为这台计算机上没有安装打印机…Thx很多!函数名与OP的原始问题匹配。我相信OP修改这个问题是为了匹配其他答案之一。不知道为什么这个答案被接受。最后,OP说问题是因为“这台计算机上没有安装打印机”(参见评论)@Cyborgx37是的,我没有看到完整的历史记录。谢谢。函数名与OP的原始问题匹配。我相信OP修改这个问题是为了匹配其他答案之一。不知道为什么这个答案被接受。最后,OP说问题是因为“这台计算机上没有安装打印机”(参见评论)@Cyborgx37是的,我没有看到完整的历史记录。谢谢