Added handler for !atom pagelist token

Added code to deal with draftpage, samplepage, masterpage and referencepage tokens
Added code to limit allowed watermarks
This commit is contained in:
John Jenko 2011-09-28 17:53:13 +00:00
parent 9ec1177447
commit 544d408616
2 changed files with 40 additions and 1 deletions

View File

@ -540,6 +540,19 @@ namespace Volian.Print.Library
//token = Regex.Replace(token, @"[\xB3-\xDF]", " "); //token = Regex.Replace(token, @"[\xB3-\xDF]", " ");
switch (match.Value) switch (match.Value)
{ {
case "{!atom}":
// Add an Atom Figure to the SVG
AddImage(svgGroup,160.5f, 170.5f,288f, 323f,"atom.bmp");
break;
case "{!cpllogo}":
AddImage(svgGroup, 10f, 10f, 78.7f, 29.8f, "cpllogo.bmp");
break;
case "{!domlogo}":
AddImage(svgGroup, 10f, 70f, 123f, 40.1f, "domlogo.bmp");
break;
case "{!gpclogo}":
AddImage(svgGroup, 10f, 150f, 35.2f, 35.8f, "gpclogo.bmp");
break;
case "{HEADER1}": case "{HEADER1}":
case "{HEADER2}": case "{HEADER2}":
case "{HEADER3}": case "{HEADER3}":
@ -568,10 +581,19 @@ namespace Volian.Print.Library
svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(box))); svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(box)));
break; break;
case "{DRAFTPAGE}": case "{DRAFTPAGE}":
if (!AllowedWatermarks.Contains("Draft")) AllowedWatermarks.Add("Draft");
break;
case "{REFERENCEPAGE}": case "{REFERENCEPAGE}":
if (!AllowedWatermarks.Contains("Reference")) AllowedWatermarks.Add("Reference");
break;
case "{MASTERPAGE}": case "{MASTERPAGE}":
if (!AllowedWatermarks.Contains("Master")) AllowedWatermarks.Add("Master");
break;
case "{SAMPLEPAGE}": case "{SAMPLEPAGE}":
//mySvg.SetValidWaterMark(token, _Watermark); // Need logic to limit watermark to tokens. if (!AllowedWatermarks.Contains("Sample")) AllowedWatermarks.Add("Sample");
break;
case "{INFORMATIONPAGE}":
if (!AllowedWatermarks.Contains("Information Only")) AllowedWatermarks.Add("Information Only");
break; break;
case "{PROCTITLE}": case "{PROCTITLE}":
case "{PROCTITLE1}": case "{PROCTITLE1}":
@ -661,6 +683,12 @@ namespace Volian.Print.Library
} }
mySvg.Add(svgGroup); mySvg.Add(svgGroup);
} }
private static void AddImage(SvgGroup svgGroup, float x, float y, float w, float h, string figure)
{
svgGroup.Add(new SvgImage(new System.Drawing.PointF(x, y), new System.Drawing.SizeF(w, h),
System.Windows.Forms.Application.StartupPath + @"\Resources\" + figure));
}
private void SplitTitle(SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, string title, int? len, string match) private void SplitTitle(SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, string title, int? len, string match)
{ {
if (match == "{PROCTITLE2}") return; if (match == "{PROCTITLE2}") return;

View File

@ -430,6 +430,10 @@ namespace Volian.Svg.Library
if (Width.Value != 0) if (Width.Value != 0)
img.ScaleAbsoluteWidth(scale.M(Width)); img.ScaleAbsoluteWidth(scale.M(Width));
img.SetAbsolutePosition(scale.X(X), scale.Y(cb, Y) - scale.M(img.ScaledHeight)); img.SetAbsolutePosition(scale.X(X), scale.Y(cb, Y) - scale.M(img.ScaledHeight));
// The next three lines set the image opacity for testing
//PdfGState gState = new PdfGState();
//gState.FillOpacity = .2f;
//cb.SetGState(gState);
cb.AddImage(img); cb.AddImage(img);
cb.RestoreState(); cb.RestoreState();
} }
@ -790,6 +794,12 @@ namespace Volian.Svg.Library
} }
public class SvgPageHelper : PdfPageEventHelper public class SvgPageHelper : PdfPageEventHelper
{ {
private List<string> _AllowedWatermarks = new List<string>();
public List<string> AllowedWatermarks
{
get { return _AllowedWatermarks; }
set { _AllowedWatermarks = value; }
}
private Svg _MySvg; private Svg _MySvg;
public Svg MySvg public Svg MySvg
{ {
@ -947,6 +957,7 @@ namespace Volian.Svg.Library
private void DrawWatermark(PdfContentByte cb) private void DrawWatermark(PdfContentByte cb)
{ {
if (Watermark.ToLower().Contains("none") || Watermark == "") return; if (Watermark.ToLower().Contains("none") || Watermark == "") return;
if (!AllowedWatermarks.Contains(Watermark)) return;
cb.SaveState(); cb.SaveState();
if (_WatermarkLayer != null) cb.BeginLayer(_WatermarkLayer); if (_WatermarkLayer != null) cb.BeginLayer(_WatermarkLayer);
SvgWatermark myWatermark = new SvgWatermark(cb, Watermark, System.Drawing.Color.Blue, .15F); SvgWatermark myWatermark = new SvgWatermark(cb, Watermark, System.Drawing.Color.Blue, .15F);