using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace PrintSolution { public class XLSPrinter : PrinterBase { private string xlsPath = string.Empty; public string XlsPath { get { return xlsPath; } set { xlsPath = value.Contains(":") ? value : AppDomain.CurrentDomain.BaseDirectory + value; } } private ArrayList paramList = new ArrayList(); public ArrayList ParamList { get { return paramList; } set { paramList = value; } } private PictureInfo picInfo = new PictureInfo(); public PictureInfo PicInfo { get { return picInfo; } set { picInfo = value; } } /// /// 打印方向设置 default0纵向 1横向 /// public int Orientation { get { return base.PageSetup.Orientation; } set { base.PageSetup.Orientation = value; } } /// ///纸张设置 /// public new PageSetup PageSetup { get { return base.PageSetup; } set { base.PageSetup = value; } } public XLSPrinter() { } public XLSPrinter(string xlsPath) { if (!xlsPath.Contains(":")) { xlsPath = AppDomain.CurrentDomain.BaseDirectory + xlsPath; } this.xlsPath = xlsPath; } public XLSPrinter(string xlsPath, ArrayList paramList) { if (!xlsPath.Contains(":")) { xlsPath = AppDomain.CurrentDomain.BaseDirectory + xlsPath; } this.xlsPath = xlsPath; this.paramList = paramList; } public void printExcel() { try { System.Drawing.Printing.PrintDocument printDoc = new System.Drawing.Printing.PrintDocument(); string printerName = printDoc.PrinterSettings.PrinterName; this.printExcel(xlsPath, printerName); } catch (Exception e) { throw e; } } protected override void paintPicByExcel(Microsoft.Office.Interop.Excel._Worksheet ws) { if (!string.IsNullOrEmpty(PicInfo.PicPath)) { Microsoft.Office.Interop.Excel.Pictures pics = (Microsoft.Office.Interop.Excel.Pictures)ws.Pictures(missing); Microsoft.Office.Interop.Excel.Picture pic = pics.Insert(picInfo.PicPath, missing); pic.Left = picInfo.PicLeft; pic.Top = picInfo.PicTop; pic.Width = picInfo.PicWidth; pic.Height = picInfo.PicHeight; } } protected override void paintPicByEt(ET._Worksheet ws) { if (!string.IsNullOrEmpty(PicInfo.PicPath)) { ET.Pictures pics = (ET.Pictures)ws.Pictures(missing); pics.Insert(picInfo.PicPath, missing); } } } }