Fixed logic that determines when a step is continued on next page so that it uses the phonelist length
Fixed logic that counts the number of lines a phone list takes Added number of lines an item take up in our debug (micro-print) message
This commit is contained in:
parent
9393fc01d4
commit
310fb42c3c
@ -227,7 +227,7 @@ namespace Volian.Print.Library
|
|||||||
// ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin);
|
// ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin);
|
||||||
if (MyPageHelper.DidFirstPageDocStyle && (MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnAllButFirstPage) > 0)
|
if (MyPageHelper.DidFirstPageDocStyle && (MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnAllButFirstPage) > 0)
|
||||||
yPageSizeNextPage = GetYPageSizeUseOnAllButFirstPage();
|
yPageSizeNextPage = GetYPageSizeUseOnAllButFirstPage();
|
||||||
if (!KeepWithHeader && !KeepStepsOnPage && YSize - SixLinesPerInch + yEndMsg <= yPageSizeNextPage) // if the entire step can fit on one page, do a page break
|
if (!KeepWithHeader && !KeepStepsOnPage && YSize - SixLinesPerInch + yEndMsg <= yPageSizeNextPage) // if the entire step can fit on one page, do a page break
|
||||||
{
|
{
|
||||||
// Don't want extra line before step
|
// 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);
|
//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);
|
||||||
@ -436,8 +436,10 @@ namespace Volian.Print.Library
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// also account for phonelist for locating bottom continue message:
|
// also account for phonelist for locating bottom continue message:
|
||||||
|
float phoneListHeight = 0;
|
||||||
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.PrintPhoneList && MyPageHelper.PhoneListHeight != 0)
|
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.PrintPhoneList && MyPageHelper.PhoneListHeight != 0)
|
||||||
myBottomMsgSpace += (MyPageHelper.PhoneListHeight - vlnPrintObject.SixLinesPerInch);
|
phoneListHeight = MyPageHelper.PhoneListHeight;
|
||||||
|
ySpaceOnCurPage -= phoneListHeight;
|
||||||
|
|
||||||
string myTopMsg = docstyle.Continue.Top.Message;
|
string myTopMsg = docstyle.Continue.Top.Message;
|
||||||
float myTopMsgSpace = ((myTopMsg ?? "") != "") ? 2 * SixLinesPerInch : 0;
|
float myTopMsgSpace = ((myTopMsg ?? "") != "") ? 2 * SixLinesPerInch : 0;
|
||||||
@ -554,7 +556,7 @@ namespace Volian.Print.Library
|
|||||||
RemoveProcessedParagraphs(myList, yTopNew - yTop);
|
RemoveProcessedParagraphs(myList, yTopNew - yTop);
|
||||||
yTop = yTopNew;
|
yTop = yTopNew;
|
||||||
MyPageHelper.ParaBreaks.Add(paraBreak);
|
MyPageHelper.ParaBreaks.Add(paraBreak);
|
||||||
ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch); // Allow for continue message and blank line.
|
ySpaceOnCurPage = yPageSize - (myTopMsgSpace + phoneListHeight + SixLinesPerInch); // Allow for continue message and blank line.
|
||||||
//ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch); // Allow for continue message and blank line.
|
//ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch); // Allow for continue message and blank line.
|
||||||
//if (paraBreak.YTopMost != paraBreak.YVeryTop && MyPageHelper.TopMessage == null && MyPageHelper.BottomMessage == null)
|
//if (paraBreak.YTopMost != paraBreak.YVeryTop && MyPageHelper.TopMessage == null && MyPageHelper.BottomMessage == null)
|
||||||
// ySpaceOnCurPage = yPageSize;
|
// ySpaceOnCurPage = yPageSize;
|
||||||
|
@ -518,7 +518,7 @@ namespace Volian.Print.Library
|
|||||||
if (phlist != null && phlist != "")
|
if (phlist != null && phlist != "")
|
||||||
{
|
{
|
||||||
// count lines:
|
// count lines:
|
||||||
int cl = 1;
|
int cl = 0;
|
||||||
int indx = phlist.IndexOf("\n");
|
int indx = phlist.IndexOf("\n");
|
||||||
while (indx > 0)
|
while (indx > 0)
|
||||||
{
|
{
|
||||||
@ -528,6 +528,7 @@ namespace Volian.Print.Library
|
|||||||
else
|
else
|
||||||
indx = phlist.IndexOf("\n", indx + 1);
|
indx = phlist.IndexOf("\n", indx + 1);
|
||||||
}
|
}
|
||||||
|
if (cl == 0) cl = 1; // phone list is a single line without an ending newline
|
||||||
_MyHelper.PhoneListHeight = cl * vlnPrintObject.SixLinesPerInch;
|
_MyHelper.PhoneListHeight = cl * vlnPrintObject.SixLinesPerInch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,7 +194,7 @@ namespace Volian.Print.Library
|
|||||||
ColumnText ct = new ColumnText(cb);
|
ColumnText ct = new ColumnText(cb);
|
||||||
ct.SetSimpleColumn(left, 4 + top - yDescent, right, top - yDescent - 50);
|
ct.SetSimpleColumn(left, 4 + top - yDescent, right, top - yDescent - 50);
|
||||||
iTextSharp.text.Font font = FontFactory.GetFont("Arial", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 2);
|
iTextSharp.text.Font font = FontFactory.GetFont("Arial", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 2);
|
||||||
Chunk chk = new Chunk(debugText + string.Format(" Top = {0}",top), font);
|
Chunk chk = new Chunk(debugText + string.Format(", Top = {0}",top), font);
|
||||||
Phrase ph = new Phrase(chk);
|
Phrase ph = new Phrase(chk);
|
||||||
ct.AddElement(ph);
|
ct.AddElement(ph);
|
||||||
cb.SetColorFill(new Color(sysColor));
|
cb.SetColorFill(new Color(sysColor));
|
||||||
|
@ -753,7 +753,7 @@ namespace Volian.Print.Library
|
|||||||
IParagraph.Chunks.RemoveAt(0);
|
IParagraph.Chunks.RemoveAt(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo, yBottomMargin);
|
retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}",YSize/SixLinesPerInch), yBottomMargin);
|
||||||
if (retval == 0) // problem occurred - paragraph was not able to be printed on page
|
if (retval == 0) // problem occurred - paragraph was not able to be printed on page
|
||||||
{ // pagination logic needs to be fixed.
|
{ // pagination logic needs to be fixed.
|
||||||
ForcePagination(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation, ref retval);
|
ForcePagination(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation, ref retval);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user