C2018-004 logic to print meta file information

C2018-009 logic to print PROMS version on PDF pages
This commit is contained in:
John Jenko 2018-04-12 20:33:52 +00:00
parent 72a91a6431
commit ff796c7e1c
8 changed files with 215 additions and 35 deletions

View File

@ -100,7 +100,7 @@ namespace Volian.Print.Library
get get
{ {
int retval = ++TextAtCounter; int retval = ++TextAtCounter;
//if (InList(retval, 461)) Console.WriteLine("TextAt {0}", retval); //if (InList(retval, 17)) Console.WriteLine("TextAt {0}", retval);
return retval; return retval;
} }
} }
@ -126,8 +126,101 @@ namespace Volian.Print.Library
return (val & _AllowTableScrunching) == val; return (val & _AllowTableScrunching) == val;
} }
public static VlnSplitCharacter mySplitter = new VlnSplitCharacter(); public static VlnSplitCharacter mySplitter = new VlnSplitCharacter();
public static string FixText(string str) // C2018-004 create meta file for baseline compares
{
StringBuilder sb = new StringBuilder();
if (str == null)return null;
foreach(char c in str)
{
if (c < '\x1F' || c > '\x7F')
{
int i = (int)c;
switch (i)
{
case '\u000A':
sb.Append("[LF]");
break;
case '\u00A0':
sb.Append("[HS]");
break;
case '\u25CF':
sb.Append("[Bullet]");
break;
case '\u2022':
sb.Append("[SmBullet]");
break;
case '\u2011':
sb.Append("[NBDash]");
break;
case '\u00B0':
sb.Append("[Degree]");
break;
default:
sb.Append(string.Format("[[{0:X}]]", (int)c));
break;
}
}
else
sb.Append(c);
}
return sb.ToString();
}
public static string ChunkTextAttributesInfo(Chunk chk1) // C2018-004 create meta file for baseline compares
{
string rtnval = "Atrbs:";
if (chk1.HasAttributes())
{
float? subsup = (float?)chk1.Attributes["SUBSUPSCRIPT"];
if (subsup != null)
{
if (subsup > 0.0)
rtnval += " SUPERSCRIPT |";
else if (subsup < 0.0)
rtnval += " SUBSCRIPT |";
}
if (chk1.Attributes["UNDERLINE"] != null)
rtnval += " UNDERLINE |";
}
if (chk1.Font.BaseFont != null)
{
if (chk1.Font.BaseFont.PostscriptFontName.ToUpper().Contains("BOLD"))
rtnval += " BOLD |";
if (chk1.Font.BaseFont.PostscriptFontName.ToUpper().Contains("ITALIC"))
rtnval += " ITALICS |";
}
if (rtnval.Length == 6)
rtnval += " none";
else
rtnval = rtnval.Substring(0, rtnval.Length - 2);
return rtnval;
}
public static int _lastPageNum = 0; // C2018-004 create meta file for baseline compares
public static float TextAt(PdfContentByte cb, Paragraph iParagraph, float x, float y, float width, float height, string debugText, float yBottomMargin) public static float TextAt(PdfContentByte cb, Paragraph iParagraph, float x, float y, float width, float height, string debugText, float yBottomMargin)
{ {
return TextAt(cb, iParagraph, x, y, width, height, debugText, yBottomMargin, null);
}
public static float TextAt(PdfContentByte cb, Paragraph iParagraph, float x, float y, float width, float height, string debugText, float yBottomMargin, int? itmID)
{
if (cb.PdfDocument.PageNumber != _lastPageNum) // C2018-004 create meta file for baseline compares
{
Volian.Base.Library.BaselineMetaFile.WriteLine("Page Change from {0} to {1}", _lastPageNum, cb.PdfDocument.PageNumber);
_lastPageNum = cb.PdfDocument.PageNumber;
}
if (iParagraph.Chunks.Count > 0)
{
if (itmID == null)
Volian.Base.Library.BaselineMetaFile.WriteLine("TX x={0} Y={1} W={2} H={3}", x, y, width, height);
else
Volian.Base.Library.BaselineMetaFile.WriteLine("TX x={0} Y={1} W={2} H={3} ItmID={4}", x, y, width, height, itmID);
foreach (Chunk chk1 in iParagraph)
{
//Object obj = chk1.Attributes["UNDERLINE"];
//Console.WriteLine("\t{0},{1},{2},{3},\"{4}\"", chk1.Font.Familyname, chk1.Font.Size, chk1.Font.Style, obj != null ? "Underline" : "", FixText(chk1.Content));
string ctai = ChunkTextAttributesInfo(chk1);
Volian.Base.Library.BaselineMetaFile.WriteLine(" {0} {1} {2} {3} \"{4}\"", chk1.Font.Familyname, chk1.Font.Size, chk1.Font.Style, ctai, FixText(chk1.Content));
//Console.WriteLine("\t{0},{1},{2},{3},\"{4}\"", chk1.Font.Familyname, chk1.Font.Size, chk1.Font.Style, ctai, FixText(chk1.Content));
}
}
// Change the chunks to only split on spaces rather than spaces and hyphens // Change the chunks to only split on spaces rather than spaces and hyphens
foreach (Chunk chk in iParagraph) foreach (Chunk chk in iParagraph)
{ {
@ -183,8 +276,13 @@ namespace Volian.Print.Library
if (ex == value) return true; if (ex == value) return true;
return false; return false;
} }
public static float FigureAt(PdfContentByte cb, iTextSharp.text.Image image, float x, float y, float width, float height, string debugText, float yBottommargin, bool hasBorder) public static float FigureAt(PdfContentByte cb, iTextSharp.text.Image image, float x, float y, float width, float height, string debugText, float yBottommargin, bool hasBorder, int itmID)
{ {
if (cb.PdfDocument.PageNumber != _lastPageNum) // C2018-004 create meta file for baseline compares
{
Volian.Base.Library.BaselineMetaFile.WriteLine("Page Change from {0} to {1}", _lastPageNum, cb.PdfDocument.PageNumber);
_lastPageNum = cb.PdfDocument.PageNumber;
}
VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper;
PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer; PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer;
float left = x + Offset.X; float left = x + Offset.X;
@ -194,6 +292,8 @@ namespace Volian.Print.Library
image.ScaleAbsoluteHeight(height); image.ScaleAbsoluteHeight(height);
image.SetAbsolutePosition(left, bottom); image.SetAbsolutePosition(left, bottom);
if (textLayer != null) cb.BeginLayer(textLayer); if (textLayer != null) cb.BeginLayer(textLayer);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("FG left={0} top={1} bottom={2} Height={3} Width={4} ItmID={5}", left, top, bottom, height, width, itmID);
cb.AddImage(image); cb.AddImage(image);
if (hasBorder) if (hasBorder)
{ {
@ -228,6 +328,11 @@ namespace Volian.Print.Library
} }
public static float GridAt(PdfContentByte cb, vlnTable myGrid, float x, float y, float width, float height, string debugText, float yBottomMargin, bool hasBorder) public static float GridAt(PdfContentByte cb, vlnTable myGrid, float x, float y, float width, float height, string debugText, float yBottomMargin, bool hasBorder)
{ {
if (cb.PdfDocument.PageNumber != _lastPageNum) // C2018-004 create meta file for baseline compares
{
Volian.Base.Library.BaselineMetaFile.WriteLine("Page Change from {0} to {1}", _lastPageNum, cb.PdfDocument.PageNumber);
_lastPageNum = cb.PdfDocument.PageNumber;
}
//VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; // RHM20150507 Table Scrunch //VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; // RHM20150507 Table Scrunch
//PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer; // RHM20150507 Table Scrunch //PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer; // RHM20150507 Table Scrunch
float left = x + Offset.X; float left = x + Offset.X;
@ -237,6 +342,8 @@ namespace Volian.Print.Library
ColumnText myColumnText = new ColumnText(cb); ColumnText myColumnText = new ColumnText(cb);
myColumnText.SetSimpleColumn(left, top, left + width, yBottomMargin); myColumnText.SetSimpleColumn(left, top, left + width, yBottomMargin);
//if (textLayer != null) cb.BeginLayer(textLayer); // RHM20150507 Table Scrunch //if (textLayer != null) cb.BeginLayer(textLayer); // RHM20150507 Table Scrunch
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("GD left={0} top={1} right={2} bottom={3} Mygrid.ItmID={4}", left, top + GridTopAdjust, right, bottom, myGrid.ItemID);
myGrid.ToPdf(myColumnText, left, top + GridTopAdjust); myGrid.ToPdf(myColumnText, left, top + GridTopAdjust);
//if (textLayer != null) cb.EndLayer(); // RHM20150507 Table Scrunch //if (textLayer != null) cb.EndLayer(); // RHM20150507 Table Scrunch
return bottom; return bottom;

View File

@ -473,6 +473,8 @@ i = 0;
cb.SetColorStroke(new Color(PrintOverride.SvgColor)); cb.SetColorStroke(new Color(PrintOverride.SvgColor));
if (MySection.MyDocStyle.CLineWidth != null && MySection.MyDocStyle.CLineWidth != 0) cb.SetLineWidth((float)MySection.MyDocStyle.CLineWidth); if (MySection.MyDocStyle.CLineWidth != null && MySection.MyDocStyle.CLineWidth != 0) cb.SetLineWidth((float)MySection.MyDocStyle.CLineWidth);
//cb.SetColorStroke(lineColor); //cb.SetColorStroke(lineColor);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("HorzLn X1={0} Y={1} X2={2}", left, yoff, right);
cb.MoveTo(left, yoff); cb.MoveTo(left, yoff);
cb.LineTo(right, yoff); cb.LineTo(right, yoff);
cb.Stroke(); cb.Stroke();
@ -511,6 +513,8 @@ i = 0;
{ {
foreach (Gap gap in MyGaps) foreach (Gap gap in MyGaps)
{ {
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("CntrLn X={0} Top={1} Btm={2}", xLoc, ylast, gap.YTop - (gap.YTop - gap.YBottom) * YMultiplier);
cb.LineTo(xLoc, gap.YTop); cb.LineTo(xLoc, gap.YTop);
cb.MoveTo(xLoc, gap.YTop - (gap.YTop - gap.YBottom) * YMultiplier); cb.MoveTo(xLoc, gap.YTop - (gap.YTop - gap.YBottom) * YMultiplier);
ylast = gap.YTop - (gap.YTop - gap.YBottom) * YMultiplier; ylast = gap.YTop - (gap.YTop - gap.YBottom) * YMultiplier;
@ -522,7 +526,11 @@ i = 0;
// the remaining center line was drawn past the page boarder. there was no need // the remaining center line was drawn past the page boarder. there was no need
// to print it for cases like that // to print it for cases like that
if (ylast > yBottom) if (ylast > yBottom)
{
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("CntrLn X={0} Top={1} Btm={2}", xLoc, ylast, yBottom);
cb.LineTo(xLoc, yBottom); cb.LineTo(xLoc, yBottom);
}
cb.Stroke(); cb.Stroke();
if (PageListLayer != null) cb.EndLayer(); if (PageListLayer != null) cb.EndLayer();
cb.RestoreState(); cb.RestoreState();
@ -1249,8 +1257,10 @@ i = 0;
public Dictionary<string, bool> PgLogicals; public Dictionary<string, bool> PgLogicals;
private void AddPageListItems(Volian.Svg.Library.Svg mySvg, VEPROMS.CSLA.Library.PageStyle pageStyle, VEPROMS.CSLA.Library.SectionInfo section, bool forceLoad) private void AddPageListItems(Volian.Svg.Library.Svg mySvg, VEPROMS.CSLA.Library.PageStyle pageStyle, VEPROMS.CSLA.Library.SectionInfo section, bool forceLoad)
{ {
//Console.WriteLine("{0}", section.ActiveFormat.Name); SectionConfig sc = section.MyConfig as SectionConfig;
//Console.WriteLine("{0} pgstyle {1} section", pageStyle.Name,section.DisplayText); // C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("SecNum=\"{0}\" SecTitle=\"{1}\" DocStyle=\"{2}\" Format=\"{3}\" ItemID={4}", section.DisplayNumber, section.DisplayText, section.MyDocStyle.Name, sc.FormatSelection, section.ItemID);
Volian.Base.Library.BaselineMetaFile.WriteLine(" Pagination=\"{0}\" MSWordPgCnt={1} NumPages={2} WordMargin={3}", sc.Section_Pagination, section.MSWordPageCount, (string.IsNullOrEmpty(sc.Section_NumPages)) ? "0" : sc.Section_NumPages, (string.IsNullOrEmpty(sc.Section_WordMargin))?"N":sc.Section_WordMargin);
if (PgLogicals == null) PgLogicals = new Dictionary<string, bool>(); if (PgLogicals == null) PgLogicals = new Dictionary<string, bool>();
else PgLogicals.Clear(); else PgLogicals.Clear();
@ -1260,8 +1270,8 @@ i = 0;
SectionConfig.SectionPagination sPag = SectionConfig.SectionPagination.Separate; SectionConfig.SectionPagination sPag = SectionConfig.SectionPagination.Separate;
if (section.IsStepSection && section.MyPrevious != null && section.MyPrevious.IsStepSection && section.MyContent.Number.ToUpper() != "FOLDOUT") if (section.IsStepSection && section.MyPrevious != null && section.MyPrevious.IsStepSection && section.MyContent.Number.ToUpper() != "FOLDOUT")
{ {
SectionConfig sc = section.MyConfig as SectionConfig; SectionConfig sc1 = section.MyConfig as SectionConfig;
sPag = sc.Section_Pagination; sPag = sc1.Section_Pagination;
} }
SvgGroup svgGroup = new SvgGroup(); SvgGroup svgGroup = new SvgGroup();
@ -1403,7 +1413,11 @@ i = 0;
SvgText st = new SvgText(new System.Drawing.PointF(300, 300), "Non-printing {PAGE}", VE_Font.GetWinSysFont("Arial", 10), System.Drawing.Color.Black); SvgText st = new SvgText(new System.Drawing.PointF(300, 300), "Non-printing {PAGE}", VE_Font.GetWinSysFont("Arial", 10), System.Drawing.Color.Black);
svgGroup.Add(st); svgGroup.Add(st);
} }
if (svgGroup.Count>0) mySvg.Add(svgGroup); // C2018-004 create meta file for baseline compares
if (svgGroup.Count > 0)
mySvg.Add(svgGroup);
else
Volian.Base.Library.BaselineMetaFile.WriteLine("No Pagelist Information");
} }
private string ROLookup(string accpageid, string multiid, string deflt) private string ROLookup(string accpageid, string multiid, string deflt)
{ {
@ -2486,6 +2500,8 @@ i = 0;
svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT);
svgText.Y = new SvgMeasurement(row, E_MeasurementUnits.PT); 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 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
Volian.Base.Library.BaselineMetaFile.WriteLine(" PL x {0} y {1} {2} {3} {4} \"{5}\"", svgText.X, svgText.Y, svgText.FontFamily, svgText.FontSize, svgText.SVGFontStyle, Rtf2Pdf.FixText(svgText.Text));
return svgText; return svgText;
} }
private SvgPart PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, float yOffset) private SvgPart PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, float yOffset)
@ -2527,6 +2543,8 @@ i = 0;
svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); // new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT); svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); // new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT);
svgText.Y = new SvgMeasurement((float)(yOffset + pageItem.Row ?? 0), E_MeasurementUnits.PT); svgText.Y = new SvgMeasurement((float)(yOffset + pageItem.Row ?? 0), 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 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
Volian.Base.Library.BaselineMetaFile.WriteLine(" PL x {0} y {1} {2} {3} {4} \"{5}\"", svgText.X, svgText.Y, svgText.FontFamily, svgText.FontSize, svgText.SVGFontStyle, Rtf2Pdf.FixText(svgText.Text));
return svgText; return svgText;
} }
private SvgPart PageItemToSvgText(string token, float row, float col, E_Justify just, VE_Font font, string text, SectionInfo MySection) private SvgPart PageItemToSvgText(string token, float row, float col, E_Justify just, VE_Font font, string text, SectionInfo MySection)
@ -2568,6 +2586,8 @@ i = 0;
svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); // new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT); svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); // new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT);
svgText.Y = new SvgMeasurement(row, E_MeasurementUnits.PT); 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 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
Volian.Base.Library.BaselineMetaFile.WriteLine(" PL x {0} y {1} {2} {3} {4} \"{5}\"", svgText.X, svgText.Y, svgText.FontFamily, svgText.FontSize, svgText.SVGFontStyle, Rtf2Pdf.FixText(svgText.Text));
return svgText; return svgText;
} }
private static List<string> _MissingTokens = new List<string>(); private static List<string> _MissingTokens = new List<string>();

View File

@ -122,10 +122,14 @@ namespace Volian.Print.Library
lheight += (bottom - yBottomMargin); lheight += (bottom - yBottomMargin);
bottom = yBottomMargin; bottom = yBottomMargin;
} }
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BX Lf={0} Bt={1} W={2} H={3}", left, bottom, right - left, lheight * MyPageHelper. YMultiplier);
cb.Rectangle(left, bottom, right - left, lheight * MyPageHelper.YMultiplier); cb.Rectangle(left, bottom, right - left, lheight * MyPageHelper.YMultiplier);
} }
else if (DefBox == vlnBox.DOUBLEboxHLS) else if (DefBox == vlnBox.DOUBLEboxHLS)
{ {
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BXHLS Lf={0} Rt={1} Tp={2} Bt={3}", left, (float)MyParent.MyItemInfo.MyDocStyle.Layout.PageWidth,top, bottom);
DrawDoubleHlsBox(cb, top, bottom, left, (float)MyParent.MyItemInfo.MyDocStyle.Layout.PageWidth); DrawDoubleHlsBox(cb, top, bottom, left, (float)MyParent.MyItemInfo.MyDocStyle.Layout.PageWidth);
} }
else else
@ -137,11 +141,15 @@ namespace Volian.Print.Library
case BoxThin: case BoxThin:
lineThickness = .6F; lineThickness = .6F;
cb.SetLineWidth(lineThickness); cb.SetLineWidth(lineThickness);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BXThin Lf={0} Bt={1} W={2} H={3}", left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier);
break; break;
case BoxThick: case BoxThick:
lineThickness = 6; lineThickness = 6;
cb.SetLineWidth(lineThickness); cb.SetLineWidth(lineThickness);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BXThick Lf={0} Bt={1} W={2} H={3}", left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier);
break; break;
case BoxDouble: case BoxDouble:
@ -150,18 +158,28 @@ namespace Volian.Print.Library
lineThickness = .6F; lineThickness = .6F;
cb.SetLineWidth(lineThickness / 2F); cb.SetLineWidth(lineThickness / 2F);
// outer rectangle (rectangle's are defined as x,y,w,h) // outer rectangle (rectangle's are defined as x,y,w,h)
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BX3lns1 Lf={0} Bt={1} W={2} H={3}", left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier);
// inner rectangle // inner rectangle
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BX3lns2 Lf={0} Bt={1} W={2} H={3}", left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier);
// outer outer most // outer outer most
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BX3lns3 Lf={0} Bt={1} W={2} H={3}", left + llxOffset - lineThickness * 4F, bottom - lineThickness * 3.5F, right - left + lineThickness * 8, (Height + lineThickness * 7) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset - lineThickness * 4F, bottom - lineThickness * 3.5F, right - left + lineThickness * 8, (Height + lineThickness * 7) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset - lineThickness * 4F, bottom - lineThickness * 3.5F, right - left + lineThickness * 8, (Height + lineThickness * 7) * MyPageHelper.YMultiplier);
break; break;
} }
lineThickness = .6F; lineThickness = .6F;
cb.SetLineWidth(lineThickness); cb.SetLineWidth(lineThickness);
// outer rectangle (rectangle's are defined as x,y,w,h) // outer rectangle (rectangle's are defined as x,y,w,h)
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BX2lns1 Lf={0} Bt={1} W={2} H={3}", left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier);
// inner rectangle // inner rectangle
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BX2lns2 Lf={0} Bt={1} W={2} H={3}", left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier);
break; break;
case BoxFPLNote: case BoxFPLNote:
@ -169,6 +187,8 @@ namespace Volian.Print.Library
cb.SetLineWidth(lineThickness); cb.SetLineWidth(lineThickness);
float[] linePattern = { 6, 1.75F, 2.5F, 1.75F }; float[] linePattern = { 6, 1.75F, 2.5F, 1.75F };
cb.SetLineDash(linePattern,3); cb.SetLineDash(linePattern,3);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BXFPLNt Lf={0} Bt={1} W={2} H={3}", left + llxOffset, bottom + (lineThickness / 2) - 1, right - left, (2 + Height - lineThickness) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2) -1, right - left, (2 + Height - lineThickness) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2) -1, right - left, (2 + Height - lineThickness) * MyPageHelper.YMultiplier);
break; break;
case BoxFPLCaution: case BoxFPLCaution:
@ -176,6 +196,8 @@ namespace Volian.Print.Library
cb.SetLineWidth(lineThickness); cb.SetLineWidth(lineThickness);
// use a Y adjustment (top & bottom) to make the caution box match the 16bit output. // use a Y adjustment (top & bottom) to make the caution box match the 16bit output.
float YbxAdjust = 6.5F; float YbxAdjust = 6.5F;
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BXFPLCn Lf={0} Bt={1} W={2} H={3}", left + llxOffset, bottom - YbxAdjust + (lineThickness / 2), right - left, (Height - lineThickness + 2 * YbxAdjust) * MyPageHelper.YMultiplier);
cb.Rectangle(left + llxOffset, bottom - YbxAdjust + (lineThickness / 2), right - left, (Height - lineThickness + 2*YbxAdjust) * MyPageHelper.YMultiplier); cb.Rectangle(left + llxOffset, bottom - YbxAdjust + (lineThickness / 2), right - left, (Height - lineThickness + 2*YbxAdjust) * MyPageHelper.YMultiplier);
break; break;
case BoxAsterisk: case BoxAsterisk:
@ -186,6 +208,8 @@ namespace Volian.Print.Library
case BoxLineTopBottom: // fnp note box case BoxLineTopBottom: // fnp note box
lineThickness = .6f; lineThickness = .6f;
cb.SetLineWidth(lineThickness); cb.SetLineWidth(lineThickness);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("BXFNPNt Lf={0} Rt={1} Tp={2} Bt={3}", left + llxOffset, right, top, bottom);
cb.MoveTo(left + llxOffset, bottom); cb.MoveTo(left + llxOffset, bottom);
cb.LineTo(right, bottom); cb.LineTo(right, bottom);
cb.MoveTo(left + llxOffset, top); cb.MoveTo(left + llxOffset, top);

View File

@ -182,6 +182,8 @@ namespace Volian.Print.Library
// reset the YOffset if up too high before printing the change bar // reset the YOffset if up too high before printing the change bar
if (topMost != null) if (topMost != null)
YOffset = Math.Min(YOffset, (float)topMost); YOffset = Math.Min(YOffset, (float)topMost);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("ChgBar X1={0} Y1={1} X2={2} Y2={3} ID={4}", XOffset + xAdj, YOffset - yAdj, XOffset + xAdj, YChangeBarBottomExtend - yAdj - 1, MyParent.MyItemInfo.ItemID);
cb.MoveTo(XOffset + xAdj, YOffset - yAdj); // combination yStart and YOffset cb.MoveTo(XOffset + xAdj, YOffset - yAdj); // combination yStart and YOffset
cb.LineTo(XOffset + xAdj, YChangeBarBottomExtend - yAdj - 1); cb.LineTo(XOffset + xAdj, YChangeBarBottomExtend - yAdj - 1);
cb.Stroke(); cb.Stroke();

View File

@ -37,6 +37,8 @@ namespace Volian.Print.Library
PrintOverride.SvgColor = PrintOverride.TextColor == System.Drawing.Color.Empty ? System.Drawing.Color.Black : PrintOverride.TextColor; PrintOverride.SvgColor = PrintOverride.TextColor == System.Drawing.Color.Empty ? System.Drawing.Color.Black : PrintOverride.TextColor;
if (MyPageHelper != null && MyPageHelper.MySvg != null && MacroDef != null) if (MyPageHelper != null && MyPageHelper.MySvg != null && MacroDef != null)
{ {
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("MC X={0} Y={1} {2}", XOffset - MyPageHelper.MySvg.LeftMargin, yLocation, MacroDef);
// PageList items are located with respect to the left margin, macros are not. // PageList items are located with respect to the left margin, macros are not.
MyPageHelper.MySvg.DrawMacro(MacroDef, XOffset - MyPageHelper.MySvg.LeftMargin, yLocation, cb); MyPageHelper.MySvg.DrawMacro(MacroDef, XOffset - MyPageHelper.MySvg.LeftMargin, yLocation, cb);
} }

View File

@ -949,7 +949,7 @@ namespace Volian.Print.Library
float retval = yLocation; float retval = yLocation;
if (MyItemInfo.IsRtfRaw) if (MyItemInfo.IsRtfRaw)
{ {
retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}", YSize / SixLinesPerInch), yBottomMargin); retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}", YSize / SixLinesPerInch), yBottomMargin, MyItemInfo.ItemID); // C2018-004 ItemID for create meta file for baseline compares
return retval; return retval;
} }
@ -1073,7 +1073,7 @@ namespace Volian.Print.Library
//if (MyItemInfo.InList(39048)) Console.WriteLine("Here"); //if (MyItemInfo.InList(39048)) Console.WriteLine("Here");
} }
MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier); MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier);
retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}", YSize / SixLinesPerInch), yBottomMargin); retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}", YSize / SixLinesPerInch), yBottomMargin, MyItemInfo.ItemID); // C2018-004 ItemID for create meta file for baseline compares
ProfileTimer.Pop(profileDepth); ProfileTimer.Pop(profileDepth);
if (retval == 0) // problem occurred - paragraph was not able to be printed on page if (retval == 0) // problem occurred - paragraph was not able to be printed on page
{ // pagination logic needs to be fixed. { // pagination logic needs to be fixed.
@ -1312,7 +1312,7 @@ namespace Volian.Print.Library
// B2017-241 Adjust Bottom Message Location for the figure // B2017-241 Adjust Bottom Message Location for the figure
MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier); MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier);
// B2017-112 Adjust Image Size by Scaler (Used for Facing Pages - Sup Info) // B2017-112 Adjust Image Size by Scaler (Used for Facing Pages - Sup Info)
retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier * ImageScaler, Height * MyPageHelper.YMultiplier * ImageScaler, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier * ImageScaler, Height * MyPageHelper.YMultiplier * ImageScaler, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless"), MyItemInfo.ItemID); // C2018-004 added ItemID for create meta file for baseline compares
} }
catch catch
{ {
@ -1367,7 +1367,7 @@ namespace Volian.Print.Library
} }
// B2017-241 Adjust Bottom Message Location for the figure // B2017-241 Adjust Bottom Message Location for the figure
MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier); MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier);
retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier, Height * MyPageHelper.YMultiplier, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier, Height * MyPageHelper.YMultiplier, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless"), MyItemInfo.ItemID);
} }
} }
// The following code was added to fix B2016-219 (for VCS, the centerline drew through a figure). The 'top' value was taken from the code // The following code was added to fix B2016-219 (for VCS, the centerline drew through a figure). The 'top' value was taken from the code
@ -1412,19 +1412,24 @@ namespace Volian.Print.Library
{ {
ItemInfo ii = (ItemInfo)MyItemInfo.MyActiveSection; ItemInfo ii = (ItemInfo)MyItemInfo.MyActiveSection;
int indx = (int)MyItemInfo.MyActiveSection.MyDocStyle.IndexOtherThanFirstPage; int indx = (int)MyItemInfo.MyActiveSection.MyDocStyle.IndexOtherThanFirstPage;
bool reassignedDocStyle = false; // C2018-004 create meta file for baseline compares
foreach (DocStyle ds in ii.ActiveFormat.PlantFormat.DocStyles.DocStyleList) foreach (DocStyle ds in ii.ActiveFormat.PlantFormat.DocStyles.DocStyleList)
{ {
if (ds.Index == indx) if (ds.Index == indx)
{ {
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("Reset DocStyle to \"{0}\"",ds.Name);
MyItemInfo.MyActiveSection.MyDocStyle = ds; MyItemInfo.MyActiveSection.MyDocStyle = ds;
MyPageHelper.MySection = MyItemInfo.MyActiveSection as SectionInfo; MyPageHelper.MySection = MyItemInfo.MyActiveSection as SectionInfo;
MyPageHelper.MySection.MyDocStyle = ds; MyPageHelper.MySection.MyDocStyle = ds;
MyPageHelper.ResetSvg(); //MyPageHelper.ResetSvg(); this is done when MyPageHelper.MySection is assigned - no need to do again.
reassignedDocStyle = true; // C2018-004 create meta file for baseline compares
break; break;
} }
} }
MyPageHelper.DidFirstPageDocStyle = true; MyPageHelper.DidFirstPageDocStyle = true;
if (DebugPagination.IsOpen) DebugPagination.WriteLine("ResetDocStyleAndValues"); if (DebugPagination.IsOpen) DebugPagination.WriteLine("ResetDocStyleAndValues");
if (!reassignedDocStyle) // C2018-004 create meta file for baseline compares
MyPageHelper.MySection = (SectionInfo)MyItemInfo.MyActiveSection; MyPageHelper.MySection = (SectionInfo)MyItemInfo.MyActiveSection;
yTopMargin = _PointsPerPage - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.TopMargin; yTopMargin = _PointsPerPage - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.TopMargin;
yBottomMargin = Math.Max(0, yTopMargin - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.PageLength); yBottomMargin = Math.Max(0, yTopMargin - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.PageLength);
@ -1676,9 +1681,7 @@ namespace Volian.Print.Library
} }
else else
{ {
MyPageHelper.OnBlankPage = true; MyPromsPrinter.InsertBlankPage(cb);
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
MyPromsPrinter.NewPage();
} }
} }
} }
@ -1746,9 +1749,7 @@ namespace Volian.Print.Library
// preceeding foldout. // preceeding foldout.
if (MyItemInfo.FoldoutIndex() <= -1) if (MyItemInfo.FoldoutIndex() <= -1)
{ {
MyPageHelper.OnBlankPage = true; MyPromsPrinter.InsertBlankPage(cb);
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
MyPromsPrinter.NewPage();
//_MyLog.InfoFormat("NewPage 10 blank {0}", cb.PdfWriter.CurrentPageNumber); //_MyLog.InfoFormat("NewPage 10 blank {0}", cb.PdfWriter.CurrentPageNumber);
} }
} }
@ -1859,9 +1860,7 @@ namespace Volian.Print.Library
MyPromsPrinter.DoFoldoutPage(cb, "Break within Step", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.MyHLS.FoldoutIndex(), false); // temporary foldout MyPromsPrinter.DoFoldoutPage(cb, "Break within Step", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.MyHLS.FoldoutIndex(), false); // temporary foldout
else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages)
{ {
MyPageHelper.OnBlankPage = true; MyPromsPrinter.InsertBlankPage(cb);
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
MyPromsPrinter.NewPage();
_MyLog.InfoFormat("NewPage Break within step blank {0}", cb.PdfWriter.CurrentPageNumber); _MyLog.InfoFormat("NewPage Break within step blank {0}", cb.PdfWriter.CurrentPageNumber);
} }
if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && !MyPageHelper.CreatingSupInfoPage && !MyItemInfo.IsSection && !MyItemInfo.IsInSupInfo && (MyItemInfo.MyProcedure as ProcedureInfo).ProcHasSupInfoData) if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && !MyPageHelper.CreatingSupInfoPage && !MyItemInfo.IsSection && !MyItemInfo.IsInSupInfo && (MyItemInfo.MyProcedure as ProcedureInfo).ProcHasSupInfoData)
@ -1873,9 +1872,7 @@ namespace Volian.Print.Library
} }
else else
{ {
MyPageHelper.OnBlankPage = true; MyPromsPrinter.InsertBlankPage(cb);
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
MyPromsPrinter.NewPage();
} }
} }
// if there is a 'container vlnbox' around the HLS, flag that the drawn box must also break: // if there is a 'container vlnbox' around the HLS, flag that the drawn box must also break:
@ -2016,9 +2013,7 @@ namespace Volian.Print.Library
{ {
// insert a blank page if this step section had a foldout associated and the checkbox // insert a blank page if this step section had a foldout associated and the checkbox
// on the print dialog, to add blank pages, is checked // on the print dialog, to add blank pages, is checked
MyPageHelper.OnBlankPage = true; MyPromsPrinter.InsertBlankPage(cb);
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
MyPromsPrinter.NewPage();
//_MyLog.InfoFormat("NewPage 12 lpi blank {0}", cb.PdfWriter.CurrentPageNumber); //_MyLog.InfoFormat("NewPage 12 lpi blank {0}", cb.PdfWriter.CurrentPageNumber);
} }
// See comments under case 0 explaining supinfo/facing page processing. // See comments under case 0 explaining supinfo/facing page processing.
@ -2032,9 +2027,7 @@ namespace Volian.Print.Library
} }
else else
{ {
MyPageHelper.OnBlankPage = true; MyPromsPrinter.InsertBlankPage(cb);
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
MyPromsPrinter.NewPage();
} }
} }
if (MyItemInfo.MyDocStyle.LandscapePageList) if (MyItemInfo.MyDocStyle.LandscapePageList)
@ -2270,7 +2263,6 @@ namespace Volian.Print.Library
ProfileTimer.Pop(profileDepth); ProfileTimer.Pop(profileDepth);
return yPageStart; return yPageStart;
} }
private bool IsPrintedStepItemForSupInfo() private bool IsPrintedStepItemForSupInfo()
{ {
bool printedMySectTitle = true; bool printedMySectTitle = true;

View File

@ -66,6 +66,8 @@ namespace Volian.Print.Library
iTextSharp.text.Color lineColor = new iTextSharp.text.Color(PrintOverride.OverrideChangeBarColor(System.Drawing.Color.Black)); iTextSharp.text.Color lineColor = new iTextSharp.text.Color(PrintOverride.OverrideChangeBarColor(System.Drawing.Color.Black));
cb.SetColorStroke(lineColor); cb.SetColorStroke(lineColor);
cb.SetLineWidth(.5F); cb.SetLineWidth(.5F);
// C2018-004 create meta file for baseline compares
Volian.Base.Library.BaselineMetaFile.WriteLine("RNOSepLn X1={0} Y1={1} X2={2} Y2={3}", XOffset, yLocation - 7, XOffset + XLength, yLocation - 7);
cb.MoveTo(XOffset/* + xAdj */, yLocation - 7); cb.MoveTo(XOffset/* + xAdj */, yLocation - 7);
cb.LineTo(XOffset + XLength, yLocation-7); cb.LineTo(XOffset + XLength, yLocation-7);
cb.Stroke(); cb.Stroke();

View File

@ -983,6 +983,18 @@ namespace Volian.Svg.Library
get { return _Watermark; } get { return _Watermark; }
set { _Watermark = value; } set { _Watermark = value; }
} }
private PdfLayer _PROMSVersionLayer; //C2018-009 print PROMS version
public PdfLayer PROMSVersionLayer
{
get { return _PROMSVersionLayer; }
set { _PROMSVersionLayer = value; }
}
private string _PROMSVersion = string.Empty;
public string PROMSVersion
{
get { return _PROMSVersion; }
set { _PROMSVersion = value; }
}
private bool _DoZoomOMatic = false; private bool _DoZoomOMatic = false;
public bool DoZoomOMatic public bool DoZoomOMatic
{ {
@ -1061,6 +1073,7 @@ namespace Volian.Svg.Library
DrawBackground(writer.DirectContentUnder); DrawBackground(writer.DirectContentUnder);
DrawPageList(writer.DirectContent); DrawPageList(writer.DirectContent);
DrawWatermark(writer.DirectContent); DrawWatermark(writer.DirectContent);
DrawPROMSVersion(writer.DirectContent); //C2018-009 print PROMS version
if (DoZoomOMatic) DrawZoomOMatic(writer.DirectContent); if (DoZoomOMatic) DrawZoomOMatic(writer.DirectContent);
} }
CurrentPageNumber++; CurrentPageNumber++;
@ -1074,6 +1087,7 @@ namespace Volian.Svg.Library
DrawBackground(writer.DirectContentUnder); DrawBackground(writer.DirectContentUnder);
DrawPageList(writer.DirectContent); DrawPageList(writer.DirectContent);
DrawWatermark(writer.DirectContent); DrawWatermark(writer.DirectContent);
DrawPROMSVersion(writer.DirectContent); //C2018-009 print PROMS version
if (DoZoomOMatic) DrawZoomOMatic(writer.DirectContent); if (DoZoomOMatic) DrawZoomOMatic(writer.DirectContent);
CurrentPageNumber++; CurrentPageNumber++;
} }
@ -1169,6 +1183,23 @@ namespace Volian.Svg.Library
if (_WatermarkLayer != null) cb.EndLayer(); if (_WatermarkLayer != null) cb.EndLayer();
cb.RestoreState(); cb.RestoreState();
} }
//C2018-009 print PROMS version
private void DrawPROMSVersion(PdfContentByte cb)
{
cb.SaveState();
string text = PROMSVersion;
float textBase =cb.PdfDocument.Top + 19;
float textLeft = cb.PdfDocument.Right - 15;
if (_PROMSVersionLayer != null) cb.BeginLayer(_PROMSVersionLayer);
cb.BeginText();
cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED), 6f);
cb.SetTextMatrix(textLeft, textBase);
cb.SetColorFill(new iTextSharp.text.Color(System.Drawing.Color.Indigo));
cb.ShowText(text);
cb.EndText();
if (_PROMSVersionLayer != null) cb.EndLayer();
cb.RestoreState();
}
private void DrawPageList(PdfContentByte cb) private void DrawPageList(PdfContentByte cb)
{ {
if (_MySvg != null) if (_MySvg != null)