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; } } }