Development #196

Merged
djankowski merged 11 commits from Development into master 2024-01-03 10:54:23 -05:00
9 changed files with 1921 additions and 1754 deletions

Binary file not shown.

View File

@ -1091,6 +1091,11 @@ namespace VEPROMS
DoCreatePDF(); DoCreatePDF();
} }
public void QPCreatePDF()
{
DoCreatePDF();
}
private void DoCreatePDF() private void DoCreatePDF()
{ {
if (_AllProcedures) if (_AllProcedures)

View File

@ -36,6 +36,7 @@ namespace VEPROMS
this.btnShortCuts = new DevComponents.DotNetBar.ButtonItem(); this.btnShortCuts = new DevComponents.DotNetBar.ButtonItem();
this.btnHelpVWeb = new DevComponents.DotNetBar.ButtonItem(); this.btnHelpVWeb = new DevComponents.DotNetBar.ButtonItem();
this.btnSendErrorLog = new DevComponents.DotNetBar.ButtonItem(); this.btnSendErrorLog = new DevComponents.DotNetBar.ButtonItem();
this.btnShowErrFld = new DevComponents.DotNetBar.ButtonItem();
this.btnHelpAbout = new DevComponents.DotNetBar.ButtonItem(); this.btnHelpAbout = new DevComponents.DotNetBar.ButtonItem();
this.office2007StartButton1 = new DevComponents.DotNetBar.Office2007StartButton(); this.office2007StartButton1 = new DevComponents.DotNetBar.Office2007StartButton();
this.itemContainer1 = new DevComponents.DotNetBar.ItemContainer(); this.itemContainer1 = new DevComponents.DotNetBar.ItemContainer();
@ -46,13 +47,13 @@ namespace VEPROMS
this.btnPrint = new DevComponents.DotNetBar.ButtonItem(); this.btnPrint = new DevComponents.DotNetBar.ButtonItem();
this.btnPrepare = new DevComponents.DotNetBar.ButtonItem(); this.btnPrepare = new DevComponents.DotNetBar.ButtonItem();
this.btnAdmin = new DevComponents.DotNetBar.ButtonItem(); this.btnAdmin = new DevComponents.DotNetBar.ButtonItem();
this.btnUpdateFormats = new DevComponents.DotNetBar.ButtonItem();
this.icRecentDocs = new DevComponents.DotNetBar.ItemContainer(); this.icRecentDocs = new DevComponents.DotNetBar.ItemContainer();
this.labelItem8 = new DevComponents.DotNetBar.LabelItem(); this.labelItem8 = new DevComponents.DotNetBar.LabelItem();
this.itemContainer5 = new DevComponents.DotNetBar.ItemContainer(); this.itemContainer5 = new DevComponents.DotNetBar.ItemContainer();
this.btnOptions = new DevComponents.DotNetBar.ButtonItem(); this.btnOptions = new DevComponents.DotNetBar.ButtonItem();
this.btnExit = new DevComponents.DotNetBar.ButtonItem(); this.btnExit = new DevComponents.DotNetBar.ButtonItem();
this.qatCustomizeItem1 = new DevComponents.DotNetBar.QatCustomizeItem(); this.qatCustomizeItem1 = new DevComponents.DotNetBar.QatCustomizeItem();
this.btnUpdateFormats = new DevComponents.DotNetBar.ButtonItem();
this.galleryGroup1 = new DevComponents.DotNetBar.GalleryGroup(); this.galleryGroup1 = new DevComponents.DotNetBar.GalleryGroup();
this.galleryGroup2 = new DevComponents.DotNetBar.GalleryGroup(); this.galleryGroup2 = new DevComponents.DotNetBar.GalleryGroup();
this.galleryGroup3 = new DevComponents.DotNetBar.GalleryGroup(); this.galleryGroup3 = new DevComponents.DotNetBar.GalleryGroup();
@ -210,8 +211,10 @@ namespace VEPROMS
this.btnShortCuts, this.btnShortCuts,
this.btnHelpVWeb, this.btnHelpVWeb,
this.btnSendErrorLog, this.btnSendErrorLog,
this.btnShowErrFld,
this.btnHelpAbout}); this.btnHelpAbout});
this.btnHelp.Text = "Help"; this.btnHelp.Text = "Help";
this.btnHelp.Click += new System.EventHandler(this.btnHelp_Click);
// //
// btnHelpManual // btnHelpManual
// //
@ -244,6 +247,14 @@ namespace VEPROMS
this.btnSendErrorLog.Text = "Send Error Log"; this.btnSendErrorLog.Text = "Send Error Log";
this.btnSendErrorLog.Click += new System.EventHandler(this.btnSendErrorLog_Click); this.btnSendErrorLog.Click += new System.EventHandler(this.btnSendErrorLog_Click);
// //
// btnShowErrFld
//
//this.btnShowErrFld.Image = global::VEPROMS.Properties.Resources.GoToParentFolderHS;
this.btnShowErrFld.Image = ((System.Drawing.Image)(resources.GetObject("btnShowErrFld.Image")));
this.btnShowErrFld.Name = "btnShowErrFld";
this.btnShowErrFld.Text = "Open Error Folder";
this.btnShowErrFld.Click += new System.EventHandler(this.btnShowErrFld_Click);
//
// btnHelpAbout // btnHelpAbout
// //
this.btnHelpAbout.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; this.btnHelpAbout.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText;
@ -284,6 +295,10 @@ namespace VEPROMS
// //
// //
// //
this.itemContainer1.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.itemContainer1.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.itemContainer1.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
// itemContainer2 // itemContainer2
@ -301,6 +316,10 @@ namespace VEPROMS
// //
// //
// //
this.itemContainer2.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.itemContainer2.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.itemContainer2.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
// itemContainer3 // itemContainer3
@ -322,6 +341,10 @@ namespace VEPROMS
// //
// //
// //
this.itemContainer3.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.itemContainer3.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.itemContainer3.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
// btnNew // btnNew
@ -370,16 +393,8 @@ namespace VEPROMS
this.btnAdmin.CanCustomize = false; this.btnAdmin.CanCustomize = false;
this.btnAdmin.Image = global::VEPROMS.Properties.Resources.Admin; this.btnAdmin.Image = global::VEPROMS.Properties.Resources.Admin;
this.btnAdmin.Name = "btnAdmin"; this.btnAdmin.Name = "btnAdmin";
//this.btnAdmin.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
//this.btnUpdateFormats});
this.btnAdmin.Text = "A&dministration"; this.btnAdmin.Text = "A&dministration";
// //
// btnUpdateFormats
//
this.btnUpdateFormats.Name = "btnUpdateFormats";
this.btnUpdateFormats.Text = "Update Formats";
this.btnUpdateFormats.Click += new System.EventHandler(this.btnUpdateFormat_Click);
//
// icRecentDocs // icRecentDocs
// //
// //
@ -395,6 +410,10 @@ namespace VEPROMS
// //
// //
// //
this.icRecentDocs.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.icRecentDocs.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.icRecentDocs.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
// labelItem8 // labelItem8
@ -423,6 +442,10 @@ namespace VEPROMS
// //
// //
// //
this.itemContainer5.TitleMouseOverStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
//
//
//
this.itemContainer5.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; this.itemContainer5.TitleStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
// //
// btnOptions // btnOptions
@ -449,6 +472,12 @@ namespace VEPROMS
// //
this.qatCustomizeItem1.Name = "qatCustomizeItem1"; this.qatCustomizeItem1.Name = "qatCustomizeItem1";
// //
// btnUpdateFormats
//
this.btnUpdateFormats.Name = "btnUpdateFormats";
this.btnUpdateFormats.Text = "Update Formats";
this.btnUpdateFormats.Click += new System.EventHandler(this.btnUpdateFormat_Click);
//
// galleryGroup1 // galleryGroup1
// //
this.galleryGroup1.Name = "galleryGroup1"; this.galleryGroup1.Name = "galleryGroup1";
@ -712,8 +741,9 @@ namespace VEPROMS
// ctrlAnnotationDetails // ctrlAnnotationDetails
// //
this.ctrlAnnotationDetails.AnnotationDirty = false; this.ctrlAnnotationDetails.AnnotationDirty = false;
this.ctrlAnnotationDetails.AnnotationRTFText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft S" + this.ctrlAnnotationDetails.AnnotationRTFText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\nouicompat\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 " +
"ans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20\\par\r\n}\r\n"; "Microsoft Sans Serif;}}\r\n{\\*\\generator Riched20 10.0.22621}\\viewkind4\\uc1 \r\n\\par" +
"d\\f0\\fs20\\par\r\n}\r\n";
this.ctrlAnnotationDetails.Annotations = null; this.ctrlAnnotationDetails.Annotations = null;
this.ctrlAnnotationDetails.AnnotationText = ""; this.ctrlAnnotationDetails.AnnotationText = "";
this.ctrlAnnotationDetails.ClientProcess = null; this.ctrlAnnotationDetails.ClientProcess = null;
@ -784,6 +814,7 @@ namespace VEPROMS
// tv // tv
// //
this.tv.AllowDrop = true; this.tv.AllowDrop = true;
this.tv.DelProcReason = null;
this.tv.Dock = System.Windows.Forms.DockStyle.Fill; this.tv.Dock = System.Windows.Forms.DockStyle.Fill;
this.tv.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.tv.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.tv.HideSelection = false; this.tv.HideSelection = false;
@ -904,7 +935,7 @@ namespace VEPROMS
this.displayTags.Dock = System.Windows.Forms.DockStyle.Fill; this.displayTags.Dock = System.Windows.Forms.DockStyle.Fill;
this.displayTags.IsVisible = false; this.displayTags.IsVisible = false;
this.displayTags.Location = new System.Drawing.Point(0, 0); this.displayTags.Location = new System.Drawing.Point(0, 0);
this.displayTags.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); this.displayTags.Margin = new System.Windows.Forms.Padding(2);
this.displayTags.MinimumSize = new System.Drawing.Size(100, 630); this.displayTags.MinimumSize = new System.Drawing.Size(100, 630);
this.displayTags.MyEditItem = null; this.displayTags.MyEditItem = null;
this.displayTags.Name = "displayTags"; this.displayTags.Name = "displayTags";
@ -1089,8 +1120,8 @@ namespace VEPROMS
this.displayRO.Dock = System.Windows.Forms.DockStyle.Fill; this.displayRO.Dock = System.Windows.Forms.DockStyle.Fill;
this.displayRO.Location = new System.Drawing.Point(1, 1); this.displayRO.Location = new System.Drawing.Point(1, 1);
this.displayRO.Margin = new System.Windows.Forms.Padding(4); this.displayRO.Margin = new System.Windows.Forms.Padding(4);
this.displayRO.MyDvi = null;
this.displayRO.MyROFST = null; this.displayRO.MyROFST = null;
//this.displayRO.MyROFSTLookup = null;
this.displayRO.MyRTB = null; this.displayRO.MyRTB = null;
this.displayRO.Name = "displayRO"; this.displayRO.Name = "displayRO";
this.displayRO.ProgressBar = null; this.displayRO.ProgressBar = null;
@ -1104,6 +1135,7 @@ namespace VEPROMS
this.tc.ChgId = null; this.tc.ChgId = null;
this.tc.Dock = System.Windows.Forms.DockStyle.Fill; this.tc.Dock = System.Windows.Forms.DockStyle.Fill;
this.tc.ForeColor = System.Drawing.SystemColors.ControlText; this.tc.ForeColor = System.Drawing.SystemColors.ControlText;
this.tc.LastSelectedDisplayTabItem = null;
this.tc.Location = new System.Drawing.Point(334, 57); this.tc.Location = new System.Drawing.Point(334, 57);
this.tc.Margin = new System.Windows.Forms.Padding(4); this.tc.Margin = new System.Windows.Forms.Padding(4);
this.tc.MyAnnotationDetails = null; this.tc.MyAnnotationDetails = null;
@ -1351,6 +1383,7 @@ namespace VEPROMS
// displaySearch1 // displaySearch1
// //
this.displaySearch1.Dock = System.Windows.Forms.DockStyle.Fill; this.displaySearch1.Dock = System.Windows.Forms.DockStyle.Fill;
this.displaySearch1.LastSearchWasAnnotations = false;
this.displaySearch1.LoadingList = false; this.displaySearch1.LoadingList = false;
this.displaySearch1.Location = new System.Drawing.Point(1, 1); this.displaySearch1.Location = new System.Drawing.Point(1, 1);
this.displaySearch1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.displaySearch1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
@ -1360,6 +1393,7 @@ namespace VEPROMS
this.displaySearch1.ProgressBar = null; this.displaySearch1.ProgressBar = null;
this.displaySearch1.ReportTitle = null; this.displaySearch1.ReportTitle = null;
this.displaySearch1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; this.displaySearch1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
this.displaySearch1.SearchIncTransII = null;
this.displaySearch1.SearchResults = null; this.displaySearch1.SearchResults = null;
this.displaySearch1.SearchString = null; this.displaySearch1.SearchString = null;
this.displaySearch1.Size = new System.Drawing.Size(314, 462); this.displaySearch1.Size = new System.Drawing.Size(314, 462);
@ -1736,6 +1770,7 @@ namespace VEPROMS
private DevComponents.DotNetBar.TabControlPanel tabControlPanel3; private DevComponents.DotNetBar.TabControlPanel tabControlPanel3;
private DevComponents.DotNetBar.TabItem toosTabReports; private DevComponents.DotNetBar.TabItem toosTabReports;
private Volian.Controls.Library.DisplayReports displayReports; private Volian.Controls.Library.DisplayReports displayReports;
private DevComponents.DotNetBar.ButtonItem btnShowErrFld;
} }
} }

View File

@ -21,6 +21,7 @@ using DescriptiveEnum;
using Volian.Base.Library; using Volian.Base.Library;
using Volian.Print.Library; using Volian.Print.Library;
using JR.Utils.GUI.Forms; using JR.Utils.GUI.Forms;
using System.Diagnostics;
[assembly: log4net.Config.XmlConfigurator(Watch = true)] [assembly: log4net.Config.XmlConfigurator(Watch = true)]
@ -512,6 +513,7 @@ namespace VEPROMS
ItemInfo.ItemDeleted += new ItemInfoEvent(RefreshDisplayHistory); ItemInfo.ItemDeleted += new ItemInfoEvent(RefreshDisplayHistory);
tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure); tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure);
tv.QPrintProcedure += new vlnTreeViewEvent(tv_QPrintProcedure);
tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures); tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures);
tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure); tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure);
tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures); tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures);
@ -1152,6 +1154,40 @@ namespace VEPROMS
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
} }
void tv_QPrintProcedure(object sender, vlnTreeEventArgs args) // Quick Print
{
try
{
ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo;
if (pi == null) return;
tc.SaveCurrentEditItem(pi);
pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex;
using (DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi))
{
prnDlg.SelectedSlave = args.UnitIndex;
prnDlg.MySessionInfo = MySessionInfo;
prnDlg.SetupForProcedure(); // Setup filename
prnDlg.QPCreatePDF(); // Create Print report
pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0;
}
}
catch(Exception ex)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Could not create PDF Print");
sb.AppendLine();
MessageBox.Show(sb.ToString(), "Error when creating PDF Print", MessageBoxButtons.OK, MessageBoxIcon.Warning);
_MyLog.Warn("Failed to create PDF print", ex);
}
}
void tv_CreateContinuousActionSummary(object sender, vlnTreeEventArgs args) void tv_CreateContinuousActionSummary(object sender, vlnTreeEventArgs args)
{ {
DialogResult dr = System.Windows.Forms.DialogResult.Yes; DialogResult dr = System.Windows.Forms.DialogResult.Yes;
@ -4861,6 +4897,21 @@ namespace VEPROMS
_MyLog.Error(str, ex); _MyLog.Error(str, ex);
} }
} }
private void btnShowErrFld_Click(object sender, EventArgs e)
{
string path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
path = path + @"\Documents\VEPROMS";
if (Directory.Exists(path))
{
Process.Start("explorer.exe", path);
}
}
private void btnHelp_Click(object sender, EventArgs e)
{
}
} }
#region (Lock stuff / used for multi-user support) #region (Lock stuff / used for multi-user support)

View File

@ -188,6 +188,11 @@
llg/yF+gIjK+CZq8XgAAAABJRU5ErkJggg== llg/yF+gIjK+CZq8XgAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="btnShowErrFld.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAANUlEQVR4nGNgoBR8ahL8jw1/bBTooMiAT8Qa8gmPAUQZ8n+Z3n9KMMOoAf9Hw0CPCmEw4AAA71z+QhwwNhoAAAAASUVORK5CYII=
</value>
</data>
<data name="office2007StartButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="office2007StartButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
R0lGODlhGwAVAIcAANmsrP7+/tqtrdmrq9Wjo9uwsNmtrf79/dSgoP/+/tShodalpdqsrN20tN64uNqv R0lGODlhGwAVAIcAANmsrP7+/tqtrdmrq9Wjo9uwsNmtrf79/dSgoP/+/tShodalpdqsrN20tN64uNqv
@ -450,7 +455,7 @@
<value>164, 17</value> <value>164, 17</value>
</metadata> </metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>64</value> <value>25</value>
</metadata> </metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>

View File

@ -1458,6 +1458,14 @@ namespace VEPROMS.CSLA.Library
return LazyLoad(ref _NoBlankLastNoteCautionWarn, "@NoBlankLastNoteCautionWarn"); return LazyLoad(ref _NoBlankLastNoteCautionWarn, "@NoBlankLastNoteCautionWarn");
} }
} }
private LazyLoad<bool> _NoteCautionCenterOneAllTypes; // F2023-126: Vogtle Alarms - center single line caution/note if more than one type exist off step
public bool NoteCautionCenterOneAllTypes
{
get
{
return LazyLoad(ref _NoteCautionCenterOneAllTypes, "@NoteCautionCenterOneAllTypes");
}
}
private LazyLoad<bool> _ChkBoxToGeneratePointListText; // C2021-063 Barakah Alarm: check box to generate Alarm Point List Text private LazyLoad<bool> _ChkBoxToGeneratePointListText; // C2021-063 Barakah Alarm: check box to generate Alarm Point List Text
public bool ChkBoxToGeneratePointListText public bool ChkBoxToGeneratePointListText
{ {

View File

@ -501,6 +501,11 @@ namespace Volian.Controls.Library
{ {
if (PrintProcedure != null) PrintProcedure(sender, args); if (PrintProcedure != null) PrintProcedure(sender, args);
} }
public event vlnTreeViewEvent QPrintProcedure;
private void OnQPrintProcedure(object sender, vlnTreeEventArgs args)
{
if (QPrintProcedure != null) QPrintProcedure(sender, args);
}
public event vlnTreeViewEvent PrintAllProcedures; public event vlnTreeViewEvent PrintAllProcedures;
private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args) private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args)
{ {
@ -831,6 +836,7 @@ namespace Volian.Controls.Library
MenuItem micas = new MenuItem("Create Continuous Action Summary"); MenuItem micas = new MenuItem("Create Continuous Action Summary");
MenuItem mitcas = new MenuItem("Create Time Critical Action Summary"); //F2022-024 added menu option MenuItem mitcas = new MenuItem("Create Time Critical Action Summary"); //F2022-024 added menu option
MenuItem mip = new MenuItem("Print"); MenuItem mip = new MenuItem("Print");
MenuItem miqp = new MenuItem("Quick Print");
MenuItem mia = new MenuItem("Approve"); MenuItem mia = new MenuItem("Approve");
int k = 0; int k = 0;
foreach (string s in pri.MyDocVersion.UnitNames) foreach (string s in pri.MyDocVersion.UnitNames)
@ -841,6 +847,9 @@ namespace Volian.Controls.Library
MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mp.Enabled = procAppl; mp.Enabled = procAppl;
mp.Tag = k; mp.Tag = k;
MenuItem mqp = miqp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mqp.Enabled = procAppl;
mqp.Tag = k;
MenuItem ma = mia.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); MenuItem ma = mia.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
ma.Enabled = procAppl; ma.Enabled = procAppl;
ma.Tag = k; ma.Tag = k;
@ -854,6 +863,7 @@ namespace Volian.Controls.Library
cm.MenuItems.Add(micas); cm.MenuItems.Add(micas);
cm.MenuItems.Add(mitcas); cm.MenuItems.Add(mitcas);
cm.MenuItems.Add(mip); cm.MenuItems.Add(mip);
cm.MenuItems.Add(miqp);
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri); AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
cm.MenuItems.Add(mia); cm.MenuItems.Add(mia);
AddApprovedRevisionsMultiUnit(cm.MenuItems, pri); AddApprovedRevisionsMultiUnit(cm.MenuItems, pri);
@ -863,6 +873,8 @@ namespace Volian.Controls.Library
cm.MenuItems.Add("Create Continuous Action Summary", new EventHandler(mi_Click)); cm.MenuItems.Add("Create Continuous Action Summary", new EventHandler(mi_Click));
cm.MenuItems.Add("Create Time Critical Action Summary", new EventHandler(mi_Click)); cm.MenuItems.Add("Create Time Critical Action Summary", new EventHandler(mi_Click));
cm.MenuItems.Add("Print", new EventHandler(mi_Click)); cm.MenuItems.Add("Print", new EventHandler(mi_Click));
cm.MenuItems.Add("Quick Print", new EventHandler(mi_Click));
//MenuItem miqp = new MenuItem("Print");
AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri); AddShowChangeBarsAfterMenuItem(cm.MenuItems, pri);
cm.MenuItems.Add("Approve", new EventHandler(mi_Click)); cm.MenuItems.Add("Approve", new EventHandler(mi_Click));
//_MyLog.WarnFormat("Context Menu 1 before - {0}", GC.GetTotalMemory(true)); //_MyLog.WarnFormat("Context Menu 1 before - {0}", GC.GetTotalMemory(true));
@ -877,19 +889,24 @@ namespace Volian.Controls.Library
if (pri.MyDocVersion.MultiUnitCount > 1) if (pri.MyDocVersion.MultiUnitCount > 1)
{ {
MenuItem mip = new MenuItem("Print"); MenuItem mip = new MenuItem("Print");
MenuItem miqp = new MenuItem("Quick Print");
int k = 0; int k = 0;
foreach (string s in pri.MyDocVersion.UnitNames) foreach (string s in pri.MyDocVersion.UnitNames)
{ {
k++; k++;
MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mp.Tag = k; mp.Tag = k;
MenuItem mqp = miqp.MenuItems.Add(s, new EventHandler(miMultiUnit_Click));
mqp.Tag = k;
} }
cm.MenuItems.Add(mip); cm.MenuItems.Add(mip);
cm.MenuItems.Add(miqp);
AddApprovedRevisionsMultiUnit(cm.MenuItems, pri); AddApprovedRevisionsMultiUnit(cm.MenuItems, pri);
} }
else else
{ {
cm.MenuItems.Add("Print", new EventHandler(mi_Click)); cm.MenuItems.Add("Print", new EventHandler(mi_Click));
cm.MenuItems.Add("Quick Print", new EventHandler(mi_Click));
AddApprovedRevisions(cm.MenuItems, pri); AddApprovedRevisions(cm.MenuItems, pri);
} }
} }
@ -1727,6 +1744,9 @@ namespace Volian.Controls.Library
case "Print": case "Print":
OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break; break;
case "Quick Print":
OnQPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag));
break;
case "Print All Procedures for": case "Print All Procedures for":
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag)); OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag));
break; break;
@ -1967,6 +1987,9 @@ namespace Volian.Controls.Library
case "Print": case "Print":
OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
break; break;
case "Quick Print":
OnQPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
break;
case "Print All Procedures": case "Print All Procedures":
OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0));
break; break;

View File

@ -19,7 +19,7 @@ using JR.Utils.GUI.Forms;
namespace Volian.Print.Library namespace Volian.Print.Library
{ {
public delegate void PromsPrinterStatusEvent(object sender,PromsPrintStatusArgs args); public delegate void PromsPrinterStatusEvent(object sender, PromsPrintStatusArgs args);
public class PromsPrintStatusArgs public class PromsPrintStatusArgs
{ {
private string _MyStatus; private string _MyStatus;
@ -336,7 +336,7 @@ namespace Volian.Print.Library
_MyReaderHelper = new ReaderHelper(this); _MyReaderHelper = new ReaderHelper(this);
_SaveLinks = saveLinks; _SaveLinks = saveLinks;
// C2021-010: Remove trailing returns/spaces & manual page breaks & allow save. // C2021-010: Remove trailing returns/spaces & manual page breaks & allow save.
if (removeTrailngHardReturnsAndManualPageBreaks == 1 || removeTrailngHardReturnsAndManualPageBreaks == 3 ) RemoveTrailingHardReturnsAndSpaces = new List<int>(); if (removeTrailngHardReturnsAndManualPageBreaks == 1 || removeTrailngHardReturnsAndManualPageBreaks == 3) RemoveTrailingHardReturnsAndSpaces = new List<int>();
if (removeTrailngHardReturnsAndManualPageBreaks == 2 || removeTrailngHardReturnsAndManualPageBreaks == 3) RemoveManualPageBreaks = new List<int>(); if (removeTrailngHardReturnsAndManualPageBreaks == 2 || removeTrailngHardReturnsAndManualPageBreaks == 3) RemoveManualPageBreaks = new List<int>();
_BlankPageText = blankPageText; _BlankPageText = blankPageText;
_DidAll = didAll; _DidAll = didAll;
@ -435,7 +435,7 @@ namespace Volian.Print.Library
ProcedureInfo.RefreshPageNumTransitions(_MyItem as ProcedureInfo); ProcedureInfo.RefreshPageNumTransitions(_MyItem as ProcedureInfo);
_MyReaderHelper = new ReaderHelper(this); _MyReaderHelper = new ReaderHelper(this);
retstr = Print(_MyItem as ProcedureInfo, pdfFolder, makePlacekeeper, makeContinuousActionSummary, makeTimeCriticalActionSummary); retstr = Print(_MyItem as ProcedureInfo, pdfFolder, makePlacekeeper, makeContinuousActionSummary, makeTimeCriticalActionSummary);
if (! BatchPrint && ForcedPaginations != null && ForcedPaginations.Count > 0) // B2020-159: Forced Pagination Reporting if (!BatchPrint && ForcedPaginations != null && ForcedPaginations.Count > 0) // B2020-159: Forced Pagination Reporting
{ {
ReportForcedPaginations(); ReportForcedPaginations();
ForcedPaginations.Clear(); ForcedPaginations.Clear();
@ -565,7 +565,7 @@ namespace Volian.Print.Library
set set
{ {
_MyContentByte = value; _MyContentByte = value;
if(value != null)MyReaderHelper.LoadTree(MyItem); if (value != null) MyReaderHelper.LoadTree(MyItem);
} }
} }
public void NewPage() public void NewPage()
@ -588,7 +588,7 @@ namespace Volian.Print.Library
//SectionConfig sc = (nextSection ?? currentSection).MyConfig as SectionConfig; //SectionConfig sc = (nextSection ?? currentSection).MyConfig as SectionConfig;
// If we are changing to a different section, then get the config from the nextSection // If we are changing to a different section, then get the config from the nextSection
// else we are still printing in the same section so get the config from the current section // else we are still printing in the same section so get the config from the current section
SectionConfig sc = ((!sectionChange || nextSection == null)? currentSection.MyConfig : nextSection.MyConfig) as SectionConfig; SectionConfig sc = ((!sectionChange || nextSection == null) ? currentSection.MyConfig : nextSection.MyConfig) as SectionConfig;
bool wordMargins = (sc != null && sc.Section_WordMargin == "Y"); bool wordMargins = (sc != null && sc.Section_WordMargin == "Y");
if (wordMargins) if (wordMargins)
{ {
@ -622,7 +622,7 @@ namespace Volian.Print.Library
if (currentSection.IsStepSection) if (currentSection.IsStepSection)
Volian.Base.Library.BaselineMetaFile.WriteLine("{0}", rct); Volian.Base.Library.BaselineMetaFile.WriteLine("{0}", rct);
else else
Volian.Base.Library.BaselineMetaFile.WriteLine("UseWordMargins={0} {1} ", (wordMargins)?"Y":"N", rct); Volian.Base.Library.BaselineMetaFile.WriteLine("UseWordMargins={0} {1} ", (wordMargins) ? "Y" : "N", rct);
//Console.WriteLine("\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t{4}" //Console.WriteLine("\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t{4}"
// , currentSection == null ? "" : currentSection.DisplayNumber + " " + currentSection.DisplayText // , currentSection == null ? "" : currentSection.DisplayNumber + " " + currentSection.DisplayText
// , nextSection == null ? "" : nextSection.DisplayNumber + " " + nextSection.DisplayText // , nextSection == null ? "" : nextSection.DisplayNumber + " " + nextSection.DisplayText
@ -682,12 +682,35 @@ namespace Volian.Print.Library
// Console.WriteLine("To {0}.{1} Page: {2}",LastWordSection.DisplayNumber,LastWordSection.DisplayText,_PageCountOfWordSection); // Console.WriteLine("To {0}.{1} Page: {2}",LastWordSection.DisplayNumber,LastWordSection.DisplayText,_PageCountOfWordSection);
// PreviousWordSection = LastWordSection; // PreviousWordSection = LastWordSection;
//} //}
private PdfContentByte OpenDoc(string outputFileName, iTextSharp.text.Rectangle rect) private PdfContentByte OpenDoc(ref string outputFileName, iTextSharp.text.Rectangle rect)
{ {
PdfWriter writer=null;
iTextSharp.text.Document document = new iTextSharp.text.Document(rect);
try try
{ {
PdfWriter writer = null;
iTextSharp.text.Document document = new iTextSharp.text.Document(rect);
try
{
if (File.Exists(outputFileName))
{
String tmpExt = System.IO.Path.GetExtension(outputFileName);
String tmpPTH = System.IO.Path.GetDirectoryName(outputFileName);
String tmpFN = System.IO.Path.GetFileName(outputFileName);
String tmpFNNoExt = System.IO.Path.GetFileNameWithoutExtension(outputFileName);
var files = new HashSet<string>(Directory.GetFiles(tmpPTH, "*.pdf"));
//string baseName = Path.Combine(scpath, "Screenshot_");
string filename;
int i = 0;
do
{
filename = tmpPTH + @"\" + tmpFNNoExt + "_" + ++i + ".pdf";
} while (files.Contains(filename));
outputFileName = filename;
}
writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create)); writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create));
// PDFA1B does not allow layers, so this is disabled for now // PDFA1B does not allow layers, so this is disabled for now
// If enabled, CreateLayers will need to be skipped. // If enabled, CreateLayers will need to be skipped.
@ -721,6 +744,21 @@ namespace Volian.Print.Library
MyContentByte = writer.DirectContent; MyContentByte = writer.DirectContent;
return MyContentByte; return MyContentByte;
} }
catch (Exception ex)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("Error occured when creating Print PDF");
sb.AppendLine();
sb.AppendLine(outputFileName + ".");
sb.AppendLine();
sb.AppendLine("If it is open, close and retry.");
MessageBox.Show(sb.ToString(), "Error Creating PDF", MessageBoxButtons.OK, MessageBoxIcon.Warning);
//MessageBox.Show("Could not create " + outputFileName + ". If it is open, close and retry.", "Error on CreatePdf");
return MyContentByte = null;
}
}
//private string CreateFileName(string procNumber, string sectNumber, string sectTitle) //private string CreateFileName(string procNumber, string sectNumber, string sectTitle)
//{ //{
// return FixFileName(procNumber + "_" + ((sectNumber ?? "") != "" ? sectNumber : sectTitle)); // return FixFileName(procNumber + "_" + ((sectNumber ?? "") != "" ? sectNumber : sectTitle));
@ -838,7 +876,7 @@ namespace Volian.Print.Library
// B2023-024 PROMS was using old cached PDF data when printing Word sections. // B2023-024 PROMS was using old cached PDF data when printing Word sections.
if (doingFoldout) if (doingFoldout)
{ {
PdfInfo.RemovePDFFromCache((ItemInfo) myFoldoutSection); // remove cached PDF info to force getting of new data PdfInfo.RemovePDFFromCache((ItemInfo)myFoldoutSection); // remove cached PDF info to force getting of new data
if (File.Exists(outputFileName)) if (File.Exists(outputFileName))
File.Delete(outputFileName); // delete the temporary FOLDOUT file File.Delete(outputFileName); // delete the temporary FOLDOUT file
} }
@ -857,7 +895,7 @@ namespace Volian.Print.Library
bool wordMargins = (sc != null && sc.Section_WordMargin == "Y"); bool wordMargins = (sc != null && sc.Section_WordMargin == "Y");
if (wordMargins) if (wordMargins)
{ {
string pdfFile =BuildMSWordPDF(si); string pdfFile = BuildMSWordPDF(si);
try try
{ {
PdfReader reader = new PdfReader(pdfFile); PdfReader reader = new PdfReader(pdfFile);
@ -866,12 +904,12 @@ namespace Volian.Print.Library
catch (Exception ex) catch (Exception ex)
{ {
MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
_MyLog.Warn(string.Format("Error of ReadPDf [{0}],{1}.{2}",si.ItemID,si.DisplayNumber,si.DisplayText),ex); _MyLog.Warn(string.Format("Error of ReadPDf [{0}],{1}.{2}", si.ItemID, si.DisplayNumber, si.DisplayText), ex);
throw new Exception("Error in readPDF", ex); throw new Exception("Error in readPDF", ex);
} }
} }
} }
PdfContentByte cb = OpenDoc(outputFileName, rct); PdfContentByte cb = OpenDoc(ref outputFileName, rct);
if (cb == null) if (cb == null)
{ {
ProfileTimer.Pop(profileDepth); ProfileTimer.Pop(profileDepth);
@ -906,7 +944,7 @@ namespace Volian.Print.Library
{ {
// B2020-115 Calculate maximum available space on a page for figures // B2020-115 Calculate maximum available space on a page for figures
vlnParagraph.hMax = ((float)mySection.MyDocStyle.Layout.PageLength); vlnParagraph.hMax = ((float)mySection.MyDocStyle.Layout.PageLength);
vlnParagraph.wMax = ((float) mySection.MyDocStyle.Layout.PageWidth)- ((float) mySection.MyDocStyle.Layout.LeftMargin - 12); vlnParagraph.wMax = ((float)mySection.MyDocStyle.Layout.PageWidth) - ((float)mySection.MyDocStyle.Layout.LeftMargin - 12);
NeedSupInfoBreak = true; NeedSupInfoBreak = true;
bool isFoldoutSection = (mySection.MyConfig as SectionConfig).Section_IsFoldout == "Y"; //C2019-042 Section_IsFoldout checks Section Number, Section Title, and use of check box bool isFoldoutSection = (mySection.MyConfig as SectionConfig).Section_IsFoldout == "Y"; //C2019-042 Section_IsFoldout checks Section Number, Section Title, and use of check box
if (((isFoldoutSection && myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.SectionLevelFoldouts) if (((isFoldoutSection && myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.SectionLevelFoldouts)
@ -961,7 +999,7 @@ namespace Volian.Print.Library
} }
x += 72F * VlnSettings.GetCommandFloat("X", 0); x += 72F * VlnSettings.GetCommandFloat("X", 0);
y -= 72F * VlnSettings.GetCommandFloat("Y", 0); y -= 72F * VlnSettings.GetCommandFloat("Y", 0);
_MyHelper.BackgroundOffset = new PointF(x,y); _MyHelper.BackgroundOffset = new PointF(x, y);
_MyHelper.BackgroundPageOffset = 0; _MyHelper.BackgroundPageOffset = 0;
} }
_MyHelper.WatermarkLayer = _WatermarkLayer; _MyHelper.WatermarkLayer = _WatermarkLayer;
@ -1073,7 +1111,7 @@ namespace Volian.Print.Library
{ {
// If the procedure has supplemental facing pages, but this section does not & it's the first section, // If the procedure has supplemental facing pages, but this section does not & it's the first section,
// need a blank 'facing page'. Sections after the first will get blank 'facing page' in print's pagination logic // need a blank 'facing page'. Sections after the first will get blank 'facing page' in print's pagination logic
if (SupInfoPrintType==E_SupInfoPrintType.Merge && !mySection.HasSupInfoSteps && firstStepSec && InsertBlankPages) if (SupInfoPrintType == E_SupInfoPrintType.Merge && !mySection.HasSupInfoSteps && firstStepSec && InsertBlankPages)
{ {
InsertBlankPage(cb); InsertBlankPage(cb);
} }
@ -1174,9 +1212,9 @@ namespace Volian.Print.Library
private void SetupProperties(PdfDocument document, ProcedureInfo myProcedure) private void SetupProperties(PdfDocument document, ProcedureInfo myProcedure)
{ {
document.AddTitle(string.Format("{0} {1}",myProcedure.DisplayNumber,myProcedure.DisplayText)); document.AddTitle(string.Format("{0} {1}", myProcedure.DisplayNumber, myProcedure.DisplayText));
document.AddSubject(myProcedure.SearchDVPath); document.AddSubject(myProcedure.SearchDVPath);
document.AddCreator(string.Format("{0} {1}",Application.ProductName, Application.ProductVersion)); document.AddCreator(string.Format("{0} {1}", Application.ProductName, Application.ProductVersion));
document.AddAuthor(Volian.Base.Library.VlnSettings.UserID); document.AddAuthor(Volian.Base.Library.VlnSettings.UserID);
} }
private Placekeeper _MyPlacekeeper = null; private Placekeeper _MyPlacekeeper = null;
@ -1229,15 +1267,15 @@ namespace Volian.Print.Library
int sectPageCount = 0; int sectPageCount = 0;
float locEndOfWordDoc = 0; float locEndOfWordDoc = 0;
float pdfSize = 0; float pdfSize = 0;
using (PdfInfo myPdf = PdfInfo.Get(mySection,false)) using (PdfInfo myPdf = PdfInfo.Get(mySection, false))
{ {
if (myPdf == null) // B2017-218 Handle invalid word sections if (myPdf == null) // B2017-218 Handle invalid word sections
{ {
cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED), 20); cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED), 20);
cb.SetTextMatrix(cb.PdfDocument.Left+200,cb.PdfDocument.Bottom+cb.PdfDocument.Top / 2); cb.SetTextMatrix(cb.PdfDocument.Left + 200, cb.PdfDocument.Bottom + cb.PdfDocument.Top / 2);
cb.ShowText("Word Section Invalid"); cb.ShowText("Word Section Invalid");
// C2018-004 create meta file for baseline compares // C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("!!Word Section Invalid: ID {0} \"{1}\" \"{2}\"",mySection.ItemID, mySection.DisplayNumber, mySection.DisplayText); Volian.Base.Library.BaselineMetaFile.WriteLine("!!Word Section Invalid: ID {0} \"{1}\" \"{2}\"", mySection.ItemID, mySection.DisplayNumber, mySection.DisplayText);
} }
else else
{ {
@ -1298,7 +1336,7 @@ namespace Volian.Print.Library
OnStatusChanged("Read MSWord", PromsPrinterStatusType.ReadMSWord); OnStatusChanged("Read MSWord", PromsPrinterStatusType.ReadMSWord);
if (doimport2) if (doimport2)
{ {
if (((!didFoldout && _MyFoldoutReader.Count > 0 ) || mySection.MyProcedure.ProcHasSupInfoData) && cb.PdfWriter.CurrentPageNumber > 1 && InsertBlankPages) if (((!didFoldout && _MyFoldoutReader.Count > 0) || mySection.MyProcedure.ProcHasSupInfoData) && cb.PdfWriter.CurrentPageNumber > 1 && InsertBlankPages)
{ {
bool doInsertBlankPage = true; bool doInsertBlankPage = true;
SectionInfo currentSection = _MyHelper.MySection; SectionInfo currentSection = _MyHelper.MySection;
@ -1348,16 +1386,16 @@ namespace Volian.Print.Library
//float y1 = cb.PdfDocument.PageSize.Height ; // 1.8f; //float y1 = cb.PdfDocument.PageSize.Height ; // 1.8f;
float height = 12 * 1.5F; float height = 12 * 1.5F;
// B2019-102 Locate the chunk below the bottom of the page // B2019-102 Locate the chunk below the bottom of the page
ct.SetSimpleColumn(0, -height, chk.GetWidthPoint() * 1.01F, -2*height ); ct.SetSimpleColumn(0, -height, chk.GetWidthPoint() * 1.01F, -2 * height);
ct.AddElement(new Phrase(chk)); ct.AddElement(new Phrase(chk));
cb.SetColorFill(new iTextSharp.text.Color(PrintOverride.TextColor)); cb.SetColorFill(new iTextSharp.text.Color(PrintOverride.TextColor));
int status = ct.Go(); int status = ct.Go();
if(status > 1) if (status > 1)
_MyLog.WarnFormat("\r\n.-.-.-. Failed to add a PDF destination for {0}", mySection.ShortPath); _MyLog.WarnFormat("\r\n.-.-.-. Failed to add a PDF destination for {0}", mySection.ShortPath);
} }
if(DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2}", if (DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2}",
_MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, mySection.ShortPath,pageNumber); _MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, mySection.ShortPath, pageNumber);
} }
if (ii == sectPageCount - 1) if (ii == sectPageCount - 1)
{ {
@ -1453,7 +1491,7 @@ namespace Volian.Print.Library
// so that if merge is done, the pages that are landscaped can have landscaped page numbers placed on them // so that if merge is done, the pages that are landscaped can have landscaped page numbers placed on them
public static void AddMergedLandscapePage(VlnSvgPageHelper _MyHelper, string PDFFile) public static void AddMergedLandscapePage(VlnSvgPageHelper _MyHelper, string PDFFile)
{ {
string tmp = PDFFile.Substring(0,PDFFile.IndexOf(".pdf")); string tmp = PDFFile.Substring(0, PDFFile.IndexOf(".pdf"));
if (MergedLandscapePages == null) MergedLandscapePages = new Dictionary<string, List<int>>(); if (MergedLandscapePages == null) MergedLandscapePages = new Dictionary<string, List<int>>();
if (MergedLandscapePages.ContainsKey(tmp)) if (MergedLandscapePages.ContainsKey(tmp))
MergedLandscapePages[tmp].Add(_MyHelper.CurrentPageNumber); MergedLandscapePages[tmp].Add(_MyHelper.CurrentPageNumber);
@ -1572,7 +1610,7 @@ namespace Volian.Print.Library
inGroup = true; inGroup = true;
// B2020-033: for single spacing, add an extra line before a grouping title: // B2020-033: for single spacing, add an extra line before a grouping title:
float tmpspc = (float)(tOfC.TofCLineSpacing ?? 1); float tmpspc = (float)(tOfC.TofCLineSpacing ?? 1);
if (lastTOCGroupHeading != "" || (firstGroupHeading && tmpspc==1)) if (lastTOCGroupHeading != "" || (firstGroupHeading && tmpspc == 1))
{ {
yLocation += vlnPrintObject.SixLinesPerInch; yLocation += vlnPrintObject.SixLinesPerInch;
firstGroupHeading = false; firstGroupHeading = false;
@ -1612,7 +1650,7 @@ namespace Volian.Print.Library
// logic put in for V.C. Summer who wants to their auto table of contents to print "OPERATOR ACTIONS" (set in the format) instead of "Procedure Steps" // logic put in for V.C. Summer who wants to their auto table of contents to print "OPERATOR ACTIONS" (set in the format) instead of "Procedure Steps"
// - note that Summer didn't want to change the section title because they want transition to say "procedure step" for the section title. 03/08/2016 // - note that Summer didn't want to change the section title because they want transition to say "procedure step" for the section title. 03/08/2016
string tocSecTitle = mySection.FormattedDisplayText;// B2017-019 - process "<u>" in section title string tocSecTitle = mySection.FormattedDisplayText;// B2017-019 - process "<u>" in section title
tocSecTitle= ConvertSpecialChars(tocSecTitle, ii.ActiveFormat.PlantFormat.FormatData); // B2019-172 process symbol characters tocSecTitle = ConvertSpecialChars(tocSecTitle, ii.ActiveFormat.PlantFormat.FormatData); // B2019-172 process symbol characters
if (tocSecTitle.ToUpper() == "PROCEDURE STEPS" && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle != "") if (tocSecTitle.ToUpper() == "PROCEDURE STEPS" && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle != "")
tocSecTitle = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle; tocSecTitle = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle;
@ -1622,7 +1660,7 @@ namespace Volian.Print.Library
//if (tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData //if (tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData
if (level == 0 && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCUnderlineFirstLevelTitle) if (level == 0 && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCUnderlineFirstLevelTitle)
{ {
VE_Font ovrFont = new VE_Font(tOfC.Font.Family, (int)tOfC.Font.Size,(E_Style)tOfC.Font.Style | E_Style.Underline, (float)tOfC.Font.CPI); VE_Font ovrFont = new VE_Font(tOfC.Font.Family, (int)tOfC.Font.Size, (E_Style)tOfC.Font.Style | E_Style.Underline, (float)tOfC.Font.CPI);
rtfText = GetRtfToC(tocSecTitle, tOfC, ovrFont); rtfText = GetRtfToC(tocSecTitle, tOfC, ovrFont);
} }
else else
@ -1657,7 +1695,7 @@ namespace Volian.Print.Library
if (lnsp > -1) yLocation += (lnaftergroup * vlnPrintObject.SixLinesPerInch); // new line if (lnsp > -1) yLocation += (lnaftergroup * vlnPrintObject.SixLinesPerInch); // new line
} }
// Print the section title // Print the section title
float retval = Rtf2Pdf.TextAt(cb, myparagraphSecTitle, leftMargin + ((tOfC.TofCSecNumPos == tOfC.TofCSecTitlePos && tmptxt.Equals(" "))? secNumPos : adjSecTitlePos), yPageStart - yLocation, width, height, "", yBottomMargin); float retval = Rtf2Pdf.TextAt(cb, myparagraphSecTitle, leftMargin + ((tOfC.TofCSecNumPos == tOfC.TofCSecTitlePos && tmptxt.Equals(" ")) ? secNumPos : adjSecTitlePos), yPageStart - yLocation, width, height, "", yBottomMargin);
if (retval == 0) // couldn't fit, flags need for a page break. if (retval == 0) // couldn't fit, flags need for a page break.
{ {
NewPage(); NewPage();
@ -2178,7 +2216,7 @@ namespace Volian.Print.Library
// was found in, i.e. Ginna Rev2 SAMG, SAG-3 step 7. This change won't affect other plants/formats but if the problem occurs // was found in, i.e. Ginna Rev2 SAMG, SAG-3 step 7. This change won't affect other plants/formats but if the problem occurs
// the format value can be used to adjust the location of bottom message. However, this could adversely affect pagination and // the format value can be used to adjust the location of bottom message. However, this could adversely affect pagination and
// each plant/format needs to be done on a case by base basis. // each plant/format needs to be done on a case by base basis.
float yBottomMargin = Math.Max(0, yTopMargin - (float)myItemInfo.MyDocStyle.Layout.PageLength - (myItemInfo.MyDocStyle.Continue.Bottom.LocAdj==null?0:(int)myItemInfo.MyDocStyle.Continue.Bottom.LocAdj)); float yBottomMargin = Math.Max(0, yTopMargin - (float)myItemInfo.MyDocStyle.Layout.PageLength - (myItemInfo.MyDocStyle.Continue.Bottom.LocAdj == null ? 0 : (int)myItemInfo.MyDocStyle.Continue.Bottom.LocAdj));
vlnParagraph.PathPrefix = myItemInfo.Path; vlnParagraph.PathPrefix = myItemInfo.Path;
//Rtf2Pdf.PdfDebug = true; //Rtf2Pdf.PdfDebug = true;
Rtf2Pdf.Offset = new PointF(0, 2.5F); Rtf2Pdf.Offset = new PointF(0, 2.5F);
@ -2298,7 +2336,7 @@ namespace Volian.Print.Library
else SupInfoPdfPage.Clear(); else SupInfoPdfPage.Clear();
string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + vlnParagraph.MyItemInfo.ItemID.ToString() + @".pdf"; string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + vlnParagraph.MyItemInfo.ItemID.ToString() + @".pdf";
iTextSharp.text.Rectangle pageSize = PDFPageSize.UsePaperSize(MyItem.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files iTextSharp.text.Rectangle pageSize = PDFPageSize.UsePaperSize(MyItem.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files
PdfContentByte cb = OpenDoc(SupInfoPdfName, pageSize); PdfContentByte cb = OpenDoc(ref SupInfoPdfName, pageSize);
if (cb == null) return; if (cb == null) return;
VlnSvgPageHelper myPageHelper = new VlnSvgPageHelper(vlnParagraph.MyItemInfo as SectionInfo, this, null, 0); VlnSvgPageHelper myPageHelper = new VlnSvgPageHelper(vlnParagraph.MyItemInfo as SectionInfo, this, null, 0);
cb.PdfWriter.PageEvent = myPageHelper; cb.PdfWriter.PageEvent = myPageHelper;
@ -2310,7 +2348,7 @@ namespace Volian.Print.Library
myPageHelper.ChangeBarDefinition = MyChangeBarDefinition; myPageHelper.ChangeBarDefinition = MyChangeBarDefinition;
float yPageStart = yTopMargin; float yPageStart = yTopMargin;
vlnParagraph._yPageStartForSupInfo = yTopMargin; vlnParagraph._yPageStartForSupInfo = yTopMargin;
SupInfoAjustGroupings(vlnParagraph,cb); SupInfoAjustGroupings(vlnParagraph, cb);
SupInfoPrintType = E_SupInfoPrintType.SupInfoPdfPrint; SupInfoPrintType = E_SupInfoPrintType.SupInfoPdfPrint;
vlnParagraph.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); vlnParagraph.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin);
SupInfoPrintType = E_SupInfoPrintType.Merge; SupInfoPrintType = E_SupInfoPrintType.Merge;
@ -2347,11 +2385,11 @@ namespace Volian.Print.Library
// Initialize font decrement // Initialize font decrement
float decrement = 2f; float decrement = 2f;
float fontSize = grp[0].IParagraph.Leading; // current font size float fontSize = grp[0].IParagraph.Leading; // current font size
float mpglen = MeasureSupInfoGroupLength(grp, cb,pageLength); // Measure the length of the group of supinfo paragraphs float mpglen = MeasureSupInfoGroupLength(grp, cb, pageLength); // Measure the length of the group of supinfo paragraphs
// If the group does not fit on a page then reduce the font size // If the group does not fit on a page then reduce the font size
if (mpglen > pageLength) if (mpglen > pageLength)
{ {
float newFontSize=fontSize; float newFontSize = fontSize;
// reduce the font size by _Decrement until the entire grouping fits on one page // reduce the font size by _Decrement until the entire grouping fits on one page
while (mpglen > pageLength) // While the measured supinfo group length is greatere than the page length while (mpglen > pageLength) // While the measured supinfo group length is greatere than the page length
{ {
@ -2413,7 +2451,7 @@ namespace Volian.Print.Library
private void ReduceSupInfoGroupFontSize(vlnParagraph pg, float scaler, PdfContentByte cb) private void ReduceSupInfoGroupFontSize(vlnParagraph pg, float scaler, PdfContentByte cb)
{ {
float hBefore = pg.Height;// Save initial paragraph height float hBefore = pg.Height;// Save initial paragraph height
AdjustSupInfoTable(pg, scaler,cb); AdjustSupInfoTable(pg, scaler, cb);
NewSupInfoFixChunks(pg, scaler);// Apply multiplier to font size NewSupInfoFixChunks(pg, scaler);// Apply multiplier to font size
pg.IParagraph.Leading = scaler * pg.IParagraph.Leading; // Adjust leading (line spacing) pg.IParagraph.Leading = scaler * pg.IParagraph.Leading; // Adjust leading (line spacing)
// B2017-112: Don't do the font size change if images. // B2017-112: Don't do the font size change if images.
@ -2474,9 +2512,9 @@ namespace Volian.Print.Library
// Create lists of heights before and after shrinking sup info // Create lists of heights before and after shrinking sup info
Dictionary<int, float> beforeRowHeight = new Dictionary<int, float>(); Dictionary<int, float> beforeRowHeight = new Dictionary<int, float>();
Dictionary<int, float> afterRowHeight = new Dictionary<int, float>(); Dictionary<int, float> afterRowHeight = new Dictionary<int, float>();
for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0)-1; i++) for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0) - 1; i++)
{ {
beforeRowHeight.Add(i, scaler * (pg.MyGrid.RowTop[i+1] - pg.MyGrid.RowTop[i])); beforeRowHeight.Add(i, scaler * (pg.MyGrid.RowTop[i + 1] - pg.MyGrid.RowTop[i]));
afterRowHeight.Add(i, 0); afterRowHeight.Add(i, 0);
} }
// Adjust font size for each cell. // Adjust font size for each cell.
@ -2484,18 +2522,18 @@ namespace Volian.Print.Library
{ {
float x = cell.MyTable.ColLeft[cell.c1]; float x = cell.MyTable.ColLeft[cell.c1];
float w = cell.MyTable.ColLeft[cell.c2 + 1] - x; float w = cell.MyTable.ColLeft[cell.c2 + 1] - x;
float hBefore = scaler * pg.GetParagraphHeight(cb,cell.MyPara,"",w); float hBefore = scaler * pg.GetParagraphHeight(cb, cell.MyPara, "", w);
foreach (Chunk chk in cell.MyPara.Chunks) foreach (Chunk chk in cell.MyPara.Chunks)
chk.Font.Size = scaler * chk.Font.Size; chk.Font.Size = scaler * chk.Font.Size;
float hAfter = 1.075F * pg.GetParagraphHeight(cb,cell.MyPara,"",w);// 1.075 is a magic number that worked for Ginna. Otherwise decenders overlapped the bottom line of the cell. float hAfter = 1.075F * pg.GetParagraphHeight(cb, cell.MyPara, "", w);// 1.075 is a magic number that worked for Ginna. Otherwise decenders overlapped the bottom line of the cell.
cell.HContent = hAfter; cell.HContent = hAfter;
// Save tthe height after adjusting the font size to account for changes in word wrap. // Save tthe height after adjusting the font size to account for changes in word wrap.
afterRowHeight[cell.r1]=Math.Max(hAfter,afterRowHeight[cell.r1]); afterRowHeight[cell.r1] = Math.Max(hAfter, afterRowHeight[cell.r1]);
} }
for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0)-1; i++) for (int i = 0; i < pg.MyGrid.RowTop.GetLength(0) - 1; i++)
{ {
pg.MyGrid.RowTop[i+1] = scaler * pg.MyGrid.RowTop[i+1];// Adjust for leading pg.MyGrid.RowTop[i + 1] = scaler * pg.MyGrid.RowTop[i + 1];// Adjust for leading
pg.MyGrid.RowTop[i+1] += (afterRowHeight[i]-beforeRowHeight[i]); //Adjust for word wrapping pg.MyGrid.RowTop[i + 1] += (afterRowHeight[i] - beforeRowHeight[i]); //Adjust for word wrapping
} }
} }
} }
@ -2527,7 +2565,7 @@ namespace Volian.Print.Library
foreach (Chunk chk in po.IParagraph.Chunks) foreach (Chunk chk in po.IParagraph.Chunks)
chk.Font.Size = scaler * chk.Font.Size; chk.Font.Size = scaler * chk.Font.Size;
po.IParagraph.Leading = scaler * po.IParagraph.Leading;// Apply the multiplier to the leading (line spacing) po.IParagraph.Leading = scaler * po.IParagraph.Leading;// Apply the multiplier to the leading (line spacing)
po.YOffset = NewSupInfoFixOffset(po,scaler);// Adjust the YOffset po.YOffset = NewSupInfoFixOffset(po, scaler);// Adjust the YOffset
} }
/// <summary> /// <summary>
/// Adjust the Font Size /// Adjust the Font Size
@ -2621,7 +2659,7 @@ namespace Volian.Print.Library
{ {
string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + myPageHelper.MySection.ItemID.ToString() + @".pdf"; string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + myPageHelper.MySection.ItemID.ToString() + @".pdf";
PdfReader pdfreader = new PdfReader(SupInfoPdfName); PdfReader pdfreader = new PdfReader(SupInfoPdfName);
sipage = cb.PdfWriter.GetImportedPage(pdfreader, getpage+1); sipage = cb.PdfWriter.GetImportedPage(pdfreader, getpage + 1);
// F2023-035: WCN - allow for change in left margin for supplemental information pages by // F2023-035: WCN - allow for change in left margin for supplemental information pages by
// setting a value in the DocStyle for the adjustment. When importing the vlnParagraph page // setting a value in the DocStyle for the adjustment. When importing the vlnParagraph page
// use this adjustment (note that page list items are done in VlnSvgPageHelper) // use this adjustment (note that page list items are done in VlnSvgPageHelper)
@ -2641,7 +2679,7 @@ namespace Volian.Print.Library
} }
public void DoFoldoutPage(PdfContentByte cb, string str, PdfLayer textLayer, VlnSvgPageHelper myPageHelper, int foldoutindx, bool insertBlankPages) public void DoFoldoutPage(PdfContentByte cb, string str, PdfLayer textLayer, VlnSvgPageHelper myPageHelper, int foldoutindx, bool insertBlankPages)
{ {
if (_MyFoldoutSection == null || _MyFoldoutSection.Count==0) return; if (_MyFoldoutSection == null || _MyFoldoutSection.Count == 0) return;
// if the very first page to be output is a 'foldout', treat this as a special case, since // if the very first page to be output is a 'foldout', treat this as a special case, since
// if duplex printing is on, the foldout should always be on the left side, i.e. or behind // if duplex printing is on, the foldout should always be on the left side, i.e. or behind
@ -2667,7 +2705,7 @@ namespace Volian.Print.Library
PdfImportedPage fgPage = null; PdfImportedPage fgPage = null;
try try
{ // read saved foldout page { // read saved foldout page
fgPage = cb.PdfWriter.GetImportedPage(_MyFoldoutReader[foldoutindx],1); fgPage = cb.PdfWriter.GetImportedPage(_MyFoldoutReader[foldoutindx], 1);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -2679,7 +2717,7 @@ namespace Volian.Print.Library
AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, fgPage, 0, 0); AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, fgPage, 0, 0);
foreach (iTextSharp.text.pdf.PdfAnnotation.PdfImportedLink il in _MyFoldoutReader[foldoutindx].GetLinks(1)) foreach (iTextSharp.text.pdf.PdfAnnotation.PdfImportedLink il in _MyFoldoutReader[foldoutindx].GetLinks(1))
{ {
if(!il.IsInternal() ) if (!il.IsInternal())
cb.PdfWriter.AddAnnotation(il.CreateAnnotation(cb.PdfWriter)); cb.PdfWriter.AddAnnotation(il.CreateAnnotation(cb.PdfWriter));
} }
@ -2873,7 +2911,7 @@ namespace Volian.Print.Library
public iTextSharp.text.Rectangle GetSize(SectionInfo sectInfo, int pageNumber) public iTextSharp.text.Rectangle GetSize(SectionInfo sectInfo, int pageNumber)
{ {
string key = string.Format("{0}.{1}", sectInfo.ItemID, pageNumber); string key = string.Format("{0}.{1}", sectInfo.ItemID, pageNumber);
if(dicSize.ContainsKey(key)) if (dicSize.ContainsKey(key))
return dicSize[key]; return dicSize[key];
return PDFPageSize.UsePaperSize(sectInfo.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files return PDFPageSize.UsePaperSize(sectInfo.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // C2020-002 paper size is now set in the format files
} }
@ -2890,7 +2928,7 @@ namespace Volian.Print.Library
{ {
if (si.IsStepSection) if (si.IsStepSection)
{ {
if(si.Sections != null)LoadSectionTree(si); if (si.Sections != null) LoadSectionTree(si);
} }
else else
{ {
@ -2900,9 +2938,9 @@ namespace Volian.Print.Library
try try
{ {
FileInfo fi = new FileInfo(MyPdfFile); FileInfo fi = new FileInfo(MyPdfFile);
if (fi.Length == 0 ) // B2017-218 Handle invalid word sections if (fi.Length == 0) // B2017-218 Handle invalid word sections
{ {
if(!PromsPrinter.BaselineTesting) //B2018-071 Output a message box unless baseline testing is being performed. if (!PromsPrinter.BaselineTesting) //B2018-071 Output a message box unless baseline testing is being performed.
MessageBox.Show(si.DisplayNumber + " " + si.DisplayText + " is not valid", "Invalid Word Section", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); MessageBox.Show(si.DisplayNumber + " " + si.DisplayText + " is not valid", "Invalid Word Section", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return; return;
} }
@ -2960,3 +2998,4 @@ namespace Volian.Print.Library
// } // }
//} //}
} }

View File

@ -1046,8 +1046,9 @@ namespace Volian.Print.Library
// Calvert Alarms have a special case, center text if the next/previous is not the same type of caution or note. // Calvert Alarms have a special case, center text if the next/previous is not the same type of caution or note.
// Calvert Alarms have a note1 that is a warning. if a regular note preceeded it, this regular note was not centered. // Calvert Alarms have a note1 that is a warning. if a regular note preceeded it, this regular note was not centered.
// F2023-126: Vogtle Alarms - center single line caution/note if more than one type exist off step, added the check for NoteCautionCenterOneAllTypes
bool doAlign = false; bool doAlign = false;
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && (MyItemInfo.IsCaution || MyItemInfo.IsNote || MyItemInfo.IsNote1)) if ((MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert || MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.NoteCautionCenterOneAllTypes) && (MyItemInfo.IsCaution || MyItemInfo.IsNote || MyItemInfo.IsNote1))
{ {
bool diffAsPrev = MyItemInfo.MyPrevious == null || (MyItemInfo.MyPrevious != null && MyItemInfo.MyContent.Type != MyItemInfo.MyPrevious.MyContent.Type); bool diffAsPrev = MyItemInfo.MyPrevious == null || (MyItemInfo.MyPrevious != null && MyItemInfo.MyContent.Type != MyItemInfo.MyPrevious.MyContent.Type);
bool diffAsNext = MyItemInfo.NextItem == null || (MyItemInfo.NextItem != null && MyItemInfo.MyContent.Type != MyItemInfo.NextItem.MyContent.Type); bool diffAsNext = MyItemInfo.NextItem == null || (MyItemInfo.NextItem != null && MyItemInfo.MyContent.Type != MyItemInfo.NextItem.MyContent.Type);