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是的,我没有看到完整的历史记录。谢谢