Logic for putting a blank page in the PDF if the procedure prints duplex foldouts
This commit is contained in:
		| @@ -85,6 +85,7 @@ namespace Volian.Print.Library | |||||||
| 	} | 	} | ||||||
| 	public class PromsPrinter | 	public class PromsPrinter | ||||||
| 	{ | 	{ | ||||||
|  | 		private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | ||||||
| 		public event PromsPrinterStatusEvent StatusChanged; | 		public event PromsPrinterStatusEvent StatusChanged; | ||||||
| 		private void OnStatusChanged(object sender, PromsPrintStatusArgs args) | 		private void OnStatusChanged(object sender, PromsPrintStatusArgs args) | ||||||
| 		{ | 		{ | ||||||
| @@ -148,7 +149,13 @@ namespace Volian.Print.Library | |||||||
| 			get { return _OriginalPageBreak; } | 			get { return _OriginalPageBreak; } | ||||||
| 			set { _OriginalPageBreak = value; } | 			set { _OriginalPageBreak = value; } | ||||||
| 		} | 		} | ||||||
| 		public PromsPrinter(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, string backgroundFolder, bool openPDF, bool overWrite, ChangeBarDefinition cbd, String pdfFile) | 		private bool _InsertBlankPages; | ||||||
|  | 		public bool InsertBlankPages | ||||||
|  | 		{ | ||||||
|  | 			get { return _InsertBlankPages; } | ||||||
|  | 			set { _InsertBlankPages = value; } | ||||||
|  | 		} | ||||||
|  | 		public PromsPrinter(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, string backgroundFolder, bool openPDF, bool overWrite, ChangeBarDefinition cbd, String pdfFile, bool insertBlankPages) | ||||||
| 		{ | 		{ | ||||||
| 			_MyItem = myItem; | 			_MyItem = myItem; | ||||||
| 			_Rev = rev; | 			_Rev = rev; | ||||||
| @@ -160,6 +167,7 @@ namespace Volian.Print.Library | |||||||
| 			_MyChangeBarDefinition = cbd; | 			_MyChangeBarDefinition = cbd; | ||||||
| 			_PDFFile = pdfFile; | 			_PDFFile = pdfFile; | ||||||
| 			_OriginalPageBreak = origPgBrk; | 			_OriginalPageBreak = origPgBrk; | ||||||
|  | 			_InsertBlankPages = insertBlankPages; | ||||||
| 		} | 		} | ||||||
| 		public string Print(string pdfFolder) | 		public string Print(string pdfFolder) | ||||||
| 		{ | 		{ | ||||||
| @@ -280,6 +288,11 @@ namespace Volian.Print.Library | |||||||
| 		//private static PdfReader _MyFoldoutReader = null; | 		//private static PdfReader _MyFoldoutReader = null; | ||||||
| 		//private static SectionInfo _MyFoldoutSection = null; | 		//private static SectionInfo _MyFoldoutSection = null; | ||||||
| 		private static List<PdfReader> _MyFoldoutReader = null; | 		private static List<PdfReader> _MyFoldoutReader = null; | ||||||
|  | 		public static List<PdfReader> MyFoldoutReader | ||||||
|  | 		{ | ||||||
|  | 			get { return PromsPrinter._MyFoldoutReader; } | ||||||
|  | 			set { PromsPrinter._MyFoldoutReader = value; } | ||||||
|  | 		} | ||||||
| 		private static List<SectionInfo> _MyFoldoutSection = null; | 		private static List<SectionInfo> _MyFoldoutSection = null; | ||||||
| 		private string Print(ProcedureInfo myProcedure, string pdfFolder) | 		private string Print(ProcedureInfo myProcedure, string pdfFolder) | ||||||
| 		{ | 		{ | ||||||
| @@ -360,6 +373,7 @@ namespace Volian.Print.Library | |||||||
| 			if (cb == null) return null; | 			if (cb == null) return null; | ||||||
| 			OnStatusChanged("Before NewPage", PromsPrinterStatusType.Before); | 			OnStatusChanged("Before NewPage", PromsPrinterStatusType.Before); | ||||||
| 			cb.PdfDocument.NewPage();	// Start of print | 			cb.PdfDocument.NewPage();	// Start of print | ||||||
|  | 			//_MyLog.InfoFormat("NewPage 1 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 			OnStatusChanged("After NewPage", PromsPrinterStatusType.NewPage); | 			OnStatusChanged("After NewPage", PromsPrinterStatusType.NewPage); | ||||||
| 			if (myProcedure.Sections == null) | 			if (myProcedure.Sections == null) | ||||||
| 			{ | 			{ | ||||||
| @@ -461,6 +475,15 @@ namespace Volian.Print.Library | |||||||
| 							ItemInfo firstStep = mySection.Steps[0]; | 							ItemInfo firstStep = mySection.Steps[0]; | ||||||
| 							if (firstStep.FoldoutIndex() > -1) | 							if (firstStep.FoldoutIndex() > -1) | ||||||
| 								DoFoldoutPage(cb, "Beginning of Step Section", _TextLayer, _MyHelper, firstStep.FoldoutIndex()); | 								DoFoldoutPage(cb, "Beginning of Step Section", _TextLayer, _MyHelper, firstStep.FoldoutIndex()); | ||||||
|  | 							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) | ||||||
|  | 								// and the checkbox on the print dialog to add blank pages is checked | ||||||
|  | 								_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); | ||||||
| 					} | 					} | ||||||
| @@ -475,6 +498,7 @@ namespace Volian.Print.Library | |||||||
| 				{ | 				{ | ||||||
| 					PrintTextMessage(cb, "No Proms Output", _TextLayer); | 					PrintTextMessage(cb, "No Proms Output", _TextLayer); | ||||||
| 					cb.PdfDocument.NewPage();		// only have 16bit pages left (for DebugMode) | 					cb.PdfDocument.NewPage();		// only have 16bit pages left (for DebugMode) | ||||||
|  | 					//_MyLog.InfoFormat("NewPage 2 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 					DebugPagination.WriteLine("{0:D6},'{1}'", | 					DebugPagination.WriteLine("{0:D6},'{1}'", | ||||||
| 						_MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, "No PROMS Output"); | 						_MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, "No PROMS Output"); | ||||||
| 				} | 				} | ||||||
| @@ -547,6 +571,15 @@ 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) | ||||||
|  | 							{ | ||||||
|  | 								// 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 | ||||||
|  | 								_MyHelper.OnBlankPage = true; | ||||||
|  | 								cb.PdfDocument.Add(new iTextSharp.text.Table(1)); | ||||||
|  | 								cb.PdfDocument.NewPage(); | ||||||
|  | 								//_MyLog.InfoFormat("NewPage 3 blank {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
|  | 							} | ||||||
| 							float yoff = 0; | 							float yoff = 0; | ||||||
| 							if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin; | 							if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin; | ||||||
| 							AddImportedPageToLayer(cb.PdfWriter.DirectContent, _MSWordLayer, fgPage, (float)(mySection.MyDocStyle.Layout.MSWordXAdj??0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj??0)+yoff); | 							AddImportedPageToLayer(cb.PdfWriter.DirectContent, _MSWordLayer, fgPage, (float)(mySection.MyDocStyle.Layout.MSWordXAdj??0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj??0)+yoff); | ||||||
| @@ -578,6 +611,7 @@ namespace Volian.Print.Library | |||||||
| 					else | 					else | ||||||
| 						_MyHelper.IsLandscape = false; | 						_MyHelper.IsLandscape = false; | ||||||
| 					cb.PdfDocument.NewPage();		// Word Document | 					cb.PdfDocument.NewPage();		// Word Document | ||||||
|  | 					//_MyLog.InfoFormat("NewPage 3 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 					 | 					 | ||||||
| 					// if this document style has another style that is for pages other than first, we need to | 					// if this document style has another style that is for pages other than first, we need to | ||||||
| 					// reset the document style off of this section AND reset docstyle values used. | 					// reset the document style off of this section AND reset docstyle values used. | ||||||
| @@ -591,6 +625,7 @@ namespace Volian.Print.Library | |||||||
| 			catch (Exception ex) | 			catch (Exception ex) | ||||||
| 			{ | 			{ | ||||||
| 				cb.PdfDocument.NewPage();   // can we put out 'error on page'? | 				cb.PdfDocument.NewPage();   // can we put out 'error on page'? | ||||||
|  | 				_MyLog.InfoFormat("NewPage error on page {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		private void GenerateTOC(SectionInfo tocSection, ProcedureInfo myProcedure, PdfContentByte cb, PdfLayer textLayer) | 		private void GenerateTOC(SectionInfo tocSection, ProcedureInfo myProcedure, PdfContentByte cb, PdfLayer textLayer) | ||||||
| @@ -606,6 +641,7 @@ namespace Volian.Print.Library | |||||||
| 			AddSectionToTOC(tocSection, procItem, tOfC, cb, yTopMargin, 0); | 			AddSectionToTOC(tocSection, procItem, tOfC, cb, yTopMargin, 0); | ||||||
| 			if (textLayer != null) cb.EndLayer(); | 			if (textLayer != null) cb.EndLayer(); | ||||||
| 			cb.PdfDocument.NewPage(); | 			cb.PdfDocument.NewPage(); | ||||||
|  | 			//_MyLog.InfoFormat("NewPage 4 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 			_NoBreakYOffset = 0; | 			_NoBreakYOffset = 0; | ||||||
| 		} | 		} | ||||||
| 		float lastyLocation = 0; | 		float lastyLocation = 0; | ||||||
| @@ -677,6 +713,7 @@ namespace Volian.Print.Library | |||||||
| 						if (retval == 0)		// do a newpage, it couldn't fit on current page. | 						if (retval == 0)		// do a newpage, it couldn't fit on current page. | ||||||
| 						{ | 						{ | ||||||
| 							cb.PdfDocument.NewPage(); | 							cb.PdfDocument.NewPage(); | ||||||
|  | 							//_MyLog.InfoFormat("NewPage 5 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 							yLocation = 0; | 							yLocation = 0; | ||||||
| 							retval = Rtf2Pdf.TextAt(cb, myparagraphn, leftMargin + secNumPos + indentOffset, yPageStart - yLocation, width * 1.3F, height, "", yBottomMargin); | 							retval = Rtf2Pdf.TextAt(cb, myparagraphn, leftMargin + secNumPos + indentOffset, yPageStart - yLocation, width * 1.3F, height, "", yBottomMargin); | ||||||
| 						} | 						} | ||||||
| @@ -810,6 +847,7 @@ namespace Volian.Print.Library | |||||||
| 			if (sp == SectionConfig.SectionPagination.Separate) | 			if (sp == SectionConfig.SectionPagination.Separate) | ||||||
| 			{ | 			{ | ||||||
| 				cb.PdfDocument.NewPage();		// end of step section | 				cb.PdfDocument.NewPage();		// end of step section | ||||||
|  | 				//_MyLog.InfoFormat("NewPage 6 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 				_NoBreakYOffset = 0; | 				_NoBreakYOffset = 0; | ||||||
| 				yPageStart = yTopMargin; | 				yPageStart = yTopMargin; | ||||||
| 			} | 			} | ||||||
| @@ -836,6 +874,7 @@ namespace Volian.Print.Library | |||||||
| 			cb.Circle(400, 100, 50); | 			cb.Circle(400, 100, 50); | ||||||
| 			PrintTextMessage(cb, "Foldout for: " + str, textLayer); | 			PrintTextMessage(cb, "Foldout for: " + str, textLayer); | ||||||
| 			cb.PdfDocument.NewPage();		// Temporary for foldout/16bit-32bit page alignment | 			cb.PdfDocument.NewPage();		// Temporary for foldout/16bit-32bit page alignment | ||||||
|  | 			//_MyLog.InfoFormat("NewPage 7 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 		} | 		} | ||||||
| 		public static void DoFoldoutPage(PdfContentByte cb, string str, PdfLayer textLayer, VlnSvgPageHelper myPageHelper, int foldoutindx) | 		public static void DoFoldoutPage(PdfContentByte cb, string str, PdfLayer textLayer, VlnSvgPageHelper myPageHelper, int foldoutindx) | ||||||
| 		{ | 		{ | ||||||
| @@ -848,7 +887,7 @@ namespace Volian.Print.Library | |||||||
| 				bool doimport2 = true; | 				bool doimport2 = true; | ||||||
| 				PdfImportedPage fgPage = null; | 				PdfImportedPage fgPage = null; | ||||||
| 				try | 				try | ||||||
| 				{ | 				{ // read saved foldout page | ||||||
| 					fgPage = cb.PdfWriter.GetImportedPage(_MyFoldoutReader[foldoutindx],1); | 					fgPage = cb.PdfWriter.GetImportedPage(_MyFoldoutReader[foldoutindx],1); | ||||||
| 				} | 				} | ||||||
| 				catch (Exception ex) | 				catch (Exception ex) | ||||||
| @@ -857,14 +896,16 @@ namespace Volian.Print.Library | |||||||
| 					doimport2 = false; | 					doimport2 = false; | ||||||
| 				} | 				} | ||||||
| 				if (doimport2) | 				if (doimport2) | ||||||
| 				{ | 				{// put the saved foldout page into the PDF | ||||||
| 					AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, fgPage, 0, 0); | 					AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, fgPage, 0, 0); | ||||||
| 					DebugPagination.WriteLine("{0:D6},'{1}',{2}", | 					DebugPagination.WriteLine("{0:D6},'{1}',{2}", | ||||||
| 					myPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, "Foldout", 1); | 					myPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, "Foldout", 1); | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  | 			//_MyLog.InfoFormat("DoFoldoutPage {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 			//PrintTextMessage(cb, "Foldout for: " + str, textLayer); | 			//PrintTextMessage(cb, "Foldout for: " + str, textLayer); | ||||||
| 			cb.PdfDocument.NewPage();		// Temporary for foldout/16bit-32bit page alignment | 			cb.PdfDocument.NewPage();		// Temporary for foldout/16bit-32bit page alignment | ||||||
|  | 			//_MyLog.InfoFormat("NewPage 8 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 			myPageHelper.MySection = saveSect; | 			myPageHelper.MySection = saveSect; | ||||||
| 			myPageHelper.OnFoldoutPage = false; | 			myPageHelper.OnFoldoutPage = false; | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -92,9 +92,25 @@ namespace Volian.Print.Library | |||||||
| 			AddBookmarks(writer); | 			AddBookmarks(writer); | ||||||
| 			MyPageCounts.DrawTemplates(); | 			MyPageCounts.DrawTemplates(); | ||||||
| 		} | 		} | ||||||
|  | 		private bool _OnBlankPage = false; | ||||||
|  | 		public bool OnBlankPage // used while inserting a blank page when printing a procedure with duplex foldouts | ||||||
|  | 		{ | ||||||
|  | 			get { return _OnBlankPage; } | ||||||
|  | 			set { _OnBlankPage = value; } | ||||||
|  | 		} | ||||||
|  | 		private bool _AddBlankPagesForDuplexPrinting = false; | ||||||
|  | 		public bool AddBlankPagesForDuplexPrinting // Tells us if a the option to add a blank page is turn on (for procedures with duplex foldouts) | ||||||
|  | 		{ | ||||||
|  | 			get { return _AddBlankPagesForDuplexPrinting; } | ||||||
|  | 			set { _AddBlankPagesForDuplexPrinting = value; } | ||||||
|  | 		} | ||||||
| 		public override void OnEndPage(PdfWriter writer, iTextSharp.text.Document document) | 		public override void OnEndPage(PdfWriter writer, iTextSharp.text.Document document) | ||||||
| 		{ | 		{ | ||||||
| 			if (!OnFoldoutPage) | 			if (OnBlankPage) | ||||||
|  | 			{ | ||||||
|  | 				OnBlankPage = false; | ||||||
|  | 			} | ||||||
|  | 			else if (!OnFoldoutPage) | ||||||
| 			{ | 			{ | ||||||
| 				if (DidFirstPageDocStyle) ResetDocStyleAndValues(); | 				if (DidFirstPageDocStyle) ResetDocStyleAndValues(); | ||||||
| 				AddBookmarks(writer); | 				AddBookmarks(writer); | ||||||
|   | |||||||
| @@ -654,6 +654,7 @@ namespace Volian.Print.Library | |||||||
| 				string tmpstr = null; | 				string tmpstr = null; | ||||||
| 				SectionInfo si = SectionInfo.Get(MyItemInfo.ItemID); | 				SectionInfo si = SectionInfo.Get(MyItemInfo.ItemID); | ||||||
| 				cb.PdfDocument.NewPage(); | 				cb.PdfDocument.NewPage(); | ||||||
|  | 				//_MyLog.InfoFormat("NewPage 9 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 				MyPageHelper.MyPromsPrinter.CreateWordDocPdf(cb, si, ref tmp, ref tmpstr); | 				MyPageHelper.MyPromsPrinter.CreateWordDocPdf(cb, si, ref tmp, ref tmpstr); | ||||||
| 				Processed = true; | 				Processed = true; | ||||||
| 				return yPageStart; | 				return yPageStart; | ||||||
| @@ -678,6 +679,7 @@ namespace Volian.Print.Library | |||||||
| 				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(); | ||||||
|  | 					//_MyLog.InfoFormat("NewPage 10 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 					if (MyItemInfo.IsSection || (MyItemInfo.IsHigh && MyItemInfo.MyPrevious != null))	//do not reset for 1st step | 					if (MyItemInfo.IsSection || (MyItemInfo.IsHigh && MyItemInfo.MyPrevious != null))	//do not reset for 1st step | ||||||
| 					ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); | 					ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); | ||||||
| 					DebugText.WriteLine("Paginate1"); | 					DebugText.WriteLine("Paginate1"); | ||||||
| @@ -689,6 +691,15 @@ namespace Volian.Print.Library | |||||||
| 					// Only do foldout page if not done for section break, i.e. check the there's a previous step. | 					// Only do foldout page if not done for section break, i.e. check the there's a previous step. | ||||||
| 					if (MyItemInfo.MyPrevious != null && MyItemInfo.FoldoutIndex() > -1) | 					if (MyItemInfo.MyPrevious != null && MyItemInfo.FoldoutIndex() > -1) | ||||||
| 						PromsPrinter.DoFoldoutPage(cb, "HLS", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.FoldoutIndex()); | 						PromsPrinter.DoFoldoutPage(cb, "HLS", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.FoldoutIndex()); | ||||||
|  | 					else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) | ||||||
|  | 					{ | ||||||
|  | 						// 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 | ||||||
|  | 						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); | ||||||
|  |  | ||||||
| @@ -737,10 +748,18 @@ namespace Volian.Print.Library | |||||||
| 						MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, docstyle.Continue.Bottom.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); | 						MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, docstyle.Continue.Bottom.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); | ||||||
| 					} | 					} | ||||||
| 					cb.PdfDocument.NewPage(); | 					cb.PdfDocument.NewPage(); | ||||||
|  | 					//_MyLog.InfoFormat("NewPage 11 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 					ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); | 					ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); | ||||||
| 					DebugText.WriteLine("Paginate2"); | 					DebugText.WriteLine("Paginate2"); | ||||||
| 					if (MyItemInfo.MyHLS.FoldoutIndex() > -1) | 					if (MyItemInfo.MyHLS.FoldoutIndex() > -1) | ||||||
| 						PromsPrinter.DoFoldoutPage(cb, "Break within Step", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.MyHLS.FoldoutIndex());	// temporary foldout | 						PromsPrinter.DoFoldoutPage(cb, "Break within Step", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.MyHLS.FoldoutIndex());	// temporary foldout | ||||||
|  | 					else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) | ||||||
|  | 					{ | ||||||
|  | 						MyPageHelper.OnBlankPage = true; | ||||||
|  | 						cb.PdfDocument.Add(new iTextSharp.text.Table(1)); | ||||||
|  | 						cb.PdfDocument.NewPage(); | ||||||
|  | 						_MyLog.InfoFormat("NewPage Break within step blank {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
|  | 					} | ||||||
| 					 | 					 | ||||||
| 					// if there is a 'container vlnbox' around the HLS, flag that the drawn box must also break: | 					// if there is a 'container vlnbox' around the HLS, flag that the drawn box must also break: | ||||||
| 					if (MyHighLevelParagraph != null && MyHighLevelParagraph.PartsContainer != null && MyHighLevelParagraph.PartsContainer.Count > 0) | 					if (MyHighLevelParagraph != null && MyHighLevelParagraph.PartsContainer != null && MyHighLevelParagraph.PartsContainer.Count > 0) | ||||||
| @@ -793,6 +812,7 @@ namespace Volian.Print.Library | |||||||
| 					{ | 					{ | ||||||
| 						OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); | 						OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); | ||||||
| 						cb.PdfDocument.NewPage();	// HLS (7 lpi) breakif (MyItemInfo.IsSection) | 						cb.PdfDocument.NewPage();	// HLS (7 lpi) breakif (MyItemInfo.IsSection) | ||||||
|  | 						//_MyLog.InfoFormat("NewPage 12 {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
| 						ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); | 						ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); | ||||||
| 						DebugText.WriteLine("Paginate3"); | 						DebugText.WriteLine("Paginate3"); | ||||||
| 						if (MyItemInfo.IsSection) | 						if (MyItemInfo.IsSection) | ||||||
| @@ -802,6 +822,15 @@ namespace Volian.Print.Library | |||||||
| 						} | 						} | ||||||
| 						if (MyItemInfo.FoldoutIndex() > -1) | 						if (MyItemInfo.FoldoutIndex() > -1) | ||||||
| 							PromsPrinter.DoFoldoutPage(cb, "HLS (7 lpi) break", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.FoldoutIndex()); | 							PromsPrinter.DoFoldoutPage(cb, "HLS (7 lpi) break", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.FoldoutIndex()); | ||||||
|  | 						else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) | ||||||
|  | 						{ | ||||||
|  | 							// 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 | ||||||
|  | 							MyPageHelper.OnBlankPage = true; | ||||||
|  | 							cb.PdfDocument.Add(new iTextSharp.text.Table(1)); | ||||||
|  | 							cb.PdfDocument.NewPage(); | ||||||
|  | 							//_MyLog.InfoFormat("NewPage 12 lpi blank {0}", cb.PdfWriter.CurrentPageNumber); | ||||||
|  | 						} | ||||||
|  |  | ||||||
| 						// If "ContinueSectionHeader" (format flag) is true then print the section title with "(Continued)" appended to it | 						// 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) | 						if (!MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user