44 lines
1.6 KiB
C#
44 lines
1.6 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 vlnHeader: vlnText
|
|
{
|
|
private string _OrigStr;
|
|
public float HeaderWidth
|
|
{
|
|
get { return _WidthAdjust + (MyFont.CharsToTwips * Text.Length); }
|
|
}
|
|
public vlnHeader(vlnParagraph myParent, PdfContentByte cb, string origStr, string cleanStr, float xoffset, float yoffset, VE_Font vFont)
|
|
{
|
|
MyParent = myParent;
|
|
MyContentByte = cb;
|
|
YOffset = yoffset;
|
|
Width = MyParent.Width;
|
|
Text = cleanStr;
|
|
_OrigStr = (origStr.StartsWith(" ") && !origStr.Contains(@"\"))?origStr:null;
|
|
Rtf = GetRtf(origStr, vFont);
|
|
XOffset = xoffset;
|
|
MyFont = vFont;
|
|
}
|
|
public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin)
|
|
{
|
|
string fontFace = MyFont.WindowsFont.Name;
|
|
int fontStyle = (MyFont.WindowsFont.Bold ? iTextSharp.text.Font.BOLD : 0) + (MyFont.WindowsFont.Italic ? iTextSharp.text.Font.ITALIC : 0);
|
|
iTextSharp.text.Font itextFont = Volian.Svg.Library.Svg.GetFont(fontFace, MyFont.WindowsFont.Size, fontStyle, System.Drawing.Color.Black);
|
|
float hdrwidth = itextFont.BaseFont.GetWidthPoint(Text, MyFont.WindowsFont.Size);
|
|
if (_OrigStr != null) hdrwidth = itextFont.BaseFont.GetWidthPoint(_OrigStr, MyFont.WindowsFont.Size);
|
|
hdrwidth += 5;
|
|
float yLocation = CalculateYOffset(yPageStart, yTopMargin);
|
|
Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, hdrwidth, 100, "", yBottomMargin);
|
|
return yPageStart;
|
|
}
|
|
}
|
|
}
|