逐个打印图像C#
本文关键字:图像 打印 | 更新日期: 2023-09-27 18:28:54
我已经编写了以下代码来从文件夹中获取所有图像。
以下是代码
string[] files = Directory.GetFiles(@"C:'temp", "*.jpeg");
我在文件中得到了所有的图像名称。现在我想逐一打印所有图像。我尝试了低于代码
foreach (var i in files)
{
objPrintImage = Image.FromFile(i);
objDimension = new FrameDimension(new System.Guid());
PrintDocument objPrintDoc = new PrintDocument();
objPrintDoc.PrintPage += new PrintPageEventHandler(this.objPrintDoc_PrintPage);
if (objPrintDoc.PrinterSettings.IsValid)
objPrintDoc.Print();
}
但是获取错误GDI+中发生了一个通用错误
Image实现IDisposable,因此您必须处理您的图像
foreach (var i in files)
{
using(var objPrintImage = Image.FromFile(i))
{
objDimension = new FrameDimension(new System.Guid());
PrintDocument objPrintDoc = new PrintDocument();
objPrintDoc.PrintPage += new PrintPageEventHandler(this.objPrintDoc_PrintPage);
if (objPrintDoc.PrinterSettings.IsValid)
{
objPrintDoc.Print();
}
}
}
编辑-刚刚注意到你在这个例子中甚至没有使用这个图像?
public abstract class Image : MarshalByRefObject,
ISerializable, ICloneable, IDisposable
这对我有效,不会抛出异常,并且打印开始:
我保存到jpg文件,而不是jpeg,首先是这个:铅笔
我认为问题出在你的图像文件上。
var files = Directory.GetFiles(@"C:'temp'", "*.jpg");
foreach (var i in files)
{
var objPrintDoc = new PrintDocument();
objPrintDoc.PrintPage += (obj, eve) =>
{
System.Drawing.Image img = System.Drawing.Image.FromFile(i);
Point loc = new Point(100, 100);
eve.Graphics.DrawImage(img, loc);
};
objPrintDoc.Print();
}