B2020-013 Added check for second RNO that will fit on the page

Corrected Debug message for Leading so 7lpi is factored in
B2020-014 Corrected 7lpi print of tables so that they shrink properly
This commit is contained in:
2020-01-29 17:46:07 +00:00
parent eacd97f0fa
commit cb5a88ea6f
3 changed files with 30 additions and 5 deletions

View File

@@ -768,6 +768,7 @@ namespace Volian.Print.Library
}
private float GetYPageSizeUseOnAllButFirstPage()
{
//float _PointsPerPage = PDFPageSize.PaperSizePoints(MyItemInfo.ActiveFormat.PlantFormat.FormatData.PDFPageSize.PaperSize); // A4 paper logic
float _PointsPerPage = 792;
int indx = (int)MyItemInfo.MyDocStyle.IndexOtherThanFirstPage;
foreach (DocStyle ds in MyItemInfo.ActiveFormat.PlantFormat.DocStyles.DocStyleList)
@@ -1564,7 +1565,7 @@ namespace Volian.Print.Library
// The top of this step is more than 1/2 way down the page
if ((-yLocation + yStart) >= yLowerLimit)
if (myPara != lastBreak)
if ((-yLocation + yStart) >= yLowerLimit) // Only if it is more than the lower limit
if ((-yLocation + yStart) >= yLowerLimit && !myPara.HasSecondRNOThatWillFit(yStart, yLowerLimit, yUpperLimit ,myList, stepLevel)) // Only if it is more than the lower limit // B2020-013 if it has a second RNO see if it will fit - Callaway OTO-AC-00002 step 2
return myPara;
// B2019-103, B2019-114 Break at a step if the step will fit on a page by itself and it will
// not fit in the current pagee
@@ -1601,6 +1602,25 @@ namespace Volian.Print.Library
//if(minPara2 != null) DebugPagination.WriteLine("### n222222 {0}", minPara2);
return minPara ?? minPara2;
}
// B2020-013 premature break in RNO column - Callaway OTO-AC-00002 step 2
private bool HasSecondRNOThatWillFit(float yStart, float yLowerLimit, float yUpperLimit, StepLevelList myList, int stepLevel)//float ystart, float ylowerlimit)
{
if (!MyItemInfo.IsInRNO || stepLevel+1 >= myList.Count)
return false; // does not have second RNO
vlnParagraph tmp = this;
// see there there is a second RNO then see if it will fit on the page
while (!tmp.MyItemInfo.IsRNOPart) tmp = tmp.MyParent;
if (tmp.MyItemInfo.RNOs != null && tmp.MyItemInfo.RNOs.Count > 0)
{
foreach (float yLocation in myList[stepLevel+1].Keys) // loop thru yLocation from pagination list
{
if ((-yLocation + yStart) >= yLowerLimit)
return true; // has a second RNO that will fit
}
}
return false;
}
private static bool StepWillFitOnBlankPageButNotOnCurrentPage(vlnParagraph myPara, float yLocation, float yStart,float fullPage)
{
// B2019-150 & B2019-151 Pagination Bugs Seen for Summer EOP4.1 Step 10 and