图像打印,另一进程正在使用文件

时间:2019-03-24 22:18:17

标签: c#

当我单击打印按钮时,该程序将图像保存为某个文件名。然后,程序将获取文件并进行打印。但是,当我第二次执行此操作时,即使已完成打印,该文件也正在被另一个进程使用。在再次按下打印按钮之前,有什么办法可以关闭文件?

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    string pathImage = Environment.CurrentDirectory + "\\chart1.png";
    chart1.SaveImage(pathImage, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);
    Image newImage = Image.FromFile(pathImage);
    Point ulCorner = new Point(50, 425);
    e.Graphics.DrawImage(newImage, ulCorner);
}

private void button4_Click(object sender, EventArgs e)
{        
    if (printPreviewDialog1.ShowDialog() == DialogResult.OK)
    {
        printDocument1.Print();
    }
}

1 个答案:

答案 0 :(得分:1)

可能是因为您没有释放图像:

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    string pathImage = Environment.CurrentDirectory + "\\chart1.png";
    chart1.SaveImage(pathImage, System.Windows.Forms.DataVisualization.Charting.ChartImageFormat.Png);
    using (var newImage = Image.FromFile(pathImage))
    {
        Point ulCorner = new Point(50, 425);
        e.Graphics.DrawImage(newImage, ulCorner);
    }
}

请记住,ImageIDisposable