c# Печать этикеток, проблема координат разных принтеров в частности DataMax

Создаю программу, где из базы данных необходимо подгрузить и выбрать строки например ФИО, Должность и выводить их на печать с логотипом. У меня на компьютере на разных принтерах координаты 0.0 это верхний левый угол печати. Но на принтере: Datamax-O'Neil A-4212 Mark II начало координат посередине листа, хотя настройки принтера верны.

Подскажите, может быть я не правильно реализую печать на с#?

Код кнопки "печать"

        PrintDocument pd = new PrintDocument();
        PrinterSettings PS = new PrinterSettings();

        PS.PrinterName = "Datamax-O'Neil A-4212 Mark II";
        pd.PrinterSettings = PS;

        float H = PS.DefaultPageSettings.PaperSize.Height;
        float W = PS.DefaultPageSettings.PaperSize.Width;
        
        float Y = PS.DefaultPageSettings.HardMarginY;
        float X = PS.DefaultPageSettings.HardMarginX;
        pd.PrintPage += PrintPageHandler;


        PrintDialog printDialog = new PrintDialog();
        printDialog.ShowDialog();
        printDialog.Document = pd;


        printDialog.Document.Print();

Для тестов вывожу пока только картинку (проблема так же и с текстом)

 Image newImage = Image.FromFile("logo.jpg");
        GraphicsUnit units = GraphicsUnit.Pixel;
        Point ulCorner = new Point((int)X, (int)Y); // Верхний левый
        Point urCorner = new Point(300, 0);      // Верхний правый
        Point llCorner = new Point(0, 100);          // Нижний левый
        Point[] destPara = { ulCorner, urCorner, llCorner };

        e.Graphics.DrawImage(newImage, destPara);
        Font font = new Font("Arial", 12, FontStyle.Regular, GraphicsUnit.Pixel);

Ответы (0 шт):