80 lines
1.3 KiB
C#
80 lines
1.3 KiB
C#
using System;
|
|
using System.Drawing;
|
|
|
|
namespace GoldPrinter
|
|
{
|
|
public class PrinterTabStops : IDisposable
|
|
{
|
|
private int _cols;
|
|
|
|
public Font Font;
|
|
|
|
public Rectangle Rectangle;
|
|
|
|
private string _text;
|
|
|
|
private string _textConverted;
|
|
|
|
public int Cols
|
|
{
|
|
get
|
|
{
|
|
return this._cols;
|
|
}
|
|
set
|
|
{
|
|
this._cols = value;
|
|
}
|
|
}
|
|
|
|
public string Text
|
|
{
|
|
get
|
|
{
|
|
return this._text;
|
|
}
|
|
set
|
|
{
|
|
this._text = value;
|
|
string text = this._text;
|
|
this._textConverted = this.ConvertText(text);
|
|
}
|
|
}
|
|
|
|
public PrinterTabStops()
|
|
{
|
|
this.Font = new Font("宋体", 10f);
|
|
this.Rectangle = new Rectangle(0, 0, this.Font.Height, 100);
|
|
}
|
|
|
|
public PrinterTabStops(string text) : this()
|
|
{
|
|
this.Text = text;
|
|
}
|
|
|
|
public void Draw(Graphics g)
|
|
{
|
|
StringFormat stringFormat = new StringFormat();
|
|
stringFormat.FormatFlags = StringFormatFlags.NoWrap;
|
|
float num = (float)(this.Rectangle.Width / this._cols);
|
|
float[] array = new float[this._cols];
|
|
for (int i = 0; i < this._cols; i++)
|
|
{
|
|
array[i] = num;
|
|
}
|
|
stringFormat.SetTabStops(0f, array);
|
|
g.DrawString(this._textConverted, this.Font, Brushes.Black, this.Rectangle, stringFormat);
|
|
}
|
|
|
|
private string ConvertText(string text)
|
|
{
|
|
return text.Replace("|", "\t");
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
this.Font.Dispose();
|
|
}
|
|
}
|
|
}
|