From e35448535dd84e8cf4ec565061c44999ff1566df Mon Sep 17 00:00:00 2001 From: John Date: Fri, 23 Jul 2010 16:03:49 +0000 Subject: [PATCH] --- PROMS/Volian.Print.Library/PromsPrinter.cs | 60 +++++++++++++++++----- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/PROMS/Volian.Print.Library/PromsPrinter.cs b/PROMS/Volian.Print.Library/PromsPrinter.cs index 2bf5d230..1189af6b 100644 --- a/PROMS/Volian.Print.Library/PromsPrinter.cs +++ b/PROMS/Volian.Print.Library/PromsPrinter.cs @@ -36,11 +36,24 @@ namespace Volian.Print.Library get { return _Type; } set { _Type = value; } } + private int _Progress = 0; + + public int Progress + { + get { return _Progress; } + set { _Progress = value; } + } public PromsPrintStatusArgs(string myStatus, PromsPrinterStatusType type) { _MyStatus = myStatus; _Type = type; } + public PromsPrintStatusArgs(string myStatus, PromsPrinterStatusType type, int progress) + { + _MyStatus = myStatus; + _Type = type; + _Progress = progress; + } } public enum PromsPrinterStatusType { @@ -65,7 +78,9 @@ namespace Volian.Print.Library SetPageEvent, GetSection, Before, - BuildStep + BuildStep, + Progress, + ProgressSetup } public class PromsPrinter { @@ -79,6 +94,10 @@ namespace Volian.Print.Library { OnStatusChanged(this, new PromsPrintStatusArgs(myStatus, type)); } + private void OnStatusChanged(string myStatus, PromsPrinterStatusType type, int progress) + { + OnStatusChanged(this, new PromsPrintStatusArgs(myStatus, type, progress)); + } private string _Rev; private string _RevDate; private ItemInfo _MyItem; @@ -95,7 +114,14 @@ namespace Volian.Print.Library get { return _BackgroundFolder; } set { _BackgroundFolder = value; } } - public PromsPrinter(ItemInfo myItem, string rev, string revDate, string watermark, bool debugOutput, string backgroundFolder) + private bool _OpenPDF; + + public bool OpenPDF + { + get { return _OpenPDF; } + set { _OpenPDF = value; } + } + public PromsPrinter(ItemInfo myItem, string rev, string revDate, string watermark, bool debugOutput, string backgroundFolder,bool openPDF) { _MyItem = myItem; _Rev = rev; @@ -103,6 +129,7 @@ namespace Volian.Print.Library _Watermark = watermark; _DebugOutput = debugOutput; _BackgroundFolder = backgroundFolder; + _OpenPDF = openPDF; } public string Print(string pdfFolder) { @@ -153,7 +180,8 @@ namespace Volian.Print.Library { cb.PdfDocument.Close(); OnStatusChanged("CloseDocument", PromsPrinterStatusType.CloseDocument); - System.Diagnostics.Process.Start(fileName); + if (OpenPDF) + System.Diagnostics.Process.Start(fileName); OnStatusChanged("OpenPDF", PromsPrinterStatusType.OpenPDF); } @@ -200,8 +228,11 @@ namespace Volian.Print.Library OnStatusChanged("Before NewPage", PromsPrinterStatusType.Before); cb.PdfDocument.NewPage(); OnStatusChanged("After NewPage", PromsPrinterStatusType.NewPage); + OnStatusChanged(myProcedure.DisplayNumber, PromsPrinterStatusType.ProgressSetup,myProcedure.Sections.Count); + int progress = 0; foreach (SectionInfo mySection in myProcedure.Sections) { + OnStatusChanged((mySection.DisplayNumber??"") == "" ? mySection.DisplayText : mySection.DisplayNumber, PromsPrinterStatusType.Progress, progress++); // Set up Helper for the particular Section if (_MyHelper == null) { @@ -301,6 +332,7 @@ namespace Volian.Print.Library cb.PdfDocument.NewPage(); } } + OnStatusChanged(myProcedure.DisplayNumber + " PDF Creation Completed", PromsPrinterStatusType.Progress, progress); CloseDocument(cb, outputFileName); // Return the fileName; return outputFileName; @@ -342,12 +374,12 @@ namespace Volian.Print.Library // if there is not overridden data on the docversion, prompt user... ChangeBarData changeBarData = myItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData; - if (docverConfig == null || docverConfig.Print_ChangeBar == DocVersionConfig.PrintChangeBar.SelectBeforePrinting) + if (docverConfig == null || docverConfig.Print_ChangeBar == PrintChangeBar.SelectBeforePrinting) { // use these for now, i.e. this is what user would have selected from dialog. - cbd.MyChangeBarType = DocVersionConfig.PrintChangeBar.WithDefault; - cbd.MyChangeBarLoc = DocVersionConfig.PrintChangeBarLoc.OutsideBox; - cbd.MyChangeBarText = DocVersionConfig.PrintChangeBarText.None; + cbd.MyChangeBarType = PrintChangeBar.WithDefault; + cbd.MyChangeBarLoc = PrintChangeBarLoc.OutsideBox; + cbd.MyChangeBarText = PrintChangeBarText.None; } else { @@ -355,21 +387,21 @@ namespace Volian.Print.Library cbd.MyChangeBarLoc = docverConfig.Print_ChangeBarLoc; cbd.MyChangeBarText = docverConfig.Print_ChangeBarText; } - if (cbd.MyChangeBarType == DocVersionConfig.PrintChangeBar.WithDefault) // get data from format + if (cbd.MyChangeBarType == PrintChangeBar.WithDefault) // get data from format { - cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? DocVersionConfig.PrintChangeBarText.ChgID : - changeBarData.ChangeBarMessage == "DateAndChgID" ? DocVersionConfig.PrintChangeBarText.DateChgID : - changeBarData.ChangeBarMessage == "None" ? DocVersionConfig.PrintChangeBarText.None : - changeBarData.ChangeBarMessage == "RevNum" ? DocVersionConfig.PrintChangeBarText.RevNum : DocVersionConfig.PrintChangeBarText.UserDef; + cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID : + changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID : + changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None : + changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef; } - if (cbd.MyChangeBarType != DocVersionConfig.PrintChangeBar.Without) + if (cbd.MyChangeBarType != PrintChangeBar.Without) { // if the format has the absolutefixedchangecolumn format flag, then always use the fixedchangecolumn from the // format, otherwise, use the default column based on the selected location, stored in the base format. cbd.MyChangeBarColumn = (changeBarData.AbsoluteFixedChangeColumn) ? (int)changeBarData.FixedChangeColumn : System.Convert.ToInt32(changeBarData.DefaultCBLoc.Split(" ".ToCharArray())[System.Convert.ToInt32(cbd.MyChangeBarLoc)]); - if (cbd.MyChangeBarText == DocVersionConfig.PrintChangeBarText.UserDef) + if (cbd.MyChangeBarText == PrintChangeBarText.UserDef) cbd.MyChangeBarMessage = docverConfig.Print_UserCBMess1 + @"\n" + docverConfig.Print_UserCBMess2; }