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:
parent
95874bd501
commit
5c49d94a1a
@ -202,12 +202,20 @@ namespace Volian.Print.Library
|
||||
}
|
||||
if (ySizeIncludingFirstStep < yWithinMargins && ySizeIncludingFirst > yWithinMargins && yWithinMargins > (yPageSize/2))
|
||||
ySizeIncludingFirst = ySizeIncludingFirstStep;
|
||||
if (!KeepStepsOnPage && (ySizeIncludingFirst + ySectionEndMsg) > (yLocation - yBottomMargin) && !nearTheTop)
|
||||
if (!KeepStepsOnPage && (ySizeIncludingFirst + ySectionEndMsg) >
|
||||
(yLocation - (MyItemInfo.MyDocStyle.Layout.FooterLength + yBottomMargin)) && !nearTheTop)
|
||||
{
|
||||
if (!MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert ||
|
||||
(ySizeIncludingFirst < yPageSize || yWithinMargins < (yPageSize - (2 * 72))))
|
||||
{
|
||||
ShowPageBreak(4, "Page Break Before Continuous Step Section", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
|
||||
// .oooooo. . o8o .oooooo..o . o8o
|
||||
// d8P' `Y8b .o8 `"' d8P' `Y8 .o8 `"'
|
||||
// 888 .ooooo. ooo. .oo. .o888oo oooo ooo. .oo. oooo oooo .ooooo. oooo oooo .oooo.o Y88bo. .ooooo. .ooooo. .o888oo oooo .ooooo. ooo. .oo. .oooo.o
|
||||
// 888 d88' `88b `888P"Y88b 888 `888 `888P"Y88b `888 `888 d88' `88b `888 `888 d88( "8 `"Y8888o. d88' `88b d88' `"Y8 888 `888 d88' `88b `888P"Y88b d88( "8
|
||||
// 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 `"Y88b. `"Y88b 888ooo888 888 888 888 888 888 888 888 `"Y88b.
|
||||
// `88b ooo 888 888 888 888 888 . 888 888 888 888 888 888 888 888 888 o. )88b oo .d8P 888 .o 888 .o8 888 . 888 888 888 888 888 o. )88b
|
||||
// `Y8bood8P' `Y8bod8P' o888o o888o "888" o888o o888o o888o `V88V"V8P' `Y8bod8P' `V88V"V8P' 8""888P' 8""88888P' `Y8bod8P' `Y8bod8P' "888" o888o `Y8bod8P' o888o o888o 8""888P'
|
||||
ShowPageBreak(4, "Page Break Before Continuous Step Section", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -289,6 +297,13 @@ namespace Volian.Print.Library
|
||||
(mySize <= yWithinMargins + yExtra && SpecialCaseForRobinson()))
|
||||
//if (!ManualPageBreak && mySize + yEndMsg <= yWithinMargins + SixLinesPerInch) // Don't Paginate if there is enough room, will fit on page
|
||||
{
|
||||
// ooooo ooooo ooooo .oooooo..o o8o oooo oooo .o88o. o8o .
|
||||
// `888' `888' `888' d8P' `Y8 `"' `888 `888 888 `" `"' .o8
|
||||
// 888 888 888 Y88bo. oooo oooo ooo oooo 888 888 o888oo oooo .o888oo
|
||||
// 888ooooo888 888 `"Y8888o. `88. `88. .8' `888 888 888 888 `888 888
|
||||
// 888 888 888 `"Y88b `88..]88..8' 888 888 888 888 888 888
|
||||
// 888 888 888 o oo .d8P `888'`888' 888 888 888 888 888 888 .
|
||||
// o888o o888o o888ooooood8 8""88888P' `8' `8' o888o o888o o888o o888o o888o "888"
|
||||
//Console.WriteLine("'PageBreak',1,'No','HLS will fit on page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath);
|
||||
ShowPageBreak(-1, "HLS will fit on page", firstStep, YSize, yPageSize, yWithinMargins,ManualPageBreak);
|
||||
return 0;
|
||||
@ -357,6 +372,13 @@ namespace Volian.Print.Library
|
||||
// Don't want extra line before step
|
||||
//Console.WriteLine("'PageBreak',2,'Yes','HLS will fit on 1 Page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath);
|
||||
// A page break will occur before the step is put out. ShowPageBreak with first argument of -1 is NOT a page break.
|
||||
// .ooo ooooo ooooooooo. ooooo
|
||||
// .88' `888' `888 `Y88. `888'
|
||||
// d88' 888 888 .d88' 888
|
||||
// d888P"Ybo. 888 888ooo88P' 888
|
||||
// Y88[ ]88 888 888 888
|
||||
// `Y88 88P 888 o 888 888
|
||||
// `88bod8' o888ooooood8 o888o o888o
|
||||
ShowPageBreak(5, "HLS will fit on 1 Page at 6 LPI", "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
|
||||
return 1;
|
||||
}
|
||||
@ -366,6 +388,13 @@ namespace Volian.Print.Library
|
||||
else if (!KeepStepsOnPage && MyItemInfo.ActiveFormat.MyStepSectionLayoutData.CompressSteps
|
||||
&& (ySize7LPI - SixLinesPerInch + yEndMsg) < (yPageSizeNextPage * SixLinesPerInch / _SevenLinesPerInch))
|
||||
{
|
||||
// ooooooooo ooooo ooooooooo. ooooo
|
||||
// d"""""""8' `888' `888 `Y88. `888'
|
||||
// .8' 888 888 .d88' 888
|
||||
// .8' 888 888ooo88P' 888
|
||||
// .8' 888 888 888
|
||||
// .8' 888 o 888 888
|
||||
// .8' o888ooooood8 o888o o888o
|
||||
//Console.WriteLine("'PageBreak',3,'Yes','HLS will fit on 1 Page at 7 LPI',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath);
|
||||
ShowPageBreak(7, "HLS will fit on 1 Page at 7 LPI", "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
|
||||
//Console.WriteLine("'7LPI',{0},{1}", MyItemInfo.DBSequence, YSize);
|
||||
@ -416,6 +445,15 @@ namespace Volian.Print.Library
|
||||
// ShowPageBreak(6, CheckForCompression("HLS will have to split on current page"), "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
|
||||
//BuildPageBreakList(yWithinMargins + SixLinesPerInch, yPageSizeNextPage + yExtra2, KeepStepsOnPage); // Case 5 - Determine items where page break(s) occur
|
||||
BuildPageBreakList(ySpaceOnFirstPage, yPageSize + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles); // Case 5 - Determine items where page break(s) occur
|
||||
// ooooo ooooo ooooo .oooooo..o .oooooo..o oooo o8o . .oooooo. .
|
||||
// `888' `888' `888' d8P' `Y8 d8P' `Y8 `888 `"' .o8 d8P' `Y8b .o8
|
||||
// 888 888 888 Y88bo. Y88bo. oo.ooooo. 888 oooo .o888oo 888 oooo oooo oooo d8b oooo d8b .ooooo. ooo. .oo. .o888oo
|
||||
// 888ooooo888 888 `"Y8888o. `"Y8888o. 888' `88b 888 `888 888 888 `888 `888 `888""8P `888""8P d88' `88b `888P"Y88b 888
|
||||
// 888 888 888 `"Y88b `"Y88b 888 888 888 888 888 888 888 888 888 888 888ooo888 888 888 888
|
||||
// 888 888 888 o oo .d8P oo .d8P 888 888 888 888 888 . `88b ooo 888 888 888 888 888 .o 888 888 888 .
|
||||
// o888o o888o o888ooooood8 8""88888P' 8""88888P' 888bod8P' o888o o888o "888" `Y8bood8P' `V88V"V8P' d888b d888b `Y8bod8P' o888o o888o "888"
|
||||
// 888
|
||||
// o888o
|
||||
if (firstStep == "Yes")
|
||||
{
|
||||
//ySpaceOnFirstPage = yWithinMargins; // Accounts for Section Title Line
|
||||
@ -435,6 +473,15 @@ namespace Volian.Print.Library
|
||||
//BuildPageBreakList(yPageSize + yExtra, yPageSize); // Case 1 :Works for ES05 Step 15 SubStep 7
|
||||
// Pagination Fix Break1LineShort4
|
||||
BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage, yEndMsg, doSectionTitleContinued & SectionShowTitles); // Case 1 :Works for ES05 Step 15 SubStep 7
|
||||
// ooooo ooooo ooooo .oooooo..o .oooooo..o oooo o8o . ooooo ooo
|
||||
// `888' `888' `888' d8P' `Y8 d8P' `Y8 `888 `"' .o8 `888b. `8'
|
||||
// 888 888 888 Y88bo. Y88bo. oo.ooooo. 888 oooo .o888oo 8 `88b. 8 .ooooo. oooo oooo ooo
|
||||
// 888ooooo888 888 `"Y8888o. `"Y8888o. 888' `88b 888 `888 888 8 `88b. 8 d88' `88b `88. `88. .8'
|
||||
// 888 888 888 `"Y88b `"Y88b 888 888 888 888 888 8 `88b.8 888ooo888 `88..]88..8'
|
||||
// 888 888 888 o oo .d8P oo .d8P 888 888 888 888 888 . 8 `888 888 .o `888'`888'
|
||||
// o888o o888o o888ooooood8 8""88888P' 8""88888P' 888bod8P' o888o o888o "888" o8o `8 `Y8bod8P' `8' `8'
|
||||
// 888
|
||||
// o888o
|
||||
if (firstStep == "Yes")
|
||||
ShowPageBreak(9, CheckForCompression("First HLS will have to split on new page"), "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak);
|
||||
else
|
||||
@ -676,7 +723,14 @@ namespace Volian.Print.Library
|
||||
// MyPageHelper.ParaBreaks.Add(this);
|
||||
// return;
|
||||
//}
|
||||
while (((YSize - yTop) > (ySpaceOnCurPage - (accountForCalvertAlarmConditionResponseFooter+yEndMsg))) || PageBreakOnStepList.Count > 0)
|
||||
// ooooo ooo . oooooooooo. oooo
|
||||
// `888b. `8' .o8 `888' `Y8b `888
|
||||
// 8 `88b. 8 .ooooo. oooo ooo .o888oo 888 888 oooo d8b .ooooo. .oooo. 888 oooo
|
||||
// 8 `88b. 8 d88' `88b `88b..8P' 888 888oooo888' `888""8P d88' `88b `P )88b 888 .8P'
|
||||
// 8 `88b.8 888ooo888 Y888' 888 888 `88b 888 888ooo888 .oP"888 888888.
|
||||
// 8 `888 888 .o .o8"'88b 888 . 888 .88P 888 888 .o d8( 888 888 `88b.
|
||||
// o8o `8 `Y8bod8P' o88' 888o "888" o888bood8P' d888b `Y8bod8P' `Y888""8o o888o o888o
|
||||
while (((YSize - yTop) > (ySpaceOnCurPage - (accountForCalvertAlarmConditionResponseFooter + yEndMsg))) || PageBreakOnStepList.Count > 0)
|
||||
{
|
||||
float ySpaceOnCurPageSave = ySpaceOnCurPage;
|
||||
if (((YSize - yTop) <= (ySpaceOnCurPage - accountForCalvertAlarmConditionResponseFooter)) || PageBreakOnStepList.Count > 0)
|
||||
@ -889,6 +943,15 @@ namespace Volian.Print.Library
|
||||
if (paraBreak7 != null && paraBreak7.YOffset > paraBreak.YOffset && paraBreak.MyItemInfo.StepLevel >= paraBreak7.MyItemInfo.StepLevel)
|
||||
{
|
||||
paraBreak = paraBreak7;
|
||||
// .oooooo. ooooooooo. .
|
||||
// d8P' `Y8b `888 `Y88. .o8
|
||||
// 888 .ooooo. ooo. .oo. .oo. oo.ooooo. oooo d8b .ooooo. .oooo.o .oooo.o 888 .d88' .oooo. oooo d8b .o888oo
|
||||
// 888 d88' `88b `888P"Y88bP"Y88b 888' `88b `888""8P d88' `88b d88( "8 d88( "8 888ooo88P' `P )88b `888""8P 888
|
||||
// 888 888 888 888 888 888 888 888 888 888ooo888 `"Y88b. `"Y88b. 888 .oP"888 888 888
|
||||
// `88b ooo 888 888 888 888 888 888 888 888 888 .o o. )88b o. )88b 888 d8( 888 888 888 .
|
||||
// `Y8bood8P' `Y8bod8P' o888o o888o o888o 888bod8P' d888b `Y8bod8P' 8""888P' 8""888P' o888o `Y888""8o d888b "888"
|
||||
// 888
|
||||
// o888o
|
||||
if (lastBreak != null)
|
||||
{
|
||||
lastBreak.PageBreakReason = "More of Step at 7 LPI";
|
||||
@ -943,6 +1006,15 @@ namespace Volian.Print.Library
|
||||
if ((YSize - yTop) > (ySpaceOnCurPage - (accountForCalvertAlarmConditionResponseFooter + yEndMsg))
|
||||
&& (YSize - yTop) < ySpaceAt7LPI )
|
||||
{
|
||||
// .oooooo. ooooooooo. .
|
||||
// d8P' `Y8b `888 `Y88. .o8
|
||||
// 888 .ooooo. ooo. .oo. .oo. oo.ooooo. oooo d8b .ooooo. .oooo.o .oooo.o 888 .d88' .ooooo. .oooo.o .o888oo
|
||||
// 888 d88' `88b `888P"Y88bP"Y88b 888' `88b `888""8P d88' `88b d88( "8 d88( "8 888ooo88P' d88' `88b d88( "8 888
|
||||
// 888 888 888 888 888 888 888 888 888 888ooo888 `"Y88b. `"Y88b. 888`88b. 888ooo888 `"Y88b. 888
|
||||
// `88b ooo 888 888 888 888 888 888 888 888 888 .o o. )88b o. )88b 888 `88b. 888 .o o. )88b 888 .
|
||||
// `Y8bood8P' `Y8bod8P' o888o o888o o888o 888bod8P' d888b `Y8bod8P' 8""888P' 8""888P' o888o o888o `Y8bod8P' 8""888P' "888"
|
||||
// 888
|
||||
// o888o
|
||||
paraBreak.PageBreakReason = "Rest of Step fits at 7 LPI";
|
||||
paraBreak.CompressPartOfPage = true;
|
||||
break;
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user