Added PDF SaveLink parameter to methods

Added PDF SaveLink Logic
This commit is contained in:
Rich
2015-06-17 11:32:13 +00:00
parent ee198b5275
commit 8546a09674
2 changed files with 73 additions and 21 deletions

View File

@@ -919,29 +919,42 @@ namespace Volian.Print.Library
// Need to have a way to get to sections which do not have any output (header only)
// Need to have a way to identify procedures
//
//if (IParagraph.Chunks.Count > 0)
//{
// Chunk chk1 = IParagraph.Chunks[0] as Chunk;
// chk1.SetLocalDestination(string.Format("ItemID={0}", MyItemInfo.ItemID)); // Destination
// if (MyItemInfo.MyContent.ContentTransitionCount > 0)
// {
// TransitionInfo ti = MyItemInfo.MyContent.ContentTransitions[0];
// if (ti.MyItemToID.MyProcedure.ItemID == MyItemInfo.MyProcedure.ItemID)
// { // Local Go To
// if (ti.MyItemToID.MyContent.Type > 19999)
// foreach (Chunk chk in IParagraph.Chunks)
// chk.SetLocalGoto(string.Format("ItemID={0}", ti.ToID));
// }
// else // Remote Go To
// foreach (Chunk chk in IParagraph.Chunks)
// chk.SetRemoteGoto(ti.MyItemToID.MyProcedure.DisplayNumber.Replace("/", "_") + ".pdf", string.Format("ItemID={0}", ti.ToID));
// }
if (IParagraph.Chunks.Count > 0 && MyPageHelper.MyPromsPrinter.SaveLinks)
{
Chunk chk1 = IParagraph.Chunks[0] as Chunk;
//Console.WriteLine("\"Desination\"\t{0}", MyItemInfo.ItemID);
if (MyItemInfo.MyContent.Text.ToUpper().Contains("LINK:TR"))
Console.WriteLine("Missing Transition {0}",MyItemInfo.ItemID);
chk1.SetLocalDestination(string.Format("ItemID={0}", MyItemInfo.ItemID)); // Destination
if (MyItemInfo.MyContent.ContentTransitionCount > 0)
{
TransitionInfo ti = MyItemInfo.MyContent.ContentTransitions[0];
ItemInfo tiDefault = GetDefaultItemInfo(ti.MyItemToID);
if (ti.MyItemToID.MyProcedure.ItemID == MyItemInfo.MyProcedure.ItemID)
{ // Local Go To
if (ti.MyItemToID.MyContent.Type > 19999)
foreach (Chunk chk in IParagraph.Chunks)
{
//Console.WriteLine("\"LocalGoTo\"\t{0}", tiDefault.ItemID);
chk.SetLocalGoto(string.Format("ItemID={0}", tiDefault.ItemID));
chk.SetBackground(Color.CYAN);
chk.SetBackground(new Color(System.Drawing.Color.LightCyan));
}
}
else // Remote Go To
foreach (Chunk chk in IParagraph.Chunks)
{
//Console.WriteLine("\"RemoteGoTo\"\t{0}", tiDefault.ItemID);
chk.SetRemoteGoto(ti.MyItemToID.MyProcedure.DisplayNumber.Replace("/", "_") + ".pdf", string.Format("ItemID={0}", tiDefault.ItemID));
chk.SetBackground(new Color(System.Drawing.Color.PeachPuff));
}
}
// MyPageHelper.BottomContent = yLocation - Height;
//if (MyItemInfo.InList(39048)) Console.WriteLine("Here");
}
MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier);
retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}", YSize / SixLinesPerInch), yBottomMargin);
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
@@ -969,6 +982,37 @@ namespace Volian.Print.Library
}
return retval;
}
private ItemInfo GetDefaultItemInfo(ItemInfo myItemInfo)
{
if (myItemInfo.IsProcedure &&myItemInfo.Sections != null)
{
SectionInfo siProcedureSteps = null;
foreach (SectionInfo si in myItemInfo.Sections)
{
if (si.IsDefaultSection)
{
if (si.Steps != null) return si.Steps[0];
if (si.Sections != null) return si.Sections[0];
return si;
}
if (si.DisplayText.Contains("Procedure Step"))
siProcedureSteps = si;
}
if (siProcedureSteps != null)
{
if (siProcedureSteps.Steps != null) return siProcedureSteps.Steps[0];
if (siProcedureSteps.Sections != null) return siProcedureSteps.Sections[0];
return siProcedureSteps;
}
}
if (myItemInfo.IsSection)
{
if (myItemInfo.Steps != null) return myItemInfo.Steps[0];
if (myItemInfo.Sections != null) return myItemInfo.Sections[0];
}
return myItemInfo;
}
private static bool _MissingInitials = false;
public static bool MissingInitials
@@ -1415,7 +1459,7 @@ namespace Volian.Print.Library
yPageStart = yTopMargin + YTopMost;
DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart);
SectionTopMessage(cb, yTopMargin, yLocation);
if (doSectionContinue) DoTopContinueMsg(cb, ref yPageStart, yTopMargin, docstyle , null);
if (doSectionContinue ) DoTopContinueMsg(cb, ref yPageStart, yTopMargin, docstyle , null);
// If "ContinueSectionHeader" (format flag) is true then print the section title with "(Continued)" appended to it
if (!MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader && (!MyItemInfo.IsSection || MyItemInfo.IsSeparateSubsection))
{
@@ -2314,7 +2358,7 @@ namespace Volian.Print.Library
if (this.MyItemInfo.ItemID != vPara.MyItemInfo.ItemID) // RHM20150507 Table Scrunch
process.Add(vPara);
else // RHM20150507 Table Scrunch
_MyLog.WarnFormat("Step Could Have Fit {0}, {1}", MyItemInfo.ItemID, MyItemInfo.ShortPath);
_MyLog.WarnFormat("Step Could Have Fit {0}, {1}",MyItemInfo.ItemID,MyItemInfo.ShortPath);
else if (!vPara.Processed && ((vPara.YOffset) < YTopMost))
retval = Math.Min(retval, vPara.YTopMost);
}