Member 9983063 Ответов: 1

Как установить квитанцию alingment


Привет, ребята, я хочу установить выравнивание квитанции мое выравнивание квитанции грязное, и я не знаю, как установить стандартное выравнивание квитанции печати
пожалуйста, посмотрите мою квитанцию.

[^]

Что я уже пробовал:

Graphics graphics = e.Graphics;
            Font f = new Font("Arial", 8);
            float fontHeight = f.GetHeight();
            int starto = 30;
            int startp = 6;
            int startoo = 180;
            int startpp = 9;
            int startX = 10;
            int startY = 10;
            int offset = 40;
            int offset1 = 260;
            int offset2 = 280;
            int line = 1;
            int line1 = 5;
            int line2 = 6;
            int line3 = 24;
            int line4 = 124;
            int line5 = 32;
            int line6 = 20;
            int line7 = 3;
            int line8 = 6;
            int line9 = 32;
            int offset3 = 250;
            int offset4 = 260;
            int offset5 = 270;

            graphics.DrawString(txtDisplay.Text, new Font("Courier New", 6), new SolidBrush(Color.Black), line, line1);
            graphics.DrawString(setaluefortext00001name, new Font("Courier New", 15), new SolidBrush(Color.Black), starto, startp);
            graphics.DrawString("*****************************************************************", new Font("Courier New", 6), new SolidBrush(Color.Black), line2, line3);
            graphics.DrawString(label4.Text, new Font("Courier New", 6), new SolidBrush(Color.Black), line8, line9);
            //graphics.DrawString("Order No: "+ + label2.Text, new Font("Courier New", 6), new SolidBrush(Color.Red), line4, line5);
            foreach (tblProductEx product in products1)
            {
                //for (int z = 0; z < dataGridView2.Rows.Count - 1; z++)
                //{
                    string productDescription = product.productName.PadRight(30);

                    string productTotal = "Rs:" + string.Format("{0:}", product.productPrice);
                    string prodcutLine = productDescription + productTotal;

                    graphics.DrawString(prodcutLine, f, new SolidBrush(Color.Black), startX, startY + offset);

                    offset = offset + (int)fontHeight + 5;
                //}
            }
            offset = offset + 20;
            tblTransaction transaction = new tblTransaction();
            transaction.transactionDate = DateTime.Now;
            graphics.DrawString("Total To Pay".PadRight(15) + "Rs " + string.Format("{0:}", total1), f, new SolidBrush(Color.Black), startX, startY + offset3);
            graphics.DrawString("Thank You For Coming,".PadRight(15) + string.Format(""), f, new SolidBrush(Color.Black), startX, startY + offset4);

1 Ответов

Рейтинг:
1

Patrice T

Цитата:
я не знаю, как установить стандартное выравнивание квитанции печати
Вы уже делаете выравнивание, вы просто делаете это неправильно.

Посмотрите, что вы делаете: каждый том вы рисуете строку, вы даете координаты, которые говорят, где начинается левая часть.
Для метки, выровненной слева, просто дайте координаты.
Для метки, выровненной по правому краю или по центру, вам нужно запросить систему для длины и вычислить соответствующую левую координату.
для центрированной метки левая координата - это центральная координата минус длина/2.
для правой метки левая координата - это правая координата минус длина.