F2018-033: Auto TOC for Farley. Note that this is check in for release note from 2/28/2020 (was missed during initial checking).

This commit is contained in:
Kathy Ruffing 2020-03-02 15:32:35 +00:00
parent b5af00b940
commit 8ac98b2816

View File

@ -938,6 +938,11 @@ namespace Volian.Print.Library
InsertBlankPage(cb);
}
GenerateTOC(mySection, myProcedure, cb, _TextLayer);
// F2018-033: Farley Auto TOC. If doing foldouts or supinfo facing pages, add a blank page after also:
if (((cb.PdfWriter.CurrentPageNumber % 2 == 0 && !_MyHelper.CreatingFoldoutPage) || myProcedure.ProcHasSupInfoData) && InsertBlankPages) // Bug Fix: B2016-181 - add blank page if page count is even
{
InsertBlankPage(cb);
}
}
else
{
@ -1433,7 +1438,11 @@ namespace Volian.Print.Library
string rtfGrpingText = GetRtfToC(tocGrpHeading, tOfC, grpingFont);
Paragraph myparagraphGrpTitle = vlnPrintObject.RtfToParagraph(rtfGrpingText);
float w = secPagePos - 6;
int lnaftergroup = ((tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCLineSpacingSub ?? 0) > 0) ? 1 : 2;
// F2018-033: Farley Auto TOC. If line spacing is less than 0, then spacing is double spaced if on section items (such as
// Purpose, Proc Steps; and spacing is single spaced if within groups. If not less than 0, just use what is in format file.
int lnaftergroup = 1;
float lnsp = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCLineSpacing ?? 0;
if (lnsp < 0) lnaftergroup = ((tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCLineSpacingSub ?? 0) > 0) ? 1 : 2;
float yLocAfterGrpTitleAndFirstItem = yLocation + (lnaftergroup * vlnPrintObject.SixLinesPerInch) + vlnPrintObject.GetHeight(cb, myparagraphGrpTitle, string.Empty, w, false) + vlnPrintObject.GetHeight(cb, myparagraphSecTitle, string.Empty, savTitleWid, false);
// if group heading and first item under it does not fit on the page, do a page break
if ((yPageStart - yLocAfterGrpTitleAndFirstItem) < yBottomMargin)
@ -1445,7 +1454,7 @@ namespace Volian.Print.Library
//if (yLocation > 0) yLocation += vlnPrintObject.SixLinesPerInch;// commented out for B2016-200 // for two blank line between last TOC title and the new grouping title
float rtnval = Rtf2Pdf.TextAt(cb, myparagraphGrpTitle, leftMargin + secNumPos, yPageStart - yLocation, w, height, "", yBottomMargin); // print the Group Title
yLocation += vlnPrintObject.SixLinesPerInch; // for two blank line between last TOC title and the new grouping title - added for B2016-200
yLocation += (lnaftergroup * vlnPrintObject.SixLinesPerInch); // new line
if (lnsp > -1) yLocation += (lnaftergroup * vlnPrintObject.SixLinesPerInch); // new line
}
// Print the section title
float retval = Rtf2Pdf.TextAt(cb, myparagraphSecTitle, leftMargin + ((tOfC.TofCSecNumPos == tOfC.TofCSecTitlePos && tmptxt.Equals(" "))? secNumPos : adjSecTitlePos), yPageStart - yLocation, width, height, "", yBottomMargin);
@ -1547,10 +1556,31 @@ namespace Volian.Print.Library
doSubY = (((tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCLineSpacingSub ?? 1) > 0)
&& (mySection.MyParent.IsSection && (/* mySection.Sections == null && */ sectCnt < ii.Sections.Count))) // B2016-205
|| didGrp;
//float spc = (float)(tOfC.TofCLineSpacing ?? 1);
if (doSubY)
yLocation += (float)(tOfC.TofCLineSpacingSub ?? 1) * vlnPrintObject.SixLinesPerInch;
{
float spcs = (float)(tOfC.TofCLineSpacingSub ?? 1);
if (spcs == -1) // F2018-033: Allow for single & double spacing for Farley (if in group or not)
{
if (sc.Section_TOC_Group_Title != null && sc.Section_TOC_Group_Title != "")
spcs = 1;
else
spcs = 2;
}
yLocation += (spcs * vlnPrintObject.SixLinesPerInch);
}
else
yLocation += (float)(tOfC.TofCLineSpacing ?? 1) * vlnPrintObject.SixLinesPerInch;
{
float spc = (float)(tOfC.TofCLineSpacing ?? 1);
if (spc == -1) // F2018-033: Allow for single & double spacing for Farley (if in group or not)
{
if (sc.Section_TOC_Group_Title != null && sc.Section_TOC_Group_Title != "")
spc = 1;
else
spc = 2;
}
yLocation += (spc * vlnPrintObject.SixLinesPerInch);
}
}
float savYLoc = yLocation;
yLocation = AddSectionToTOC(tocSection, mySection, tOfC, cb, yPageStart, yLocation, doSubY);