This commit is contained in:
@@ -18,12 +18,67 @@ namespace Volian.Print.Library
|
||||
get { return _Color; }
|
||||
set { _Color = value; }
|
||||
}
|
||||
public vlnBox(vlnParagraph paragraph/*, FormatBox box*/)
|
||||
private Box _MyBox;
|
||||
|
||||
public Box MyBox
|
||||
{
|
||||
get { return _MyBox; }
|
||||
set { _MyBox = value; }
|
||||
}
|
||||
public vlnBox()
|
||||
{
|
||||
}
|
||||
public vlnBox(vlnParagraph paragraph)
|
||||
{
|
||||
}
|
||||
const string BoxThin = "\x2510.\x2500.\x250c.\x2502. . .\x2518.\x2514. .\x2500. . ";
|
||||
const string BoxThick = "\x2584.\x2584.\x2584.\x2588. . .\x2580.\x2580. .\x2580. . ";
|
||||
public override float ToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin)
|
||||
{
|
||||
cb.SaveState();
|
||||
VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper;
|
||||
PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer;
|
||||
if (textLayer != null) cb.BeginLayer(textLayer);
|
||||
MyContentByte = cb;
|
||||
Console.WriteLine("'{0}','{1}'", CharToAsc(MyBox.BoxStyle), MyParent.MyItemInfo.ShortPath);
|
||||
float top = CalculateYOffset(yPageStart, yTopMargin) - (7*MyPageHelper.YMultiplier);
|
||||
float bottom = top - (Height * MyPageHelper.YMultiplier);
|
||||
float leftmargin = (float)MyParent.MyItemInfo.MyDocStyle.Layout.LeftMargin + 3;
|
||||
float left = leftmargin + (float)(MyBox.Start ?? 0);
|
||||
float right = leftmargin + (float)MyBox.End;
|
||||
iTextSharp.text.Color boxColor = new iTextSharp.text.Color(PrintOverride.OverrideBoxColor(System.Drawing.Color.Black));
|
||||
cb.SetColorStroke(boxColor);
|
||||
switch (MyBox.BoxStyle)
|
||||
{
|
||||
case BoxThin:
|
||||
cb.SetLineWidth(.6F);
|
||||
cb.Rectangle(left, bottom, right - left, Height*MyPageHelper.YMultiplier);
|
||||
break;
|
||||
case BoxThick:
|
||||
float lineThickness = 6;
|
||||
cb.SetLineWidth(lineThickness);
|
||||
cb.Rectangle(left, bottom + (lineThickness/2), right - left, (Height - lineThickness)*MyPageHelper.YMultiplier);
|
||||
break;
|
||||
default:
|
||||
// For other than OHLP/HLP. For those not matching the HLP Boxes
|
||||
throw new Exception("Missing vlnBox handler");
|
||||
break;
|
||||
}
|
||||
cb.Stroke();
|
||||
if (textLayer != null) cb.EndLayer();
|
||||
cb.RestoreState();
|
||||
return yPageStart;
|
||||
}
|
||||
|
||||
private string CharToAsc(string p)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
foreach (char c in p)
|
||||
{
|
||||
if (c >= ' ' && c < 127) sb.Append(c);
|
||||
else sb.Append(string.Format("\\x{0:x}", (int)c));
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user