Account for the footer length when deciding if a continuous section header will fit on the page or not.
Added large comments to identify important locations in the code.
This commit is contained in:
@@ -875,6 +875,15 @@ namespace Volian.Print.Library
|
||||
ProfileTimer.Pop(profileDepth);
|
||||
if (retval == 0) // problem occurred - paragraph was not able to be printed on page
|
||||
{ // pagination logic needs to be fixed.
|
||||
// oooooooooooo ooooooooo. o8o . o8o
|
||||
// `888' `8 `888 `Y88. `"' .o8 `"'
|
||||
// 888 .ooooo. oooo d8b .ooooo. .ooooo. 888 .d88' .oooo. .oooooooo oooo ooo. .oo. .oooo. .o888oo oooo .ooooo. ooo. .oo.
|
||||
// 888oooo8 d88' `88b `888""8P d88' `"Y8 d88' `88b 888ooo88P' `P )88b 888' `88b `888 `888P"Y88b `P )88b 888 `888 d88' `88b `888P"Y88b
|
||||
// 888 " 888 888 888 888 888ooo888 888 .oP"888 888 888 888 888 888 .oP"888 888 888 888 888 888 888
|
||||
// 888 888 888 888 888 .o8 888 .o 888 d8( 888 `88bod8P' 888 888 888 d8( 888 888 . 888 888 888 888 888
|
||||
// o888o `Y8bod8P' d888b `Y8bod8P' `Y8bod8P' o888o `Y888""8o `8oooooo. o888o o888o o888o `Y888""8o "888" o888o `Y8bod8P' o888o o888o
|
||||
// d" YD
|
||||
// "Y88888P'
|
||||
ForcePagination(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation, ref retval);
|
||||
}
|
||||
else
|
||||
@@ -1220,6 +1229,13 @@ namespace Volian.Print.Library
|
||||
DocStyle docstyle = null;
|
||||
switch (paginate)
|
||||
{
|
||||
// .oooooo. .oooo.
|
||||
// d8P' `Y8b d8P'`Y8b
|
||||
// 888 .oooo. .oooo.o .ooooo. 888 888
|
||||
// 888 `P )88b d88( "8 d88' `88b 888 888
|
||||
// 888 .oP"888 `"Y88b. 888ooo888 888 888
|
||||
// `88b ooo d8( 888 o. )88b 888 .o `88b d88'
|
||||
// `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' `Y8bd8P'
|
||||
case 0: // No page break
|
||||
if (MyItemInfo.IsSection)
|
||||
{
|
||||
@@ -1237,15 +1253,13 @@ namespace Volian.Print.Library
|
||||
///else
|
||||
/// MyPageHelper.YMultiplier = 1;
|
||||
break;
|
||||
// XXXX XX XXXXX XXXXXXX X
|
||||
// X X X X X X X XXX
|
||||
// X X X X X
|
||||
// X X X X X X X
|
||||
// X X X XXXXX XXXX X
|
||||
// X X X X X X X
|
||||
// X XXXXX X X X
|
||||
// X X X X X X X X X
|
||||
// XXXX XXX XXX XXXXX XXXXXXX XXXXX
|
||||
// .oooooo. .o
|
||||
// d8P' `Y8b o888
|
||||
//888 .oooo. .oooo.o .ooooo. 888
|
||||
//888 `P )88b d88( "8 d88' `88b 888
|
||||
//888 .oP"888 `"Y88b. 888ooo888 888
|
||||
//`88b ooo d8( 888 o. )88b 888 .o 888
|
||||
// `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' o888o
|
||||
case 1: // Break on High Level Step
|
||||
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
|
||||
docstyle = MyItemInfo.MyDocStyle;
|
||||
@@ -1312,6 +1326,13 @@ namespace Volian.Print.Library
|
||||
else
|
||||
MyPageHelper.YMultiplier = 1;
|
||||
break;
|
||||
// .oooooo. .oooo.
|
||||
// d8P' `Y8b .dP""Y88b
|
||||
// 888 .oooo. .oooo.o .ooooo. ]8P'
|
||||
// 888 `P )88b d88( "8 d88' `88b .d8P'
|
||||
// 888 .oP"888 `"Y88b. 888ooo888 .dP'
|
||||
// `88b ooo d8( 888 o. )88b 888 .o .oP .o
|
||||
// `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' 8888888888
|
||||
case 2: // Break within a Step
|
||||
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
|
||||
docstyle = MyItemInfo.MyDocStyle;
|
||||
@@ -1465,6 +1486,13 @@ namespace Volian.Print.Library
|
||||
if (addExtraLines) yPageStart -= (2 * SixLinesPerInch);
|
||||
if (MyItemInfo.IsRNOPart && MyItemInfo.FormatStepData.DoubleSpace && MyItemInfo.FormatStepData.SpaceDouble) yPageStart += SixLinesPerInch;
|
||||
break;
|
||||
// .oooooo. .oooo.
|
||||
// d8P' `Y8b .dP""Y88b
|
||||
// 888 .oooo. .oooo.o .ooooo. ]8P'
|
||||
// 888 `P )88b d88( "8 d88' `88b <88b.
|
||||
// 888 .oP"888 `"Y88b. 888ooo888 `88b.
|
||||
// `88b ooo d8( 888 o. )88b 888 .o o. .88P
|
||||
// `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' `8bd88P'
|
||||
case 3: // Break on High Level Step (SevenLinesPerInch)
|
||||
if (!firstHighLevelStep)
|
||||
{
|
||||
|
Reference in New Issue
Block a user