工具类创建,可以直接复制粘贴
/// <summary>
/// 获取图片打印图片
/// </summary>
public class PrintImage
{
PrintDocument _document = new PrintDocument();
public PrintDocument Document
{
get { return _document; }
set { _document = value; }
}
List<Image> _lstImage = new List<Image>();
/// <summary>
/// 普通集合
/// </summary>
public List<Image> LstImage
{
get { return _lstImage; }
set { _lstImage = value; }
}
/// <summary>
/// 设置双面打印
/// </summary>
public Duplex Duplex
{
set
{
if (this.Document != null)
Document.PrinterSettings.Duplex = value;
}
get
{
if (this.Document != null)
return Document.PrinterSettings.Duplex;
return default(Duplex);
}
}
public PrintImage()
{
_document.PrintPage += new PrintPageEventHandler(_document_PrintPage);
}
/// <summary>
///
/// </summary>
/// <param name="imgs"></param>
public void LoadData(params Image[] imgs)
{
foreach (var item in imgs)
{
_lstImage.Add(item);
}
}
int _pageNum = 1;//初始页面数
void _document_PrintPage(object sender, PrintPageEventArgs e)
{
var item = _lstImage[_pageNum - 1];
Rectangle destRect = new Rectangle(0, 100, item.Width, item.Height);
e.Graphics.DrawImage(item, destRect, 0, 0, item.Width, item.Height, System.Drawing.GraphicsUnit.Pixel);
if (_pageNum < _lstImage.Count)
{
e.HasMorePages = true;//每张图片都换页打印
_pageNum++;
}
}
/// <summary>
/// 打印
/// </summary>
public void Print()
{
Document.Print();
}
}
调用类的方式:
//调用方式
public static void Test()
{
PrintImage printImage = new PrintImage();
printImage.Duplex = Duplex.Vertical;//双面打印设置
var img1 = Image.FromFile("1.jpg");
var img2 = Image.FromFile("2.jpg");
printImage.LoadData(img1, img2);//增加两张图片
printImage.Print();//直接打印
}
PrintDocument双面打印打印,每张图片都是分页打印。