B2019--115 Bottom Continue Message Location after AER Table and RNO Content excedes Page.

This commit is contained in:
Rich 2019-08-14 13:53:17 +00:00
parent c92737906c
commit 70f6cc2ec6

View File

@ -1815,7 +1815,9 @@ namespace Volian.Print.Library
}
}
if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yLocation, yTopMargin);
DoBottomContinueMsg(cb, yBottomMargin, yLocation, docstyle, doThreeContinues);
// B2019-115 Locate Bottom Continue Message below AER Table if necesssary
float bcm_yLocation = TableBottom == -1 ? yLocation: Math.Min(TableBottom,yLocation);
DoBottomContinueMsg(cb, yBottomMargin, bcm_yLocation, docstyle, doThreeContinues);
MyPromsPrinter.NewPage();
if (MyItemInfo.IsStep && (MyItemInfo.ActiveSection != null && ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd))) // C2018-003 fixed use of getting the active section
{
@ -2769,6 +2771,7 @@ namespace Volian.Print.Library
private void DoBottomContinueMsg(PdfContentByte cb, float yBottomMargin, float yLocation, DocStyle docstyle, bool doThreeContinues)
{
// Console.WriteLine("Page {0} - yLocation {1}", cb.PdfWriter.PageNumber, yLocation);
string myMsg = docstyle.Continue.Bottom.Message;
// a format flag exists that states to only put a BOTTOM message if it is a certain type (RNO)
@ -2959,8 +2962,17 @@ namespace Volian.Print.Library
return true;
}
}
// B2019-115 Locate Bottom Continue Message below AER Table if necesssary
private float _TableBottom = -1;
public float TableBottom
{
get { return _TableBottom; }
set { _TableBottom = value; }
}
private float OutputOtherPageSteps(PdfContentByte cb, float YTopMost, float yPageStart, float yTopMargin, float yBottomMargin)
{
// B2019-115 Locate Bottom Continue Message below AER Table if necesssary - Initialize TableBottom to -1
TableBottom = -1;
float retval = YTopMost;
// Find any items remaining in MyPageHelper.MyParagraphs that should be printed on this page.
vlnParagraphs process = new vlnParagraphs(null);
@ -2971,9 +2983,13 @@ namespace Volian.Print.Library
{
if (vPara.MyItemInfo.IsTable && (vPara.YOffset <= YTopMost) && vPara.MyItemInfo.ActiveSection.ColumnMode > 0)
{
_MyLog.WarnFormat("\r\n=-=-=> Table Print on First Page {0} {1} ColumnMode = {2}", vPara.MyItemInfo.ItemID, vPara.MyItemInfo.ShortPath, vPara.MyItemInfo.ActiveSection.ColumnMode);
if (vPara.MyItemInfo.ActiveSection.ColumnMode > 0)
{
// B2019-115 Locate Bottom Continue Message below AER Table if necesssary
_MyLog.WarnFormat("\r\n=-=-=> Table Print on First Page {0} {1} ColumnMode = {2}", vPara.MyItemInfo.ItemID, vPara.MyItemInfo.ShortPath, vPara.MyItemInfo.ActiveSection.ColumnMode);
process.Add(vPara);
// Console.WriteLine("Table YOffset {0} height {1} Bottom = {2} yPageStart = {3} Bottom {4}", vPara.YOffset, vPara.Height, vPara.YOffset + vPara.Height - yPageStart, yPageStart, this.YBottom);
}
}
else if (((vPara.YOffset + vPara.Height) < YTopMost))
{
@ -3014,6 +3030,14 @@ namespace Volian.Print.Library
foreach (vlnParagraph vPara in process)
{
vPara.ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin);
// B2019-115 Locate Bottom Continue Message below AER Table if necesssary
if(vPara.MyItemInfo.IsTable)
{
if (TableBottom == -1)
TableBottom = (yPageStart-vPara.YOffset)-vPara.Height- SixLinesPerInch;
else
TableBottom = Math.Min(TableBottom, (yPageStart - vPara.YOffset) - vPara.Height - SixLinesPerInch);
}
}
return retval;
}