diff --git a/PROMS/Volian.Print.Library/Pagination.cs b/PROMS/Volian.Print.Library/Pagination.cs index 8ef05b02..fe8a2571 100644 --- a/PROMS/Volian.Print.Library/Pagination.cs +++ b/PROMS/Volian.Print.Library/Pagination.cs @@ -887,7 +887,11 @@ namespace Volian.Print.Library ySpaceOnCurPage -= yEndMsg; ySpaceOnCurPage -= myBottomMsgSpace; vlnParagraph lastBreak = paraBreak; - if (PageBreakOnStepList.Count > 0 && (PageBreakOnStepList[0].YTop - (lastBreak == null ? 0 : lastBreak.YTop) <= ySpaceOnCurPage)) + // PageBreakOnStepList contains steps where a page break needs to occur based on format, for example backgrounds require cautions/notes/HLS + // to have page breaks. As each of these are processed (after this code) the topmost item in PageBreakOnStepList is removed. + // The following checks if the entire step will fit for these types of steps and if so return the next break, i.e. [0], from the PageBreakOnStepList. + // The if was changed to fix B2017-161. + if (PageBreakOnStepList.Count > 0 && (PageBreakOnStepList[0].YTop - (lastBreak == null ? ((TopMostChild != null) ? TopMostChild.YTop : 0) : lastBreak.YTop) <= ySpaceOnCurPage)) paraBreak = PageBreakOnStepList[0]; else { @@ -1146,7 +1150,9 @@ namespace Volian.Print.Library } onNewPage = true; float yTopNew = Math.Min(paraBreak.YTopMost, paraBreak.YVeryTop) - YTopMost; - + // B2017-161: unnecessary PageBreak for background documents: use the 'usedPageBreakOnStepList' flag when using the PageBreakOnStepList, don't adjust space on page to account + // for continue message, if there is not one. + bool usedPageBreakOnStepList = false; // This is for formats that break on all HLS, Cautions & Notes (often backgrounds): if (PageBreakOnStepList.Count > 0) { @@ -1158,6 +1164,7 @@ namespace Volian.Print.Library paraBreak = PageBreakOnStepList[0]; PageBreakOnStepList.RemoveAt(0); yTopNew = paraBreak.YTop - YTopMost; + usedPageBreakOnStepList = true; } // The following code caused forced pagination for Catawba EOP BG - EP/1/A/5000/FR-C.1.SC..S16..N2..S4..S1. //else if(PageBreakOnStepList[0].YSize - yTop <= ySpaceOnCurPage) @@ -1182,7 +1189,7 @@ namespace Volian.Print.Library doSectionTitleContinued1 = false; } if (doSectionTitleContinued1) ySpaceOnNextPage1 -= 2 * SixLinesPerInch; // B2016-195: Account for Section Continue Message - ySpaceOnCurPage = ySpaceOnNextPage1; + if (!usedPageBreakOnStepList) ySpaceOnCurPage = ySpaceOnNextPage1; //ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch); // Allow for continue message and blank line. //if (paraBreak.YTopMost != paraBreak.YVeryTop && MyPageHelper.TopMessage == null && MyPageHelper.BottomMessage == null)