84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.Drawing;
 | 
						|
using iTextSharp.text.pdf;
 | 
						|
using iTextSharp.text;
 | 
						|
using VEPROMS.CSLA.Library;
 | 
						|
 | 
						|
namespace Volian.Print.Library
 | 
						|
{
 | 
						|
	public partial class vlnRNOSeparator : vlnPrintObject
 | 
						|
	{
 | 
						|
		private VE_Font _MyFont;
 | 
						|
		public VE_Font MyFont
 | 
						|
		{
 | 
						|
			get { return _MyFont; }
 | 
						|
			set { _MyFont = value; }
 | 
						|
		}
 | 
						|
		private bool _ExtendChangeBar;
 | 
						|
		public bool ExtendChangeBar
 | 
						|
		{
 | 
						|
			get { return _ExtendChangeBar; }
 | 
						|
			set { _ExtendChangeBar = value; }
 | 
						|
		}
 | 
						|
		private float _XLength = 0;
 | 
						|
		public float XLength
 | 
						|
		{
 | 
						|
			get { return _XLength; }
 | 
						|
			set { _XLength = value; }
 | 
						|
		}
 | 
						|
 | 
						|
		/* if flag set and separator defined then output separator */
 | 
						|
		/*if separator is a control-A use RNOSepLine*/
 | 
						|
		public vlnRNOSeparator(vlnParagraph parent, PdfContentByte cb, string sepStr, float xoffset, float yoffset, FormatInfo formatInfo, bool extendChangeBar)
 | 
						|
		{
 | 
						|
			MyContentByte = cb;			// B2019-091: crash when printing  (note moved from the 'ToPdf' method)
 | 
						|
			ExtendChangeBar = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeBarToRNOSep ? extendChangeBar : false;
 | 
						|
			YOffset = yoffset;
 | 
						|
			XOffset = xoffset;
 | 
						|
			XLength = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.RNOSepLineLength??0;
 | 
						|
			_MyParent = parent;
 | 
						|
			MyFont = formatInfo.PlantFormat.FormatData.Font;
 | 
						|
			if (XLength == 0)
 | 
						|
			{
 | 
						|
				if (sepStr != null)
 | 
						|
					Rtf = GetRtf(sepStr, formatInfo.PlantFormat.FormatData.Font);
 | 
						|
				else
 | 
						|
					Rtf = "--------------------------";   //TODO - What should this be: is this Ctrl-A?
 | 
						|
				Width = sepStr.Length * MyFont.CharsToTwips + _WidthAdjust;
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				Width = XLength;
 | 
						|
				Height = SixLinesPerInch;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin)
 | 
						|
		{
 | 
						|
			float yLocation = CalculateYOffset(yPageStart, yTopMargin);
 | 
						|
			if (XLength != 0)
 | 
						|
			{
 | 
						|
				cb.SaveState();
 | 
						|
				VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper;
 | 
						|
				PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer;
 | 
						|
				if (textLayer != null) cb.BeginLayer(textLayer);
 | 
						|
				iTextSharp.text.Color lineColor = new iTextSharp.text.Color(PrintOverride.OverrideChangeBarColor(System.Drawing.Color.Black));
 | 
						|
				cb.SetColorStroke(lineColor);
 | 
						|
				cb.SetLineWidth(.5F);
 | 
						|
				// C2018-004 create meta file for baseline compares
 | 
						|
				Volian.Base.Library.BaselineMetaFile.WriteLine("RNOSepLn X1={0} Y1={1} X2={2} Y2={3}", XOffset, yLocation - 7, XOffset + XLength, yLocation - 7);
 | 
						|
				cb.MoveTo(XOffset/* + xAdj */, yLocation - 7);
 | 
						|
				cb.LineTo(XOffset + XLength, yLocation-7);
 | 
						|
				cb.Stroke();
 | 
						|
				if (textLayer != null) cb.EndLayer();
 | 
						|
				cb.RestoreState();
 | 
						|
			}
 | 
						|
			else
 | 
						|
				Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, "", yBottomMargin);
 | 
						|
			MyPageHelper.BottomContent = yLocation-SixLinesPerInch;
 | 
						|
			return yPageStart;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |