This commit is contained in:
Kathy Ruffing 2011-01-19 16:25:34 +00:00
parent ea0d4749e2
commit e45eb154ea

View File

@ -103,6 +103,10 @@ namespace Volian.Print.Library
/// This variable is used to match 16 bit pagaination
/// </summary>
private bool _Match16BitPagination = false;
// the following boolean is to help testing of various formats. If the plant has an alternating foldout
// and you want a blank page, until foldouts are developed, set to true.
// AEP DU1 - do a blank page for foldout
private bool _DoBlankForFoldout = false;
public float ParagraphToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin)
{
if (Processed) return yPageStart;
@ -259,7 +263,13 @@ namespace Volian.Print.Library
{
case 1: // Break on High Level Step
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
if (_DoBlankForFoldout&&MyItemInfo.ActiveSection.IsDefaultSection)
{
cb.PdfDocument.NewPage();
cb.Circle(100, 100, 50);
}
cb.PdfDocument.NewPage();
yPageStart = yTopMargin + YTopMost;
MyPageHelper.YMultiplier = 1;
break;
@ -267,21 +277,30 @@ namespace Volian.Print.Library
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
DocStyle docstyle = MyItemInfo.MyDocStyle;
string myMsg = docstyle.Continue.Bottom.Message;
if (myMsg.IndexOf(@"%d") > -1)
myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanText.Trim());
float msg_yLocation = 0;
switch (docstyle.Continue.Bottom.Location)
if (myMsg != null && myMsg != "")
{
case E_ContBottomLoc.EndOfText: // place continue string at end of text
case E_ContBottomLoc.BtwnTextAndBottom: // place continue string between end of text & bottom of page
Console.WriteLine("Not done yet");
break;
case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page
msg_yLocation = yBottomMargin + 2 * SixLinesPerInch; // 2 lines above bottom margin
break;
if (myMsg.IndexOf(@"%d") > -1)
myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanText.Trim());
float msg_yLocation = 0;
switch (docstyle.Continue.Bottom.Location)
{
case E_ContBottomLoc.EndOfText: // place continue string at end of text
case E_ContBottomLoc.BtwnTextAndBottom: // place continue string between end of text & bottom of page
Console.WriteLine("Not done yet");
break;
case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page
msg_yLocation = yBottomMargin + 2 * SixLinesPerInch; // 2 lines above bottom margin
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);
}
if (_DoBlankForFoldout && MyItemInfo.ActiveSection.IsDefaultSection)
{
cb.PdfDocument.NewPage();
cb.Circle(200, 100, 50);
}
MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
cb.PdfDocument.NewPage();
// If there is a box, adjust the yTopMost to include it.
// TODO: Why doesn't YTopMost account for the box?
float yTopMost = YTopMost;
@ -289,15 +308,23 @@ namespace Volian.Print.Library
yTopMost = Math.Min(yTopMost,YVeryTop);
yPageStart = yTopMargin + yTopMost - 2 * SixLinesPerInch;
myMsg = docstyle.Continue.Top.Message;
if (myMsg.IndexOf(@"%d") > -1)
myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanText.Trim());
MyPageHelper.TopMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Top.Margin ?? 0, yTopMargin + 0.1F, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
if (myMsg != null && myMsg != "")
{
if (myMsg.IndexOf(@"%d") > -1)
myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanText.Trim());
MyPageHelper.TopMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Top.Margin ?? 0, yTopMargin + 0.1F, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font);
}
MyPageHelper.YMultiplier = 1;
break;
case 3: // Break on High Level Step (SevenLinesPerInch)
OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin);
if (_DoBlankForFoldout && MyItemInfo.ActiveSection.IsDefaultSection)
{
cb.PdfDocument.NewPage();
cb.Circle(300, 100, 50);
}
cb.PdfDocument.NewPage();
yPageStart = yTopMargin + YTopMost;
MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch;
break;