using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using VEPROMS.CSLA.Library; using System.IO; using Volian.Svg.Library; using Volian.Print.Library; namespace PrintMSWord { public partial class frmPrintMSWord : Form { public frmPrintMSWord() { InitializeComponent(); } public string MyStatus { get { return tsslStatus.Text; } set { tsslStatus.Text = value; Application.DoEvents(); } } private DocVersionInfo GetDocVersionWithContent() { DocVersionInfoList dvList = DocVersionInfoList.Get(); foreach (DocVersionInfo docVersion in dvList) if (docVersion.Procedures != null) if (docVersion.Procedures[0].ItemID != 0) return docVersion; return null; } public ProcedureInfo MyProcedure { get { return lbProcs.SelectedValue as ProcedureInfo; } } private void lbProcs_DoubleClick(object sender, EventArgs e) { CreatePDF(); } private void CreatePDF() { ProcedureInfo myProcedure = MyProcedure; Volian.Print.Library.Rtf2Pdf.PdfDebug = true; tbTimings.Text = ""; Cursor saveCursor = this.Cursor; this.Cursor = Cursors.WaitCursor; //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; CreatePDF(myProcedure,true); this.Cursor = saveCursor; } private void CreatePDF(ProcedureInfo myProcedure, bool openPdf) { PromsPrinter pp = new PromsPrinter(myProcedure, tbRev.Text, tbRevDate.Text, cbWatermark.Text, cbDebugOutput.Checked, @"C:\TEMP\16Bit",openPdf); pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged); _ElapsedTime = new Dictionary(); DateTime tStart = DateTime.Now; string pdfFile = pp.Print(@"C:\TEMP\32Bit"); DateTime tEnd = DateTime.Now; _ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart); MyStatus = pdfFile + " created."; ShowElapsedTime(); MyStatus = string.Format("{0} created in {1:0.} milliseconds", pdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds)); } private void ShowElapsedTime() { foreach (PromsPrinterStatusType type in _ElapsedTime.Keys) tbTimings.Text += "\r\n" + string.Format("'{0}',{1:0.}", type, _ElapsedTime[type].TotalMilliseconds); } private Dictionary _ElapsedTime; private DateTime _LastTime=DateTime.Now; private DateTime _StartTime = DateTime.Now; void pp_StatusChanged(object sender, PromsPrintStatusArgs args) { if (args.Type == PromsPrinterStatusType.Start) _LastTime = _StartTime = args.When; MyStatus = args.MyStatus; TimeSpan delta = TimeSpan.FromTicks(args.When.Ticks - _LastTime.Ticks); if (_ElapsedTime.ContainsKey(args.Type)) _ElapsedTime[args.Type] += delta; else _ElapsedTime.Add(args.Type, delta); //if (tbTimings.Text != "") tbTimings.Text += "\r\n"; //tbTimings.Text += string.Format("{0},{1},'{2}','{3}'", TimeSpan.FromTicks(args.When.Ticks -_StartTime.Ticks).TotalSeconds, delta.TotalMilliseconds, args.Type, args.MyStatus); _LastTime = args.When; } private void pDFToolStripMenuItem_Click(object sender, EventArgs e) { CreatePDF(); } private void frmPrintMSWord_Load(object sender, EventArgs e) { DocVersionInfo dvi = GetDocVersionWithContent(); lbProcs.DataSource = dvi.Procedures; } private void pDFsToolStripMenuItem_Click(object sender, EventArgs e) { Volian.Print.Library.Rtf2Pdf.PdfDebug = true; tbTimings.Text = ""; Cursor saveCursor = this.Cursor; this.Cursor = Cursors.WaitCursor; //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; ItemInfoList myItems = lbProcs.DataSource as ItemInfoList; foreach(ItemInfo myItem in myItems) CreatePDF(myItem.MyProcedure,false); this.Cursor = saveCursor; } } }