diff --git a/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs b/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs index 8b7b99ed..cbf491ed 100644 --- a/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs +++ b/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs @@ -721,13 +721,13 @@ namespace Volian.Print.Library } if (add) { - SvgText svgt = PageItemToSvgText(pageItem, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].CheckOffHeading, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font); + SvgText svgt = PageItemToSvgText(pageItem, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].CheckOffHeading, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font, section); CheckOffHeaderHelper hlp = new CheckOffHeaderHelper(svgt, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font); NegPageItems.Add(section, hlp); } } else - svgGroup.Add(PageItemToSvgText(pageItem, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].CheckOffHeading, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font)); + svgGroup.Add(PageItemToSvgText(pageItem, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].CheckOffHeading, section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font, section)); } break; default: @@ -777,7 +777,7 @@ namespace Volian.Print.Library else { if (plstr != "") - svgGroup.Add(PageItemToSvgText(pageItem, plstr)); + svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection)); //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token)); } //_MyLog.InfoFormat("Token not processed {0}", token); @@ -785,10 +785,10 @@ namespace Volian.Print.Library } } // end foreach matches if (plstr != "") - svgGroup.Add(PageItemToSvgText(pageItem, plstr)); + svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection)); } else - svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token)); + svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token, MySection)); } } // Proms page numbering designed requires a "{PAGE}" token to increment the page counter. So the easiest way @@ -973,13 +973,13 @@ namespace Volian.Print.Library 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) + private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, VE_Font font, SectionInfo mySection) { - SvgText svgText = PageItemToSvgText(pageItem, text); + SvgText svgText = PageItemToSvgText(pageItem, text, mySection); svgText.Font = font.WindowsFont; return svgText; } - private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text) + private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, SectionInfo mySection) { SvgText svgText = new SvgText(); svgText.Text = text; @@ -992,7 +992,17 @@ namespace Volian.Print.Library svgText.Justify = SvgJustify.Center; svgText.Font = pageItem.Font.WindowsFont; float row = (float)pageItem.Row < 0 ? -(float)pageItem.Row : (float)pageItem.Row; - svgText.X = new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT); + float lcol = pageItem.Col ?? 0; + + // the column may need adjusted based on the document styles PageWidth. This was done in + // the 16bit code and was needed here to get the printed output to match. + if (pageItem.Font.FontIsProportional() && svgText.Justify == SvgJustify.Center) + { + int dotsPerChar = (int)(2400 / (mySection.MyDocStyle.Layout.PageWidth / 6)); + lcol = (lcol * 25) / dotsPerChar; + } + + svgText.X = new SvgMeasurement((float)lcol, 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 return svgText;