This commit is contained in:
parent
0ea20e9401
commit
30c1bcbdfb
@ -145,7 +145,7 @@ namespace Volian.Print.Library
|
|||||||
retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation);
|
retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation);
|
||||||
if (MyItemInfo.IsHigh)
|
if (MyItemInfo.IsHigh)
|
||||||
{
|
{
|
||||||
MyPageHelper.VlnDestinations.Add(MyItemInfo.MyTab.CleanText + " " + MyItemInfo.DisplayText,
|
MyPageHelper.PageBookmarks.Add(MyItemInfo, MyItemInfo.MyTab.CleanText + " " + MyItemInfo.DisplayText,
|
||||||
new PdfDestination(PdfDestination.FITBH, yLocation + YVeryTop - YTopMost + SixLinesPerInch));
|
new PdfDestination(PdfDestination.FITBH, yLocation + YVeryTop - YTopMost + SixLinesPerInch));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -287,9 +287,22 @@ namespace Volian.Print.Library
|
|||||||
bool firstHighLevelStep = MyItemInfo.IsHigh && (MyItemInfo.MyPrevious == null);
|
bool firstHighLevelStep = MyItemInfo.IsHigh && (MyItemInfo.MyPrevious == null);
|
||||||
switch (paginate)
|
switch (paginate)
|
||||||
{
|
{
|
||||||
|
case 0:
|
||||||
|
if (MyItemInfo.IsSection)
|
||||||
|
{
|
||||||
|
SectionInfo si = MyItemInfo as SectionInfo;
|
||||||
|
MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 1: // Break on High Level Step
|
case 1: // Break on High Level Step
|
||||||
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
|
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
|
||||||
cb.PdfDocument.NewPage();
|
cb.PdfDocument.NewPage();
|
||||||
|
if (MyItemInfo.IsSection)
|
||||||
|
{
|
||||||
|
SectionInfo si = MyItemInfo as SectionInfo;
|
||||||
|
MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null);
|
||||||
|
}
|
||||||
|
|
||||||
if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0)
|
if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0)
|
||||||
PromsPrinter.DoFoldoutPage(cb, "HLS", MyPageHelper.TextLayer, MyPageHelper);
|
PromsPrinter.DoFoldoutPage(cb, "HLS", MyPageHelper.TextLayer, MyPageHelper);
|
||||||
yPageStart = yTopMargin + YTopMost;
|
yPageStart = yTopMargin + YTopMost;
|
||||||
@ -313,7 +326,10 @@ namespace Volian.Print.Library
|
|||||||
Console.WriteLine("Not done yet");
|
Console.WriteLine("Not done yet");
|
||||||
break;
|
break;
|
||||||
case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page
|
case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page
|
||||||
msg_yLocation = yBottomMargin + 2 * SixLinesPerInch; // 2 lines above bottom margin
|
msg_yLocation = yBottomMargin + 2 * SixLinesPerInch + (float)docstyle.Layout.FooterLength; // 2 lines above bottom margin
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
Console.WriteLine("**** BOTTOM CONTINUE MESSAGE NOT CODED*****");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
|
MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
|
||||||
@ -341,7 +357,12 @@ namespace Volian.Print.Library
|
|||||||
if (!firstHighLevelStep)
|
if (!firstHighLevelStep)
|
||||||
{
|
{
|
||||||
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
|
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
|
||||||
cb.PdfDocument.NewPage(); // HLS (7 lpi) break
|
cb.PdfDocument.NewPage(); // HLS (7 lpi) breakif (MyItemInfo.IsSection)
|
||||||
|
if (MyItemInfo.IsSection)
|
||||||
|
{
|
||||||
|
SectionInfo si = MyItemInfo as SectionInfo;
|
||||||
|
MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null);
|
||||||
|
}
|
||||||
if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0)
|
if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0)
|
||||||
PromsPrinter.DoFoldoutPage(cb, "HLS (7 lpi) break", MyPageHelper.TextLayer, MyPageHelper);
|
PromsPrinter.DoFoldoutPage(cb, "HLS (7 lpi) break", MyPageHelper.TextLayer, MyPageHelper);
|
||||||
}
|
}
|
||||||
@ -486,13 +507,26 @@ namespace Volian.Print.Library
|
|||||||
return 0; // this is not an item with a break
|
return 0; // this is not an item with a break
|
||||||
}
|
}
|
||||||
float mySize = YSize * MyPageHelper.YMultiplier;
|
float mySize = YSize * MyPageHelper.YMultiplier;
|
||||||
|
bool ManualPageBreak = false;
|
||||||
if (MyItemInfo.IsStepSection)
|
if (MyItemInfo.IsStepSection)
|
||||||
{
|
{
|
||||||
if (yLocation < yTopMargin) // continuous section
|
if (yLocation < yTopMargin) // continuous section
|
||||||
{
|
{
|
||||||
if (ChildrenBelow == null) return 0;
|
if (ChildrenBelow == null) return 0;
|
||||||
// can the title and the first step fit
|
|
||||||
vlnParagraph firstChild = ChildrenBelow[0];
|
vlnParagraph firstChild = ChildrenBelow[0];
|
||||||
|
|
||||||
|
// This is a continuous section. There may be cases where the user put a manual page
|
||||||
|
// break on the first step (child) in the section. if so, break on the section. The
|
||||||
|
// flag SectionPageBreak is set to true to flag that a pagebreak should not be done
|
||||||
|
// on that first step.
|
||||||
|
ManualPageBreak = (firstChild.MyItemInfo.MyConfig as StepConfig).Step_ManualPagebreak;
|
||||||
|
if (ManualPageBreak)
|
||||||
|
{
|
||||||
|
SectionPageBreak = true;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// can the title and the first step fit?
|
||||||
// add the first child's size + (the section title's size)
|
// add the first child's size + (the section title's size)
|
||||||
float ySizeIncludingFirst = firstChild.YSize + (firstChild.YTop - YTop);
|
float ySizeIncludingFirst = firstChild.YSize + (firstChild.YTop - YTop);
|
||||||
if (ySizeIncludingFirst > (yLocation - yBottomMargin - SixLinesPerInch)) return 1;
|
if (ySizeIncludingFirst > (yLocation - yBottomMargin - SixLinesPerInch)) return 1;
|
||||||
@ -500,7 +534,16 @@ namespace Volian.Print.Library
|
|||||||
return 0; // Don't Paginate (page break) on a Step Section if it's first thing on page
|
return 0; // Don't Paginate (page break) on a Step Section if it's first thing on page
|
||||||
}
|
}
|
||||||
if (!MyItemInfo.IsHigh) return 0; // Don't Paginate on a Substep level
|
if (!MyItemInfo.IsHigh) return 0; // Don't Paginate on a Substep level
|
||||||
bool ManualPageBreak = (MyItemInfo.MyConfig as StepConfig).Step_ManualPagebreak;
|
ManualPageBreak = (MyItemInfo.MyConfig as StepConfig).Step_ManualPagebreak;
|
||||||
|
if (MyItemInfo.FirstSibling == MyItemInfo && ManualPageBreak)
|
||||||
|
{
|
||||||
|
// if parent/section used this pagebreak, skip it.
|
||||||
|
if (MyParent.SectionPageBreak)
|
||||||
|
{
|
||||||
|
ManualPageBreak = false;
|
||||||
|
MyParent.SectionPageBreak = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (_Match16BitPagination) mySize = YSize;
|
if (_Match16BitPagination) mySize = YSize;
|
||||||
float ySize7LPI = YSize + SixLinesPerInch;
|
float ySize7LPI = YSize + SixLinesPerInch;
|
||||||
if (_Match16BitPagination) ySize7LPI += SixLinesPerInch;
|
if (_Match16BitPagination) ySize7LPI += SixLinesPerInch;
|
||||||
@ -684,7 +727,6 @@ namespace Volian.Print.Library
|
|||||||
else
|
else
|
||||||
AdjustYLocation.Add(-yLocation, yLocation); // order in ascending order
|
AdjustYLocation.Add(-yLocation, yLocation); // order in ascending order
|
||||||
}
|
}
|
||||||
//if (stepLevel == 3) Console.WriteLine("here");
|
|
||||||
foreach (float yLocation in CleanupListYLocation)
|
foreach (float yLocation in CleanupListYLocation)
|
||||||
myList[stepLevel].Remove(yLocation);
|
myList[stepLevel].Remove(yLocation);
|
||||||
foreach (float yLocation in AdjustYLocation.Keys)
|
foreach (float yLocation in AdjustYLocation.Keys)
|
||||||
@ -950,25 +992,33 @@ namespace Volian.Print.Library
|
|||||||
bool aerTableOrFigure = itemInfo.FormatStepData.Type.Contains("AER");
|
bool aerTableOrFigure = itemInfo.FormatStepData.Type.Contains("AER");
|
||||||
vlnParagraph hls1 = MyParent;
|
vlnParagraph hls1 = MyParent;
|
||||||
while (hls1.MyParent != null && !hls1.MyItemInfo.IsHigh) hls1 = hls1.MyParent;
|
while (hls1.MyParent != null && !hls1.MyItemInfo.IsHigh) hls1 = hls1.MyParent;
|
||||||
XOffset = hls1.XOffset + hls1.Width / 2 - Width / 2; // xoffset if AER column
|
// Determine center of hls
|
||||||
|
XOffset = hls1.XOffset + hls1.Width / 2;
|
||||||
|
// Determine left edge of the table by subtracting 1/2 of its width.
|
||||||
|
XOffset -= Width / 2;
|
||||||
float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[itemInfo.ColumnMode]);
|
float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[itemInfo.ColumnMode]);
|
||||||
float xLowerLimit = 6; // Adjusted for HLP VE-PROMS
|
float xLowerLimit = hls1.XOffset; // 6; // Adjusted for HLP VE-PROMS
|
||||||
float xUpperLimit = hls1.XOffset + hls1.Width + colR * itemInfo.ColumnMode; // 20110429 RHM Adjusted for RNO Tables Removed +18; // Adjusted for HLP VE-PROMS
|
float xUpperLimit = hls1.XOffset + hls1.Width + colR * itemInfo.ColumnMode; // 20110429 RHM Adjusted for RNO Tables Removed +18; // Adjusted for HLP VE-PROMS
|
||||||
if (!aerTableOrFigure && itemInfo.RNOLevel == 0) // Centered Table of Figure
|
if (!aerTableOrFigure && itemInfo.RNOLevel == 0) // Centered Table or Figure
|
||||||
{
|
{
|
||||||
// adjust for RNO
|
// Add in 1/2 of the width of all RNO columns
|
||||||
XOffset += (colR * itemInfo.ColumnMode) / 2;
|
XOffset += (colR * itemInfo.ColumnMode) / 2;
|
||||||
XOffset -= (hls1.XOffset - (float)itemInfo.MyDocStyle.Layout.LeftMargin) / 2;
|
XOffset -= 12;
|
||||||
}
|
}
|
||||||
else // AER or RNO
|
else // AER or RNO
|
||||||
XOffset = MyParent.XOffset + MyParent.Width / 2 - Width / 2;
|
XOffset = MyParent.XOffset + MyParent.Width / 2 - Width / 2;
|
||||||
//XOffset += colR * itemInfo.RNOLevel;
|
|
||||||
|
// if the XOffset < High Level Step Text's XOffset, then align with the High Level Step Text
|
||||||
if (XOffset < xLowerLimit)
|
if (XOffset < xLowerLimit)
|
||||||
XOffset = xLowerLimit;
|
XOffset = xLowerLimit;
|
||||||
|
|
||||||
|
// if the right margin exceeds the right edge of the rightmost RNO, then adjust right edge to match.
|
||||||
if (XOffset + Width > xUpperLimit)
|
if (XOffset + Width > xUpperLimit)
|
||||||
XOffset = xUpperLimit - Width;
|
XOffset = xUpperLimit - Width;
|
||||||
|
|
||||||
|
// because of the above, if it pushes beyond the left margin, use the left margin.
|
||||||
if (XOffset < (float)itemInfo.MyDocStyle.Layout.LeftMargin)
|
if (XOffset < (float)itemInfo.MyDocStyle.Layout.LeftMargin)
|
||||||
XOffsetBox = (float)itemInfo.MyDocStyle.Layout.LeftMargin;
|
XOffset = XOffsetBox = (float)itemInfo.MyDocStyle.Layout.LeftMargin;
|
||||||
}
|
}
|
||||||
private float AdjustForBlankLines()
|
private float AdjustForBlankLines()
|
||||||
{
|
{
|
||||||
@ -1116,6 +1166,7 @@ namespace Volian.Print.Library
|
|||||||
float hdrWidth = (itemInfo.MyHeader.CleanText == null) ? 0 : itemInfo.MyHeader.CleanText.Length * 6;
|
float hdrWidth = (itemInfo.MyHeader.CleanText == null) ? 0 : itemInfo.MyHeader.CleanText.Length * 6;
|
||||||
int typ = ((int)itemInfo.MyContent.Type) % 10000;
|
int typ = ((int)itemInfo.MyContent.Type) % 10000;
|
||||||
int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex;
|
int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex;
|
||||||
|
|
||||||
if (itemInfo.MyHeader.Justify == System.Drawing.ContentAlignment.MiddleCenter)
|
if (itemInfo.MyHeader.Justify == System.Drawing.ContentAlignment.MiddleCenter)
|
||||||
{
|
{
|
||||||
if (bxIndx != null)
|
if (bxIndx != null)
|
||||||
@ -1142,8 +1193,15 @@ namespace Volian.Print.Library
|
|||||||
int iPosition = (int)position;
|
int iPosition = (int)position;
|
||||||
int charsToTwips = (int)(72 / (CPI ?? 12));
|
int charsToTwips = (int)(72 / (CPI ?? 12));
|
||||||
iPosition = (iPosition / charsToTwips) * charsToTwips;
|
iPosition = (iPosition / charsToTwips) * charsToTwips;
|
||||||
|
position = (position / 7.2F) * 7.2F;
|
||||||
return (float)iPosition;
|
return (float)iPosition;
|
||||||
}
|
}
|
||||||
|
private bool _SectionPageBreak = false;
|
||||||
|
public bool SectionPageBreak
|
||||||
|
{
|
||||||
|
get { return _SectionPageBreak; }
|
||||||
|
set { _SectionPageBreak = value; }
|
||||||
|
}
|
||||||
private bool _Processed = false;
|
private bool _Processed = false;
|
||||||
public bool Processed
|
public bool Processed
|
||||||
{
|
{
|
||||||
@ -1187,8 +1245,6 @@ namespace Volian.Print.Library
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
vlnParagraph vp = this as vlnParagraph;
|
vlnParagraph vp = this as vlnParagraph;
|
||||||
//if (vp != null && vp.MyItemInfo != null && vp.MyItemInfo.ItemID == 55)
|
|
||||||
// Console.WriteLine("here");
|
|
||||||
_YTop = value;
|
_YTop = value;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user