AIMS/DocumentManagement/GoldPrinter/PrinterMargins.cs
2022-12-27 17:33:33 +08:00

133 lines
2.3 KiB
C#

using System;
using System.Drawing.Printing;
namespace GoldPrinter
{
public class PrinterMargins : Margins
{
private int _width;
private int _height;
private int _X1;
private int _X2;
private int _Y1;
private int _Y2;
public int Width
{
get
{
return this._width;
}
set
{
this._width = value;
}
}
public int Height
{
get
{
return this._height;
}
set
{
this._height = value;
}
}
public int X1
{
get
{
return this._X1;
}
}
public int X2
{
get
{
return this._X2;
}
}
public int Y1
{
get
{
return this._Y1;
}
}
public int Y2
{
get
{
return this._Y2;
}
}
public PrinterMargins() : this(1, 1, 1, 1, 0, 0)
{
}
public PrinterMargins(int left, int right, int top, int bottom, int width, int height) : base(left, right, top, bottom)
{
this._width = width;
this._height = height;
this.Calculate();
}
public PrinterMargins(PrintDocument printDocument)
{
PrinterMargins printerMargins = new PrinterMargins();
printerMargins = this.GetPrinterMargins(printDocument);
base.Left = printerMargins.Left;
base.Right = printerMargins.Right;
base.Top = printerMargins.Top;
base.Bottom = printerMargins.Bottom;
this.Width = printerMargins.Width;
this.Height = printerMargins.Height;
this.Calculate();
}
private PrinterMargins GetPrinterMargins(PrintDocument printDocument)
{
int left = printDocument.DefaultPageSettings.Margins.Left;
int right = printDocument.DefaultPageSettings.Margins.Right;
int top = printDocument.DefaultPageSettings.Margins.Top;
int bottom = printDocument.DefaultPageSettings.Margins.Bottom;
int num = printDocument.DefaultPageSettings.PaperSize.Width;
int num2 = printDocument.DefaultPageSettings.PaperSize.Height;
if (printDocument.DefaultPageSettings.Landscape)
{
this.Swap(ref num, ref num2);
}
num = num - left - right;
num2 = num2 - top - bottom;
return new PrinterMargins(left, right, top, bottom, num, num2);
}
private void Swap(ref int ValA, ref int ValB)
{
int num = ValA;
ValA = ValB;
ValB = num;
}
private void Calculate()
{
this._X1 = base.Left;
this._X2 = base.Left + this._width;
this._Y1 = base.Top;
this._Y2 = base.Top + this._height;
}
}
}