C# 如何将PictureBox.Image导入PrintPreviewDialog?
我一直在这里寻找答案,但我找到的只是如何打印图像,而不是如何将图像放入printPreviewDialog。它应该足够简单:C# 如何将PictureBox.Image导入PrintPreviewDialog?,c#,picturebox,print-preview,C#,Picturebox,Print Preview,我一直在这里寻找答案,但我找到的只是如何打印图像,而不是如何将图像放入printPreviewDialog。它应该足够简单: private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e) { printPreviewDialog1.Document = pictureBoxMain.Image; printPreviewDialog1.ShowDialog
private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e)
{
printPreviewDialog1.Document = pictureBoxMain.Image;
printPreviewDialog1.ShowDialog();
}
然而,我得到了错误
无法隐式转换类型
“System.Drawing.Image”到“System.Drawing.Printing.PrintDocument”
没有处理此转换的内置转换。那么,如何从pictureBox中进行简单的打印预览呢
编辑:好的,打印预览正在工作。打印不起作用。我关心的一个问题是,我在“打印”对话框中没有“确定”选项,我有“应用”、“取消”和“打印”。Visual Studio将不接受DialogResult。打印为可接受的响应编译器错误。这是我目前的代码,欢迎推荐,我显然不太明白这一点。谢谢
//Working now
private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e)
{
printDocument1.DocumentName = pictureBoxMain.Image.ToString();
printDialog1.Document = printDocument1;
printPreviewDialog1.Document = printDialog1.Document;
printPreviewDialog1.ShowDialog();
}
//Not printing
private void printToolStripMenuItem1_Click(object sender, EventArgs e)
{
printDocument1.OriginAtMargins = true;
printDocument1.DocumentName = pictureBoxMain.Image.ToString();
if (printDialog1.ShowDialog() == DialogResult.OK)
printDialog1.Document = printDocument1;
}
//If this is needed, I cannot find a way to call this from within the print menu click event without generating an error, EventArgs e does not get along with PrintPageEventArgs e.
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(pictureBoxMain.Image, 0, 0);
}
编辑:我尝试进行以下更改以测试问题是否是缺少OK按钮。它仍然没有打印出来。所以我不认为缺少OK按钮是问题所在
if (printDialog1.ShowDialog() != DialogResult.Cancel)
printDialog1.Document = printDocument1;
谢谢预览只是:打印页面的预览。因此,您需要对printPage事件进行编码。在这里,您可以使用picturebox中的图像制作drawimage。。或者换句话说:获得预览并不比真正的打印“简单”,它是完全相同的代码!好的,我会用printDialog打印页面,谢谢。但是如何将drawimage从该方法获取到printPreviewDialog方法中呢?预览将使用printpage事件创建预览。