Fixed B2013-160: printing with blank page option causes various problems when procedure has continuous sections and for sections after the procedure steps section

Fixed B2014-023, null reference crash when printing some Farley procedures. Also WCN BCK formatting
This commit is contained in:
Kathy Ruffing 2014-02-05 13:47:52 +00:00
parent 5ccdd9d3d7
commit dd2d97ceb7
2 changed files with 34 additions and 18 deletions

View File

@ -493,12 +493,16 @@ namespace Volian.Print.Library
DoFoldoutPage(cb, "Beginning of Step Section", _TextLayer, _MyHelper, firstStep.FoldoutIndex(), InsertBlankPages); DoFoldoutPage(cb, "Beginning of Step Section", _TextLayer, _MyHelper, firstStep.FoldoutIndex(), InsertBlankPages);
else if (!_MyHelper.CreatingFoldoutPage && _MyFoldoutReader.Count > 0 && InsertBlankPages) else if (!_MyHelper.CreatingFoldoutPage && _MyFoldoutReader.Count > 0 && InsertBlankPages)
{ {
// only insert a blank page if this section does not have a foldout (but the procedure as a whole does) // if it is continuous pagination, don't do blank page - not sure if this is correct place for this:
// and the checkbox on the print dialog to add blank pages is checked if (mySection.SectionConfig.Section_Pagination == SectionConfig.SectionPagination.Separate)
_MyHelper.OnBlankPage = true; {
cb.PdfDocument.Add(new iTextSharp.text.Table(1)); // only insert a blank page if this section does not have a foldout (but the procedure as a whole does)
cb.PdfDocument.NewPage(); // and the checkbox on the print dialog to add blank pages is checked
//_MyLog.InfoFormat("NewPage Begin Step Sect blank {0}", cb.PdfWriter.CurrentPageNumber); _MyHelper.OnBlankPage = true;
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
cb.PdfDocument.NewPage();
//_MyLog.InfoFormat("NewPage Begin Step Sect blank {0}", cb.PdfWriter.CurrentPageNumber);
}
} }
} }
CreateStepPdf(mySection, cb); CreateStepPdf(mySection, cb);
@ -570,8 +574,12 @@ namespace Volian.Print.Library
for (int ii = 0; ii < sectPageCount; ii++) for (int ii = 0; ii < sectPageCount; ii++)
{ {
int pageNumber = 1 + ii; int pageNumber = 1 + ii;
bool didFoldout = false;
if (((mySection.MyDocStyle.StructureStyle.Style ?? 0) & E_DocStructStyle.UseSectionFoldout) != 0) if (((mySection.MyDocStyle.StructureStyle.Style ?? 0) & E_DocStructStyle.UseSectionFoldout) != 0)
{
didFoldout = true;
DoFoldoutPage(cb, "Word Document", _TextLayer, _MyHelper, 0, false); DoFoldoutPage(cb, "Word Document", _TextLayer, _MyHelper, 0, false);
}
if (readerWord != null) if (readerWord != null)
{ {
bool doimport2 = true; bool doimport2 = true;
@ -588,7 +596,7 @@ namespace Volian.Print.Library
OnStatusChanged("Read MSWord", PromsPrinterStatusType.ReadMSWord); OnStatusChanged("Read MSWord", PromsPrinterStatusType.ReadMSWord);
if (doimport2) if (doimport2)
{ {
if (cb.PdfWriter.CurrentPageNumber > 1 && _MyFoldoutReader.Count > 0 && InsertBlankPages) if (!didFoldout && cb.PdfWriter.CurrentPageNumber > 1 && _MyFoldoutReader.Count > 0 && InsertBlankPages)
{ {
// only insert a blank page if this section does not have a foldout (but the procedure as a whole does) // only insert a blank page if this section does not have a foldout (but the procedure as a whole does)
// and the checkbox on the print dialog to add blank pages is checked // and the checkbox on the print dialog to add blank pages is checked

View File

@ -194,8 +194,9 @@ namespace Volian.Print.Library
} }
bxIndex = bxIndx; bxIndex = bxIndx;
} }
// Comanche peak Step Designator // Comanche peak or WCN bck Step designator
if (childItemInfo.IsCaution2 && childItemInfo.SameRowAsParent) if (childItemInfo.IsCaution2 && childItemInfo.SameRowAsParent ||
childItemInfo.IsCaution1 && childItemInfo.SameRowAsParent)
{ {
// Save the Step Designator information // Save the Step Designator information
_StepDesignator = childItemInfo.DisplayText; _StepDesignator = childItemInfo.DisplayText;
@ -843,11 +844,15 @@ namespace Volian.Print.Library
else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages)
{ {
// insert a blank page if this step section had a foldout associated and the checkbox // insert a blank page if this step section had a foldout associated and the checkbox
// on the print dialog, to add blank pages, is checked // on the print dialog, to add blank pages, is checked AND the page did NOT have a
MyPageHelper.OnBlankPage = true; // preceeding foldout.
cb.PdfDocument.Add(new iTextSharp.text.Table(1)); if (MyItemInfo.FoldoutIndex() <= -1)
cb.PdfDocument.NewPage(); {
//_MyLog.InfoFormat("NewPage 10 blank {0}", cb.PdfWriter.CurrentPageNumber); MyPageHelper.OnBlankPage = true;
cb.PdfDocument.Add(new iTextSharp.text.Table(1));
cb.PdfDocument.NewPage();
//_MyLog.InfoFormat("NewPage 10 blank {0}", cb.PdfWriter.CurrentPageNumber);
}
} }
yPageStart = yTopMargin + YTopMost; yPageStart = yTopMargin + YTopMost;
DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart);
@ -1339,8 +1344,11 @@ namespace Volian.Print.Library
} }
private bool IsBackgroundStep() private bool IsBackgroundStep()
{ {
if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfCreekBackgroundFormat && if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfCreekBackgroundFormat)
(MyItemInfo.IsHigh || MyItemInfo.IsCaution || MyItemInfo.IsNote)) return true; {
if (MyItemInfo.IsHigh || MyItemInfo.IsCaution || MyItemInfo.IsNote) return true;
if (MyItemInfo.MyParent != null && MyItemInfo.MyParent.IsStep && MyItemInfo.MyParent.FormatStepData.Type.ToUpper() == "TITLEWITHTEXTBELOW" && MyItemInfo.FormatStepData.Type.ToUpper() != "IMPLICITOR") return true;
}
return false; return false;
} }
@ -1498,7 +1506,7 @@ namespace Volian.Print.Library
// if this is the High Level RNO step (MyTopRNO) and we are numbering the RNO, adjust the xoffset to start the tab // if this is the High Level RNO step (MyTopRNO) and we are numbering the RNO, adjust the xoffset to start the tab
// at the x location rather than starting the text at the x location: // at the x location rather than starting the text at the x location:
AdjustWidth(itemInfo, maxRNO, formatInfo, mytab); AdjustWidth(itemInfo, maxRNO, formatInfo, mytab);
bool adjustAgain = ((itemInfo.MyTab != null && itemInfo.MyTab.Position == 0)||itemInfo.MyPrevious.FormatStepData.TabData.IsTransition) ? true : false; bool adjustAgain = ((itemInfo.MyTab != null && itemInfo.MyTab.Position == 0) || (itemInfo.MyPrevious != null && itemInfo.MyPrevious.FormatStepData != null && itemInfo.MyPrevious.FormatStepData.TabData.IsTransition)) ? true : false;
if (!itemInfo.IsSection && itemInfo.FormatStepData.NumberHighLevel && itemInfo.IsRNOPart && (MyTopRNO == null || itemInfo.ItemID == MyTopRNO.MyItemInfo.ItemID)) if (!itemInfo.IsSection && itemInfo.FormatStepData.NumberHighLevel && itemInfo.IsRNOPart && (MyTopRNO == null || itemInfo.ItemID == MyTopRNO.MyItemInfo.ItemID))
{ {
// adjust the x-offset of the RNO to include the tab. // adjust the x-offset of the RNO to include the tab.
@ -1671,7 +1679,7 @@ namespace Volian.Print.Library
} }
// For background formats, HLS's or Caution or any Notes have tab on line and then text // For background formats, HLS's or Caution or any Notes have tab on line and then text
// on line below (with space in between) // on line below (with space in between)
if (IsBackgroundStep() && itemInfo.MyTab.AltPrintTab.Trim() != "") if (IsBackgroundStep() && itemInfo.MyTab != null && itemInfo.MyTab.AltPrintTab != null && itemInfo.MyTab.AltPrintTab.Trim() != "")
yoff = YOffset = yoff + (2 * SixLinesPerInch); yoff = YOffset = yoff + (2 * SixLinesPerInch);
float yForCheckoff = yoff; //0; - default checkoff row is same as FIRST line of text float yForCheckoff = yoff; //0; - default checkoff row is same as FIRST line of text