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;
|
|
}
|
|
}
|
|
}
|