From a3f89c5fa0c4bae79c2d2ffbc201c6cbc7459fc2 Mon Sep 17 00:00:00 2001 From: Kathy Date: Tue, 6 Jul 2021 15:16:40 +0000 Subject: [PATCH] C2021-019: Override Watermark Text and Color --- PROMS/Formats/fmtall/BNPP1all.xml | Bin 190868 -> 192284 bytes PROMS/Formats/fmtall/BNPP2all.xml | Bin 189676 -> 191098 bytes PROMS/Formats/fmtall/BNPPalrall.xml | Bin 175592 -> 177008 bytes PROMS/Formats/fmtall/BNPPbckall.xml | Bin 156884 -> 158300 bytes PROMS/Formats/fmtall/BNPPgopall.xml | Bin 190904 -> 192326 bytes .../DlgPrintProcedure.Designer.cs | 20 +++++- .../DlgPrintProcedure.cs | 61 ++++++++++++++++-- PROMS/VEPROMS User Interface/frmPSI.cs | 31 +++++++++ PROMS/Volian.Print.Library/PromsPrinter.cs | 14 ++++ PROMS/Volian.Svg.Library/iTextSharp.cs | 21 ++++-- 10 files changed, 135 insertions(+), 12 deletions(-) diff --git a/PROMS/Formats/fmtall/BNPP1all.xml b/PROMS/Formats/fmtall/BNPP1all.xml index b9308aedac34a369954139cd5d8dd55552ebb6c8..eb48226bf1f78d8581faff0599131b867db6c62a 100644 GIT binary patch delta 412 zcma)2u}Z^G6g{a{i;++%0pp@Z5QPlZB3i*A#%b{_6zPUd3~4xM}|98^=}I|xV=iAz*v(P3;rNsUaA uwTKiAd_>aCo8sh*^dpjoB!69ym;978Eu;Valo`7=>|4Xu-V8f)^YIH-RZrsp delta 27 jcmbPpk9*2x?hPzT(;Ln*ay3s=Z=a^lxP6*BQ`>O>pqL8< diff --git a/PROMS/Formats/fmtall/BNPP2all.xml b/PROMS/Formats/fmtall/BNPP2all.xml index c71ccb393dfe8d682ec6c271eff5aadff8677bd1..e92db5332d610b1c62fe92b3d02cd3ce25e8dfc3 100644 GIT binary patch delta 430 zcma)2F-yZ>5Ph)}g@7nUGy!9c5L5zcJH!kQHI1d%HWFgHTCkv4v4m1|a&T~#`y+~j zt2hWQPW}ujxVq>|>g1w)d>`+9ckk}qy}ziRZ|ZH{l;QO1eQ*9q$vD`QoAI0sjc_Tz z03F0U$2cU)qlGs5>E9_)j1&1%-HeO%M57et!*JwrVs4>@5+e8rQ6~zqivZ1(hp3_~ z?a7=R%-UjTdbR-fr{|s)t^K1XeRw!Smp5jACtJkEZwHruIG`5~H99j{t&a=zIMo)J zN2hgc^BqMxIA=VGl&RU_H2c&=R4p^BM&@G$HY@qeuu(~oZ=*pHkd%lj4B8yL!IUal nK-MG*SinalcZ)OWDw07)>wlfnrK{;zmU(TN%7bN&JwJT|B^Fti delta 27 jcmex$h5OA(?hOh`)AiJuxSDsUx9?DA+`dDd>Chnnrz{I; diff --git a/PROMS/Formats/fmtall/BNPPalrall.xml b/PROMS/Formats/fmtall/BNPPalrall.xml index 22656b11b086f7270b14306353fdec00f3c3ab57..4344d6ad7fe15bf162e847c8b8e2137c60ed1dfa 100644 GIT binary patch delta 410 zcmaEHo9n|ft_@+e;jvp_ca0By=+ sNT1BhE)McJ(DmzO#3!p*Nljj$$2UEphl!&(&bmF$nsIxaHB(m+0F6vkY5)KL delta 32 ocmezHjO)d1t_@+<(-Y1yvQ1yGpOK~cg+u!b2gdC$9GE(a00tEf>;M1& diff --git a/PROMS/Formats/fmtall/BNPPbckall.xml b/PROMS/Formats/fmtall/BNPPbckall.xml index c60ee7f3a3a9d5f4c12081ae7855a45324d371af..e119185a61df60534951f2277c089b7064a3a04f 100644 GIT binary patch delta 411 zcma)2O-sX25S$1FD-vo;#1^zhFHs^|3$_IX+ZanR?Sl~8vtSB-VGX6|$%6+yh?hP1 zHv|v<2Jb!kBlI6QNsnIS@g6g8cV~8Y{F(k5r{5ZuWER%n^-Nz&ZKHy!l+18dVT2G7 z&lygMmeIorhRNR*QG^RIvo(31ot7O_*UEB}RdYSm5x|9yHj$5`*PkWLkkMjQ_KO9| z*AjU{&h!4}KP+hL;2M{_5$!6eGD_HDgSm;}{U1Xpbdv^rv~WP=z+)pTR2t$A0}il9 z<}j~~2H!~}#4Y1-B(6DR^T(_USYd4i3)xIc4$@ z6hR%F^#R<2PoR&WC+PzymwP$qen00s-^+*f7FqYV&f}MTV~nq1T^{VLMApuN#u<7D zcn+~olt&kP7$kouL;;RuE?<&p!jvaFZ4~8uM$dOqh7Sb~Eg}yMXmk?pp^hym8JZ2b zvnNw4C?#qKg?}hfy^21Lc>`?7wY8cmqJU*in;9t&|5Rp&CMR;(Yk&)!(#a-Sl@qp5 z;X8`-aL#xf;k4MMi(S_FtXgDNlT2X=E;}h^xTqyaxoDGUk}^?^L6?TxOsSJ;vJR1E m0|j4xrn2&Crjtd)M&h++q%xh8Pdj%RI#;1%JcrKM?E5bXmsnK* delta 27 jcmX?hk9)^u?hR9vrZ4!w$knW)(XOMxxLrqsN$NNNtZ@o| diff --git a/PROMS/VEPROMS User Interface/DlgPrintProcedure.Designer.cs b/PROMS/VEPROMS User Interface/DlgPrintProcedure.Designer.cs index 8acbd799..7c1b1e33 100644 --- a/PROMS/VEPROMS User Interface/DlgPrintProcedure.Designer.cs +++ b/PROMS/VEPROMS User Interface/DlgPrintProcedure.Designer.cs @@ -60,6 +60,7 @@ namespace VEPROMS this.muLocID = new DevComponents.Editors.ComboItem(); this.lblWatermarkS = new DevComponents.DotNetBar.LabelX(); this.cbxWaterMark = new DevComponents.DotNetBar.Controls.ComboBoxEx(); + this.lblWaterMarkOvrd = new DevComponents.DotNetBar.LabelX(); this.btnCreatePDF = new DevComponents.DotNetBar.ButtonX(); this.btnCancel = new DevComponents.DotNetBar.ButtonX(); this.DlgBrowseFolder = new System.Windows.Forms.FolderBrowserDialog(); @@ -592,7 +593,7 @@ namespace VEPROMS this.cbxWaterMark.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cbxWaterMark.FormattingEnabled = true; this.cbxWaterMark.ItemHeight = 17; - this.cbxWaterMark.Location = new System.Drawing.Point(181, 70); + this.cbxWaterMark.Location = new System.Drawing.Point(181, 65); this.cbxWaterMark.Margin = new System.Windows.Forms.Padding(2); this.cbxWaterMark.Name = "cbxWaterMark"; this.cbxWaterMark.Size = new System.Drawing.Size(157, 23); @@ -601,6 +602,21 @@ namespace VEPROMS this.cbxWaterMark.Visible = false; this.cbxWaterMark.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cbxWaterMark.WatermarkText = "select watermark option"; + this.lblWatermarkS.Text = "Watermark"; + // + // lblWaterMarkOvrd + // + this.lblWaterMarkOvrd.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; + this.lblWaterMarkOvrd.BackColor = System.Drawing.Color.Transparent; + this.lblWaterMarkOvrd.Font = new System.Drawing.Font("Microsoft Sans Serif",7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblWaterMarkOvrd.Location = new System.Drawing.Point(181, 67); + this.lblWaterMarkOvrd.Margin = new System.Windows.Forms.Padding(2); + this.lblWaterMarkOvrd.Name = "lblWaterMarkOvrd"; + this.lblWaterMarkOvrd.Size = new System.Drawing.Size(180, 23); + this.superTooltip1.SetSuperTooltip(this.lblWaterMarkOvrd, new DevComponents.DotNetBar.SuperTooltipInfo("Watermark Overrides", "", "Shows Watermark and Watermark colors as overwridden from Procedure Specific Information (PSI).", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(130, 100))); + this.lblWaterMarkOvrd.TabIndex = 106; + this.lblWaterMarkOvrd.Text = "Watermark"; + this.lblWaterMarkOvrd.Visible = false; // // btnCreatePDF // @@ -1234,6 +1250,7 @@ namespace VEPROMS this.expPrnSetting.Controls.Add(this.ppGpbxUserSpecCB); this.expPrnSetting.Controls.Add(this.labelX5); this.expPrnSetting.Controls.Add(this.cbxWaterMark); + this.expPrnSetting.Controls.Add(this.lblWaterMarkOvrd); this.expPrnSetting.Controls.Add(this.lblGeneratePlacekeeper); this.expPrnSetting.Controls.Add(this.swtbtnChgBar); this.expPrnSetting.Controls.Add(this.swtbtnWaterMark); @@ -1413,6 +1430,7 @@ namespace VEPROMS private System.Windows.Forms.CheckBox cbxOverwritePDF2; private System.Windows.Forms.CheckBox cbxOpenAfterCreate2; private DevComponents.DotNetBar.Controls.ComboBoxEx cbxWaterMark; + private DevComponents.DotNetBar.LabelX lblWaterMarkOvrd; private System.Windows.Forms.BindingSource docVersionConfigBindingSource; private DevComponents.DotNetBar.Controls.TextBoxX txbPDFLocation; private System.Windows.Forms.CheckBox cbxDebug; diff --git a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs index 4c95ee11..18e9b135 100644 --- a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs +++ b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs @@ -425,12 +425,33 @@ namespace VEPROMS itm.Save(); } } + // C2021-019: Override Watermark Text and Color from PSI + string waterMarkTextOverride = pc.GetValue("PSI", "WATERMARKOVERRIDE"); + if (waterMarkTextOverride != null && waterMarkTextOverride != "") + { + cbxWaterMark.Visible = false; + lblWaterMarkOvrd.Visible = true; + lblWaterMarkOvrd.Text = waterMarkTextOverride; + } + // do color override + // if there is override text, label contains overridden text in the color selected from color override + // if no override text, combo box text color is override color + string waterMarkColorOverride = pc.GetValue("PSI", "WATERMARKOVERRIDECLR"); + if (waterMarkColorOverride != null && waterMarkColorOverride != "") + { + string strColor = waterMarkColorOverride.ToUpper().Contains("DEFAULT") ? "BLUE" : waterMarkColorOverride; + if (lblWaterMarkOvrd.Visible) + lblWaterMarkOvrd.ForeColor = Color.FromName(strColor); + else + cbxWaterMark.ForeColor = Color.FromName(strColor); + } } else { RevNum = "0"; RevDate = DateTime.Today.ToShortDateString(); ReviewDate = null; + cbxWaterMark.Visible = true; } // B2019-044 use Enum without the "None" option for the print dialog cbxWaterMark.DataSource = EnumDetail.Details(); @@ -555,7 +576,26 @@ namespace VEPROMS private void swtbtnWaterMark_ValueChanged(object sender, EventArgs e) { - cbxWaterMark.Visible = swtbtnWaterMark.Value; + if (!swtbtnWaterMark.Value) // C2021-019: make both invisible + { + cbxWaterMark.Visible = swtbtnWaterMark.Value; + lblWaterMarkOvrd.Visible = swtbtnWaterMark.Value; + } + else // C2021-019: determine whether combo box or lable needs to be made visible + { + ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig; + string waterMarkTextOverride = pc.GetValue("PSI", "WATERMARKOVERRIDE"); + if (waterMarkTextOverride != null && waterMarkTextOverride != "") + { + cbxWaterMark.Visible = false; + lblWaterMarkOvrd.Visible = true; + } + else + { + cbxWaterMark.Visible = true; + lblWaterMarkOvrd.Visible = false; + } + } } private void txbPDFLocation_Leave(object sender, EventArgs e) @@ -650,7 +690,7 @@ namespace VEPROMS // If file exists, determine if overwrite checkbox allows overwrite, if not prompt. Volian.Print.Library.Rtf2Pdf.PdfDebug = cbxDebug.Checked; // B2019-128: The combo box list did not include the 'None' option so the selected value was not the correct watermark (had to add 1 to the selected index) - PrintWatermark pw = (swtbtnWaterMark.Value) ? (PrintWatermark)(cbxWaterMark.SelectedIndex+1) : PrintWatermark.None; + string waterMarkText = (swtbtnWaterMark.Value) ? cbxWaterMark.Text : "None"; // C2021-019 // Determine change bar settings. First get from config & then see if override from dialog. // Also check that format allows override. ChangeBarDefinition cbd = DetermineChangeBarSettings(); @@ -663,6 +703,12 @@ namespace VEPROMS { string locpdfname = null; // get pdf file name for later merge code MyProcedure = myProc; + // C2021-019: Override Watermark Text, 'waterMarkText' will have whatever watermark text should be printed + ProcedureConfig procConfig = MyProcedure.MyConfig as ProcedureConfig; + string waterMarkTextOverride = ""; + if (procConfig != null) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE"); + if (swtbtnWaterMark.Value && waterMarkTextOverride != null && waterMarkTextOverride != "") waterMarkText = waterMarkTextOverride; + // C2020-002 paper size is now set in the format files - default is Letter Volian.Print.Library.Rtf2Pdf.PaperSize = myProc.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize; if (myProc.Sections != null) @@ -686,7 +732,7 @@ namespace VEPROMS string myPDFPath = GetMultiunitPDFPath(); _MergedPdfPath = myPDFPath; // If Slave, need its subdirectory/unit path for merging // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered. - frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, + frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, waterMarkText, cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, myPDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50), swtbtnBlankPgsForDuplex.Value, _AllProcedures || Automatic, Prefix, SaveLinks, RemoveTrailingHardReturnsAndManualPageBreaks, swtbtnPROMSVersion.Value, true, tbBlankPage.Text, _MergedPfd);//C2018-009 print PROMS version frmStatus.CloseWhenDone = true; @@ -715,7 +761,7 @@ namespace VEPROMS if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText); // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered. // B2016-249 Output Procedure to folder associated with Parent Child - frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, + frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, waterMarkText, cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, GetMultiunitPDFPath(), cbd, txbPDFName.Text, new Point(Left, Bottom - 50), swtbtnBlankPgsForDuplex.Value, _AllProcedures || Automatic, Prefix, SaveLinks, RemoveTrailingHardReturnsAndManualPageBreaks, swtbtnPROMSVersion.Value, true, tbBlankPage.Text, _MergedPfd);//C2018-009 print PROMS version frmStatus.CloseWhenDone = true; @@ -746,7 +792,7 @@ namespace VEPROMS if (BaselineMetaFile.IsOpen) BaselineMetaFile.WriteLine("!! {0} | {1}", MyProcedure.DisplayNumber, MyProcedure.DisplayText); ProfileTimer.Pop(profileDepth1); // B2016-249 Output Procedure to folder associated with Parent Child - frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, + frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, waterMarkText, cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, GetMultiunitPDFPath(), cbd, txbPDFName.Text, new Point(Left, Bottom - 50), swtbtnBlankPgsForDuplex.Value, _AllProcedures || Automatic, Prefix, SaveLinks, RemoveTrailingHardReturnsAndManualPageBreaks, swtbtnPROMSVersion.Value, true, tbBlankPage.Text, _MergedPfd);//C2018-009 print PROMS version frmStatus.CloseWhenDone = true; @@ -847,7 +893,12 @@ namespace VEPROMS Volian.Print.Library.Rtf2Pdf.PdfDebug = cbxDebug.Checked; // B2019-044 don't print the watermark if the watermark switch on the print dialog is turned off + cbxWaterMark.Visible = true; string waterMarkText = (swtbtnWaterMark.Value) ? cbxWaterMark.Text : "None" ; // B2018-124 use text of watermark form drop down list instead of enum value + ProcedureConfig procConfig = MyProcedure.MyConfig as ProcedureConfig; + string waterMarkTextOverride = ""; + if (procConfig != null) waterMarkTextOverride = procConfig.GetValue("PSI", "WATERMARKOVERRIDE"); // C2021-019: override watermark text + if (swtbtnWaterMark.Value && waterMarkTextOverride != null && waterMarkTextOverride != "") waterMarkText = waterMarkTextOverride; // Determine change bar settings. First get from config & then see if override from dialog. // Also check that format allows override. ChangeBarDefinition cbd = DetermineChangeBarSettings(); diff --git a/PROMS/VEPROMS User Interface/frmPSI.cs b/PROMS/VEPROMS User Interface/frmPSI.cs index d729ac81..f84bafbf 100644 --- a/PROMS/VEPROMS User Interface/frmPSI.cs +++ b/PROMS/VEPROMS User Interface/frmPSI.cs @@ -16,11 +16,13 @@ namespace VEPROMS private StepTabRibbon _MyStepTabRibbon; private Dictionary _DicStepRtb; private Dictionary _DicCheckBox; + private Dictionary _DicComboBox; public frmPSI(ProcedureInfo pi) { InitializeComponent(); _DicStepRtb = new Dictionary(); _DicCheckBox = new Dictionary(); + _DicComboBox = new Dictionary(); InitializeSpecificControls(pi); _MyStepTabRibbon = new StepTabRibbon(); } @@ -92,6 +94,23 @@ namespace VEPROMS maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx; maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy; } + // C2021-019: override of watermark text/color - provide support for combo box in PSI dialog + if (fld.type.ToLower() == "combo") + { + ComboBox cmb = new ComboBox(); + _DicComboBox.Add(fld.name, cmb); + cmb.Location = new Point((int)fld.x * 2, (int)fld.y * 2); + cmb.Visible = true; + cmb.Width = (int)fld.width * 2; + string tmp = fld.text; + string[] tmps = tmp.Split(",".ToCharArray()); + foreach (string t in tmps) cmb.Items.Add(t); + string val = procConfig.GetValue("PSI", fld.name); + if (val != null && val != "") cmb.SelectedItem = val; + this.panelPSI.Controls.Add(cmb); + maxx = ((int)fld.x * 2 + (int)fld.width * 2) > maxx ? ((int)fld.x * 2 + (int)fld.width * 2) : maxx; + maxy = ((int)fld.y * 2 + (int)fld.height * 2) > maxy ? ((int)fld.y * 2 + (int)fld.height * 2) : maxy; + } } if (maxx > xB4Scroll) { @@ -163,6 +182,18 @@ namespace VEPROMS procConfig.SetValue("PSI", fld.name, newval); } } + // C2021-019: override of watermark text/color - save combo box selection + else if (fld.type.ToLower() == "combo") + { + ComboBox cmbcur = _DicComboBox[fld.name]; + string newval = cmbcur.Text; + string oldval = procConfig.GetValue("PSI", fld.name); + if (newval != oldval) + { + isDirty = true; + procConfig.SetValue("PSI", fld.name, newval); + } + } } if (isDirty) { diff --git a/PROMS/Volian.Print.Library/PromsPrinter.cs b/PROMS/Volian.Print.Library/PromsPrinter.cs index 6e0c217f..0c4c886c 100644 --- a/PROMS/Volian.Print.Library/PromsPrinter.cs +++ b/PROMS/Volian.Print.Library/PromsPrinter.cs @@ -817,6 +817,12 @@ namespace Volian.Print.Library get { return _AllowAllWatermarks; } set { _AllowAllWatermarks = value; } } + private string _WatermarkOverrideColor = "BLUE"; // C2021-019: Override watermark color + public string WatermarkOverrideColor + { + get { return _WatermarkOverrideColor; } + set { _WatermarkOverrideColor = value; } + } //private PdfReader readerWord; private string PrintProcedureOrFoldout(ProcedureInfo myProcedure, SectionInfo myFoldoutSection, string outputFileName, bool makePlacekeeper, bool makeContinuousActionSummary) { @@ -875,6 +881,13 @@ namespace Volian.Print.Library string LastFmtName = null; int lastDocStyle = -1; bool firstStepSec = true; + // C2021-019: Override the watermark color, stored in the PSI - color list set as combobox in PSI with list of colors + ProcedureConfig pc = myProcedure.MyConfig as ProcedureConfig; + if (pc != null) + { + string clr = pc.GetValue("PSI", "WATERMARKOVERRIDECLR"); + if (clr != null && clr != "") WatermarkOverrideColor = clr.ToUpper().Contains("DEFAULT") ? "BLUE" : clr; + } foreach (SectionInfo mySection in myProcedure.Sections) { // B2020-115 Calculate maximum available space on a page for figures @@ -950,6 +963,7 @@ namespace Volian.Print.Library //_MyHelper.DoZoomOMatic = DebugOutput; _MyHelper.OriginalPageBreak = OriginalPageBreak; _MyHelper.PROMSVersion = _PromsVersion; //C2018-009 print PROMS version + _MyHelper.WatermarkColor = WatermarkOverrideColor; // C2021-019: save the override for the watermark color OnStatusChanged("After Set PageEvent", PromsPrinterStatusType.SetPageEvent); } else diff --git a/PROMS/Volian.Svg.Library/iTextSharp.cs b/PROMS/Volian.Svg.Library/iTextSharp.cs index ab5bc710..564d8a1c 100644 --- a/PROMS/Volian.Svg.Library/iTextSharp.cs +++ b/PROMS/Volian.Svg.Library/iTextSharp.cs @@ -942,6 +942,12 @@ namespace Volian.Svg.Library get { return _Watermark; } set { _Watermark = value; } } + private string _WatermarkColor = "BLUE"; + public string WatermarkColor + { + get { return _WatermarkColor; } + set { _WatermarkColor = value; } + } private PdfLayer _PROMSVersionLayer; //C2018-009 print PROMS version public PdfLayer PROMSVersionLayer { @@ -1136,7 +1142,7 @@ namespace Volian.Svg.Library System.Drawing.Drawing2D.Matrix myMatrix = new System.Drawing.Drawing2D.Matrix((float)Math.Cos(a), (float)Math.Sin(a), (float)-Math.Sin(a), (float)Math.Cos(a), 0, cb.PdfDocument.PageSize.Height); cb.Transform(myMatrix); } - SvgWatermark myWatermark = new SvgWatermark(cb, Watermark, System.Drawing.Color.Blue, .15F); + SvgWatermark myWatermark = new SvgWatermark(cb, Watermark, System.Drawing.Color.FromName(WatermarkColor), .15F); //myWatermark.SetSquareDotPattern(.7F); myWatermark.Draw(); if (_WatermarkLayer != null) cb.EndLayer(); @@ -1211,7 +1217,7 @@ namespace Volian.Svg.Library { private PdfContentByte _ContentByte; private string _Text; - private Color _Color; + private System.Drawing.Color _Color; private PdfPatternPainter _PatternPainter; private BaseFont _Basefont; private float _Fontsize; @@ -1225,11 +1231,12 @@ namespace Volian.Svg.Library _Text = text; //float radius = .5F; //float space = 3; - _Color = new Color(color); + _Color = color; // C2021-019: save color for color override _Opacity = opacity; //SetDotPattern(radius, space); //SetTextLayout(); } + #region commentedout //private void SetTextLayout() //{ // Rectangle pageSize = _ContentByte.PdfWriter.PageSize; // Get page size @@ -1316,6 +1323,7 @@ namespace Volian.Svg.Library // _PatternPainter.ShowTextAligned(PdfContentByte.ALIGN_LEFT, _Text, wid, hgtA, 0); // _PatternPainter.EndText(); //} + #endregion public void Draw() { _ContentByte.SaveState(); @@ -1364,10 +1372,11 @@ namespace Volian.Svg.Library g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; gp.AddString(msg, fnt.FontFamily, 0, fntSize, new System.Drawing.PointF(-bnds.X, -bnds.Y), System.Drawing.StringFormat.GenericTypographic); - System.Drawing.Drawing2D.HatchBrush aHatchBrush = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Percent25, System.Drawing.Color.FromArgb(64, - System.Drawing.Color.Blue), System.Drawing.Color.Transparent); + // C2021-019: allow setting of watermark color + System.Drawing.Drawing2D.HatchBrush aHatchBrush = new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Percent25, + _Color, System.Drawing.Color.Transparent); g.FillPath(aHatchBrush, gp); - g.DrawPath(new System.Drawing.Pen(System.Drawing.Color.FromArgb(96, System.Drawing.Color.Blue)), gp); + g.DrawPath(new System.Drawing.Pen(_Color), gp); //g.DrawRectangle(System.Drawing.Pens.Cyan, 0, 0, bnds.Width, bnds.Height); } _WatermarkImage = iTextSharp.text.Image.GetInstance(bmp, System.Drawing.Imaging.ImageFormat.Png);