F2023-035: WCN Supplemental information pages, when duplex print need left margin adjustment for hole punch
This commit is contained in:
parent
1fa6b5f7d8
commit
764e5b2bbd
Binary file not shown.
Binary file not shown.
@ -171,6 +171,18 @@ namespace VEPROMS.CSLA.Library
|
||||
return LazyLoad(ref _SupplementalInformation, "@SupplementalInformation");
|
||||
}
|
||||
}
|
||||
// F2023-035: WCN - allow for change in left margin for supplemental information pages by
|
||||
// setting a value in the DocStyle for the adjustment. This is used when importing the vlnParagraph page
|
||||
// page & when doing pagelist items
|
||||
private LazyLoad<float?> _SupInfoMargAdj;
|
||||
public float? SupInfoMargAdj
|
||||
{
|
||||
get
|
||||
{
|
||||
return LazyLoad(ref _SupInfoMargAdj, "@SupInfoMargAdj");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
#region LandscapePageList
|
||||
[Category("Miscellaneous")]
|
||||
|
@ -2618,7 +2618,11 @@ namespace Volian.Print.Library
|
||||
string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + myPageHelper.MySection.ItemID.ToString() + @".pdf";
|
||||
PdfReader pdfreader = new PdfReader(SupInfoPdfName);
|
||||
sipage = cb.PdfWriter.GetImportedPage(pdfreader, getpage+1);
|
||||
AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, sipage, 0, 0);
|
||||
// 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
|
||||
// use this adjustment (note that page list items are done in VlnSvgPageHelper)
|
||||
float lmargadj = myPageHelper.MySection.MyDocStyle.SupInfoMargAdj == null ? 0 : (float)myPageHelper.MySection.MyDocStyle.SupInfoMargAdj;
|
||||
AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, sipage, lmargadj, 0);
|
||||
DoingFacingPage = true;
|
||||
myPageHelper.ResetSvg();
|
||||
NewPage();
|
||||
|
@ -1037,6 +1037,7 @@ i = 0;
|
||||
HLSText = hlsText;
|
||||
HasHLSTextId = hlsItemId;
|
||||
MyPromsPrinter = myPromsPrinter;
|
||||
CreatingSupInfoPage = myPromsPrinter.DoingFacingPage;
|
||||
MySection = mySection;
|
||||
}
|
||||
private Volian.Svg.Library.Svg BuildSvg(VEPROMS.CSLA.Library.SectionInfo mySection, bool forceLoad)
|
||||
@ -1345,6 +1346,10 @@ i = 0;
|
||||
|
||||
bool usePSIvalue = false; // C2021-065 used with ROLkUpMatch pagelist flag (Barakah Alarms)
|
||||
string otherChildUnit = string.Empty; // C2021-065 used when OTHER applicability information is used for the ROLookUp
|
||||
// F2023-035: WCN - allow for change in left margin for supplemental information pages by
|
||||
// setting a value in the DocStyle for the adjustment.
|
||||
float supInfoMargAdj = 0;
|
||||
if (CreatingSupInfoPage || MyPromsPrinter.DoingFacingPage) supInfoMargAdj = MySection.MyDocStyle.SupInfoMargAdj == null ? 0 : (float)MySection.MyDocStyle.SupInfoMargAdj;
|
||||
foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems)
|
||||
{
|
||||
if (pageItem.Token == null) continue; // can be null if token is dependent on PSI lookup!
|
||||
@ -1392,7 +1397,7 @@ i = 0;
|
||||
foreach (Match m in sm) // resolve pagelist tokens that are parameters for ROLookup()
|
||||
{
|
||||
string tnk = m.Value;
|
||||
ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref parms, tnk);
|
||||
ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref parms, tnk, supInfoMargAdj);
|
||||
}
|
||||
string[] parts = parms.Split(",".ToCharArray());// split on comma
|
||||
// B2019-031 Support commas embedded in Alarm ID (Procedure Number)
|
||||
@ -1515,7 +1520,7 @@ i = 0;
|
||||
foreach (Match subMatch in subMatches)
|
||||
{
|
||||
string subToken = subMatch.Value;
|
||||
ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, subToken);
|
||||
ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, subToken, supInfoMargAdj);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1570,7 +1575,7 @@ i = 0;
|
||||
foreach (Match subMatch in subMatches)
|
||||
{
|
||||
string subToken = subMatch.Value;
|
||||
ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, subToken);
|
||||
ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, subToken, supInfoMargAdj);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1578,19 +1583,19 @@ i = 0;
|
||||
|
||||
else
|
||||
{
|
||||
if (!ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, token)) break;
|
||||
if (!ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, token, supInfoMargAdj)) break;
|
||||
}
|
||||
} // end foreach matches
|
||||
if (plstr != string.Empty)
|
||||
{
|
||||
if (useFontForCheckOffHeader != null)
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, useFontForCheckOffHeader, MySection));
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, useFontForCheckOffHeader, MySection, supInfoMargAdj));
|
||||
else
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection));
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection, supInfoMargAdj));
|
||||
}
|
||||
}
|
||||
else
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, pltok, MySection));
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, pltok, MySection, supInfoMargAdj));
|
||||
}
|
||||
}
|
||||
// Proms page numbering designed requires a "{PAGE}" token to increment the page counter. So the easiest way
|
||||
@ -1698,7 +1703,7 @@ i = 0;
|
||||
/// true - if token is resolved
|
||||
/// false - if entire text is processed
|
||||
/// </returns>
|
||||
private bool ProcessPaglistToken(VEPROMS.CSLA.Library.SectionInfo section, SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, ref VE_Font useFontForCheckOffHeader, ref string plstr, string token)
|
||||
private bool ProcessPaglistToken(VEPROMS.CSLA.Library.SectionInfo section, SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, ref VE_Font useFontForCheckOffHeader, ref string plstr, string token, float supInfoMargAdj)
|
||||
{
|
||||
bool retval = true;
|
||||
|
||||
@ -1751,7 +1756,7 @@ i = 0;
|
||||
case "{BOX9}":
|
||||
case "[BOX9]":
|
||||
plstr = plstr.Replace(token, string.Empty);
|
||||
svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(token)));
|
||||
svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(token), supInfoMargAdj));
|
||||
break;
|
||||
case "{PMODEBOX}": // need to set either 1 or 2 depending on number of columns
|
||||
case "[PMODEBOX]":
|
||||
@ -1764,7 +1769,7 @@ i = 0;
|
||||
box = "2";
|
||||
box = "{BOX" + box + "}";
|
||||
plstr = plstr.Replace(token, string.Empty);
|
||||
svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(box)));
|
||||
svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(box), supInfoMargAdj));
|
||||
break;
|
||||
case "{DRAFTPAGE}":
|
||||
//if (!AllowedWatermarks.Contains("Draft")) AllowedWatermarks.Add("Draft"); -- B2018-124 not needed anymore
|
||||
@ -2059,7 +2064,7 @@ i = 0;
|
||||
VE_Font vf = sindx <= 0 ? pageItem.Font :
|
||||
section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font;
|
||||
useFontForCheckOffHeader = vf;
|
||||
PageListCheckOffHeader = PageItemToSvgText(pageItem, pageItem.Token, vf, section);
|
||||
PageListCheckOffHeader = PageItemToSvgText(pageItem, pageItem.Token, vf, section, 0);
|
||||
break;
|
||||
case "{HLSTEXT}":
|
||||
DidHLSText = true;
|
||||
@ -2199,7 +2204,7 @@ i = 0;
|
||||
if (HLSTAB.Contains("{!Clock}")) // F2022-024 replace with the clock symbol defined in GenMac format file
|
||||
{
|
||||
HLSTAB = HLSTAB.Replace("{!Clock}",string.Empty).TrimStart(" ".ToCharArray());
|
||||
svgGroup.Add(PageItemToSvgUse(pageItem, "Clock"));
|
||||
svgGroup.Add(PageItemToSvgUse(pageItem, "Clock", supInfoMargAdj));
|
||||
}
|
||||
plstr = plstr.Replace(token, HLSTAB);
|
||||
break;
|
||||
@ -2318,7 +2323,7 @@ i = 0;
|
||||
if (token.Contains(@"RO-"))
|
||||
{
|
||||
plstr = token.Replace("{",string.Empty).Replace("}",string.Empty);
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection));
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection, 0));
|
||||
}
|
||||
if (token.Contains(@"PS-"))
|
||||
{
|
||||
@ -2379,7 +2384,7 @@ i = 0;
|
||||
{
|
||||
if (plstr != string.Empty)
|
||||
{
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection));
|
||||
svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection, supInfoMargAdj));
|
||||
plstr = string.Empty;
|
||||
}
|
||||
//svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token));
|
||||
@ -2734,21 +2739,21 @@ i = 0;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
private SvgPart PageItemToSvgUse(VEPROMS.CSLA.Library.PageItem pageItem, string templateName)
|
||||
private SvgPart PageItemToSvgUse(VEPROMS.CSLA.Library.PageItem pageItem, string templateName, float supmargadj)
|
||||
{
|
||||
SvgUse svgUse = new SvgUse();
|
||||
svgUse.UseID = templateName;
|
||||
svgUse.X = new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT);
|
||||
svgUse.X = new SvgMeasurement((float)(pageItem.Col ?? 0) + supmargadj, E_MeasurementUnits.PT); // F2023-035: Add in supplemental info margin adjust
|
||||
svgUse.Y = new SvgMeasurement((float)(pageItem.Row ?? 0), E_MeasurementUnits.PT);
|
||||
return svgUse;
|
||||
}
|
||||
private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, VE_Font font, SectionInfo mySection)
|
||||
private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, VE_Font font, SectionInfo mySection, float supmargadj)
|
||||
{
|
||||
SvgText svgText = PageItemToSvgText(pageItem, text, mySection);
|
||||
SvgText svgText = PageItemToSvgText(pageItem, text, mySection, supmargadj);
|
||||
svgText.Font = font.WindowsFont;
|
||||
return svgText;
|
||||
}
|
||||
private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, SectionInfo mySection)
|
||||
private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, SectionInfo mySection, float supmargadj)
|
||||
{
|
||||
SvgText svgText = new SvgText();
|
||||
// F2021-053: Do replace words for Page List items. Send format items down to svgtext.
|
||||
@ -2797,8 +2802,9 @@ i = 0;
|
||||
int dotsPerChar = (int)(2400 / (mySection.MyDocStyle.Layout.PageWidth / 6));
|
||||
lcol = (lcol * 25) / dotsPerChar;
|
||||
}
|
||||
|
||||
svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT);
|
||||
// F2023-035: WCN - allow for change in left margin for supplemental information pages by
|
||||
// setting a value in the DocStyle for the adjustment.
|
||||
svgText.X = new SvgMeasurement((float)lcol - colAdj16bit + supmargadj, E_MeasurementUnits.PT); // F2023-035: Add in supplemental info margin adjust
|
||||
svgText.Y = new SvgMeasurement(row, E_MeasurementUnits.PT);
|
||||
if (svgText.Font.Underline && svgText.Text.EndsWith(" ")) svgText.Text = svgText.Text.Substring(0, svgText.Text.Length - 1) + "\xA0";// replace last space with a hardspace
|
||||
// C2018-004 create meta file for baseline compares
|
||||
|
Loading…
x
Reference in New Issue
Block a user