157 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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;
 | |
| using Volian.Base.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 DateTime _TimerStart;
 | |
| 		public DateTime TimerStart
 | |
| 		{
 | |
| 			get { return _TimerStart; }
 | |
| 			set { _TimerStart = value; }
 | |
| 		}
 | |
| 		private string _ProcedureNumber;
 | |
| 		public string ProcedureNumber
 | |
| 		{
 | |
| 			get { return _ProcedureNumber; }
 | |
| 			set { _ProcedureNumber = value; }
 | |
| 		}
 | |
| 		public string MyTimerStatus
 | |
| 		{
 | |
| 			get { return tsslStatus.Text; }
 | |
| 			set { 
 | |
| 				TimeSpan ts = DateTime.Now - _TimerStart;
 | |
| 				DateTime dt = new DateTime(ts.Ticks);
 | |
| 				tsslStatus.Text = string.Format("{0:HH:mm:ss.fff} {1} {2}",dt,ProcedureNumber,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()
 | |
| 		{
 | |
| 			TimerStart = DateTime.Now;
 | |
| 			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)
 | |
| 		{
 | |
| 			// set up for using format default change bars.
 | |
| 			ChangeBarDefinition cbd = new ChangeBarDefinition();
 | |
| 			ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData;
 | |
| 			cbd.MyChangeBarType = PrintChangeBar.WithDefault;
 | |
| 			cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID :
 | |
| 				changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID :
 | |
| 				changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None :
 | |
| 				changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef;
 | |
| 			PromsPrinter pp = new PromsPrinter(myProcedure, tbRev.Text, cbWatermark.Text, cbDebugOutput.Checked, false, @"C:\TEMP\32Bit\Compare", openPdf, true, cbd,
 | |
| 				myProcedure.DisplayNumber.Replace('/','_').Replace('\\','_'),false);
 | |
| 			pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged);
 | |
| 			_ElapsedTime = new Dictionary<PromsPrinterStatusType, TimeSpan>();
 | |
| 			DateTime tStart = DateTime.Now;
 | |
| 			string pdfFile = pp.Print(@"C:\TEMP\32Bit");
 | |
| 			DateTime tEnd = DateTime.Now;
 | |
| 			_ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart);
 | |
| 			MyTimerStatus = 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<PromsPrinterStatusType, TimeSpan> _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)
 | |
| 		{
 | |
| 			TimerStart = DateTime.Now;
 | |
| 			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;
 | |
| 			tspbStatus.Maximum = myItems.Count;
 | |
| 			tspbStatus.Value = 0;
 | |
| 			tspbStatus.Visible = true;
 | |
| 			foreach (ItemInfo myItem in myItems)
 | |
| 			{
 | |
| 				ProcedureNumber = myItem.DisplayNumber;
 | |
| 				if (tspbStatus != null) tspbStatus.Value++;
 | |
| 				CreatePDF(myItem.MyProcedure, false);
 | |
| 			}
 | |
| 			ProcedureNumber = "";
 | |
| 			MyTimerStatus = "Processing Complete";
 | |
| 			tspbStatus.Visible = false;
 | |
| 			this.Cursor = saveCursor;
 | |
| 		}
 | |
| 	}
 | |
| }
 |