57 lines
2.3 KiB
C#
57 lines
2.3 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 vlnMacro : vlnPrintObject
|
|
{
|
|
private bool _UseInternalY = false;
|
|
// B2020-121: Account for Header on Caution or Note
|
|
public bool UseInternalY { get => _UseInternalY; set => _UseInternalY = value; }
|
|
private string _MacroDef;
|
|
public string MacroDef
|
|
{
|
|
get { return _MacroDef; }
|
|
set { _MacroDef = value; }
|
|
}
|
|
public vlnMacro(float xoffset, float yoffset, string macroDef)
|
|
{
|
|
YOffset = yoffset;
|
|
XOffset = xoffset;
|
|
MacroDef = macroDef;
|
|
}
|
|
public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin)
|
|
{
|
|
cb.SaveState();
|
|
MyContentByte = cb;
|
|
float yLocation = CalculateYOffset(yPageStart, yTopMargin);
|
|
if (UseInternalY) yLocation = YOffset; // B2020-121: Account for Header on Caution or Note
|
|
// Adjust the starting point for the Macro if the LPI is 7
|
|
if (MyPageHelper.YMultiplier != 1) yLocation += SixLinesPerInch - _SevenLinesPerInch;
|
|
VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper;
|
|
PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer;
|
|
if (textLayer != null) cb.BeginLayer(textLayer);
|
|
MyContentByte = cb;
|
|
System.Drawing.Color push = PrintOverride.SvgColor;
|
|
PrintOverride.SvgColor = PrintOverride.TextColor == System.Drawing.Color.Empty ? System.Drawing.Color.Black : PrintOverride.TextColor;
|
|
if (MyPageHelper != null && MyPageHelper.MySvg != null && MacroDef != null)
|
|
{
|
|
// C2018-004 create meta file for baseline compares
|
|
Volian.Base.Library.BaselineMetaFile.WriteLine("MC X={0} Y={1} {2}", XOffset - MyPageHelper.MySvg.LeftMargin, yLocation + MyPageHelper.TableAdjustment, MacroDef);
|
|
// PageList items are located with respect to the left margin, macros are not.
|
|
// B2019-094 - needed to account for TableAdjustment - checkoff in South Texas FSG20 Addendum 5 step 5
|
|
MyPageHelper.MySvg.DrawMacro(MacroDef, XOffset - MyPageHelper.MySvg.LeftMargin, yLocation + MyPageHelper.TableAdjustment, cb);
|
|
}
|
|
PrintOverride.SvgColor = push;
|
|
if (textLayer != null) cb.EndLayer();
|
|
cb.RestoreState();
|
|
return yPageStart;
|
|
}
|
|
}
|
|
}
|