using System; using System.Drawing; using System.Drawing.Drawing2D; namespace GoldPrinter { public class Sewing : IDisposable { private SewingDirectionFlag _sewingDirection; private int _margin; private int _lineLength; public SewingDirectionFlag SewingDirection { get { return this._sewingDirection; } set { this._sewingDirection = value; } } public int Margin { get { return this._margin; } set { this._margin = value; } } public int LineLen { get { return this._lineLength; } set { this._lineLength = value; } } public Sewing() { this._margin = 0; this._sewingDirection = SewingDirectionFlag.Left; this._lineLength = 0; } public Sewing(int margin) : this(margin, SewingDirectionFlag.Left, 0) { } public Sewing(int margin, int lineLength) : this(margin, SewingDirectionFlag.Left, lineLength) { } public Sewing(int margin, SewingDirectionFlag sewingDirection) : this(margin, sewingDirection, 0) { } public Sewing(int margin, SewingDirectionFlag sewingDirection, int lineLength) { this._margin = margin; this._sewingDirection = sewingDirection; this._lineLength = lineLength; } public virtual void Dispose() { } public void Draw(Graphics g) { Font font = new Font("宋体", 8f); string s = "装 订 线"; StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; int margin; int num = margin = this._margin; int lineLength; int num2 = lineLength = this._lineLength; Pen pen = new Pen(Color.Red); pen.DashStyle = DashStyle.Dot; if (this._sewingDirection == SewingDirectionFlag.Left) { g.DrawLine(pen, margin, 0, margin, lineLength); stringFormat.FormatFlags = StringFormatFlags.DirectionVertical; int num3 = (int)g.MeasureString("装", font).Width; num3 /= 2; Rectangle r = new Rectangle(margin - num3, 0, margin - num3, lineLength); g.DrawString(s, font, Brushes.DodgerBlue, r, stringFormat); } else if (this._sewingDirection == SewingDirectionFlag.Top) { g.DrawLine(pen, 0, num, num2, num); int num4 = (int)g.MeasureString("装", font).Height; num4 /= 2; Rectangle r = new Rectangle(0, num - num4, num2, num - num4); g.DrawString(s, font, Brushes.DodgerBlue, r, stringFormat); } pen.Dispose(); font.Dispose(); stringFormat.Dispose(); } } }