VGOutput interface which supports C1PDF and System.Drawing.Graphics

This commit is contained in:
Rich 2010-02-02 20:56:17 +00:00
parent f8b0964258
commit 771df71108

85
PROMS/VG/IVGOutput.cs Normal file
View File

@ -0,0 +1,85 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using C1.C1Pdf;
namespace VG
{
public interface IVGOutput
{
float Scale { get;}
void DrawLine(Pen pn, float startx, float starty, float endx, float endy);
void DrawRectangle(Pen pn, RectangleF rectf);
void DrawEllipse(Pen pn, float cx, float cy, float dx, float dy);
void DrawImage(Bitmap bm, RectangleF rectf);
void DrawString(string text, Font myFont, Brush brush, RectangleF rectf);
void DrawArc(Pen pn, RectangleF rectf, float startAngle, float sweepAngle);
SizeF MeasureString(string text, Font myFont);
void Save(string fileName);
float FontSizeAdjust { get;}
}
public partial class VGOut_C1PDF : IVGOutput
{
private C1PdfDocument _VGOutput;
//public C1PdfDocument VGOutput
//{ get { return _VGOutput; } }
public static VGOut_C1PDF Create()
{
C1PdfDocument pdf = new C1.C1Pdf.C1PdfDocument();
pdf.FontType = C1.C1Pdf.FontTypeEnum.Embedded; // embed fonts
return new VGOut_C1PDF(pdf);
}
public VGOut_C1PDF(C1PdfDocument vgOutput)
{ _VGOutput = vgOutput; }
public float Scale
// { get { return _VGOutput.Transform.Elements[0]; } }
{ get { return 1; } }
public void DrawLine(Pen pn, float startx, float starty, float endx, float endy)
{ _VGOutput.DrawLine(pn, startx, starty, endx, endy); }
public void DrawRectangle(Pen pn, RectangleF rectf)
{ _VGOutput.DrawRectangle(pn, rectf.X, rectf.Y, rectf.Width, rectf.Height); }
public void DrawEllipse(Pen pn, float cx, float cy, float dx, float dy)
{ _VGOutput.DrawEllipse(pn, cx, cy, dx, dy); }
public void DrawImage(Bitmap bm, RectangleF rectf)
{ _VGOutput.DrawImage(bm, rectf, ContentAlignment.MiddleCenter, ImageSizeModeEnum.Scale); }
public void DrawString(string text, Font myFont, Brush brush, RectangleF rectf)
{ _VGOutput.DrawString(text, myFont, brush, rectf, StringFormat.GenericTypographic); }
public void DrawArc(Pen pn, RectangleF rectf, float startAngle, float sweepAngle)
{ _VGOutput.DrawArc(pn, rectf, startAngle, sweepAngle); }
public SizeF MeasureString(string text, Font myFont)
{ return _VGOutput.MeasureString(text, myFont, 500); } //, StringFormat.GenericTypographic
public void Save(string fileName)
{ _VGOutput.Save(fileName); }
public float FontSizeAdjust
{ get { return .95F; } }
}
public partial class VGOut_Graphics: IVGOutput
{
private Graphics _VGOutput;
//public Graphics VGOutput
//{ get { return _VGOutput; } }
public VGOut_Graphics(Graphics vgOutput)
{ _VGOutput = vgOutput; }
public float Scale
{ get { return _VGOutput.Transform.Elements[0]; } }
public void DrawLine(Pen pn, float startx, float starty, float endx, float endy)
{ _VGOutput.DrawLine(pn, startx, starty, endx, endy); }
public void DrawRectangle(Pen pn, RectangleF rectf)
{ _VGOutput.DrawRectangle(pn, rectf.X, rectf.Y, rectf.Width, rectf.Height); }
public void DrawEllipse(Pen pn, float cx, float cy, float dx, float dy)
{ _VGOutput.DrawEllipse(pn, cx, cy, dx, dy); }
public void DrawImage(Bitmap bm, RectangleF rectf)
{ _VGOutput.DrawImage(bm, rectf); }
public void DrawString(string text, Font myFont, Brush brush, RectangleF rectf)
{ _VGOutput.DrawString(text, myFont, brush, rectf, StringFormat.GenericTypographic); }
public void DrawArc(Pen pn, RectangleF rectf, float startAngle, float sweepAngle)
{ _VGOutput.DrawArc(pn, rectf, startAngle, sweepAngle); }
public SizeF MeasureString(string text, Font myFont)
{ return _VGOutput.MeasureString(text, myFont, new PointF(0, 0), StringFormat.GenericTypographic); }
public void Save(string fileName)
{ ;/* Don't do anything*/ }
public float FontSizeAdjust
{ get { return .71f * 96f / _VGOutput.DpiX; } } // Changed to adjust for Screen DPI Setting
}
}