VGOutput interface which supports C1PDF and System.Drawing.Graphics
This commit is contained in:
parent
f8b0964258
commit
771df71108
85
PROMS/VG/IVGOutput.cs
Normal file
85
PROMS/VG/IVGOutput.cs
Normal 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
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user