CSPosAPI.MainForm.pdoc_PrintPage C# (CSharp) Method

pdoc_PrintPage() private method

private pdoc_PrintPage ( object sender, PrintPageEventArgs e ) : void
sender object
e PrintPageEventArgs
return void
        void pdoc_PrintPage(object sender, PrintPageEventArgs e)
        {
            Graphics graphics = e.Graphics;
            string underLine;
            Font font;
            if (k < 1)
            {
                font = new Font("Courier New", 6);
                underLine = "-------------------------------------";
            }
            else
            {
                font = new Font("Arial", 8);
                underLine = "---------------------------------------";
            }

            float fontHeight = font.GetHeight();
            int startX = 0;
            int startY = 10;
            int Offset = Convert.ToInt32(fontHeight);

            int newLine15 = toValue(15);
            int newLine20 = toValue(20);

            // --------------------------
            int newLine10 = toValue(10);
            int newLine7 = toValue(7);
            font = new Font("Arial", 7);
            Font boldFont = new Font("Arial",8,FontStyle.Bold);
            Font smallFont = new Font("Arial", 6);
            Font smallFontBold = new Font("Arial", 6, FontStyle.Bold);
            Font smallFontUnderline = new Font("Arial", 8, FontStyle.Bold |FontStyle.Underline);

            graphics.DrawString("Иргэн танд очих баримт".PadLeft(50), boldFont, new SolidBrush(Color.Black), startX, startY + Offset);

            Offset = Offset + newLine15;

            if (resultData.lottery != "" && resultData.lottery!=null)
            {
                graphics.DrawString("Сугалаатай".PadLeft(50), font, new SolidBrush(Color.Black), startX, startY + Offset);
            }

            Offset = Offset + newLine15;

            graphics.DrawString(" Борлуулагч нь НӨАТ төлөгч мөн бол 20% урамшуулалтай".PadLeft(50), smallFont, new SolidBrush(Color.Black), startX, startY + Offset);

            Offset = Offset + newLine15;

            graphics.DrawString(" Борлуулагч нь НӨАТ төлөгч биш бол 20% урамшуулалгүй".PadLeft(50), smallFont, new SolidBrush(Color.Black), startX, startY + Offset);

            Offset = Offset + newLine15;

            graphics.DrawLine(new Pen(Color.Black, 2), new Point(startX, Offset + newLine15), new Point(startX + 300, Offset + newLine15));

            Offset = Offset + newLine15;

            graphics.DrawString("Таван Буянт Трейд".PadLeft(50), boldFont, new SolidBrush(Color.Black), startX, startY + Offset);

            Offset = Offset + newLine15;

            graphics.DrawString("ТТД :".PadRight(15) + this.resultData.merchantId,
                    font,
                    new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine15;

            graphics.DrawString("ДДТД :".PadRight(13) + this.resultData.billId,
                    font,
                     new SolidBrush(Color.Black), startX, startY + Offset);

            Offset = Offset + newLine15;
            graphics.DrawString("Огноо :".PadRight(15) + this.resultData.date,
                     font,
                     new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine15;

            graphics.DrawString("Касс :".PadRight(16) + "№122",
                     font,
                     new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine15;

            graphics.DrawString("Кассчин :".PadRight(14) + "№14566",
                  font,
                  new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine10;

            graphics.DrawLine(new Pen(Color.Black, 1), new Point(startX, Offset + newLine15), new Point(startX + 300, Offset + newLine15));

            Offset = Offset + newLine7;

            graphics.DrawString("Бараа",
                smallFontBold,
                new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine10;

            graphics.DrawLine(new Pen(Color.Black, 1), new Point(startX, Offset + newLine10), new Point(startX + 300, Offset + newLine10));

            graphics.DrawString("Т/Ш".PadRight(17) + "НӨАТ".PadRight(20) + "НХАТ".PadRight(20) + "НЭГЖ ҮНЭ".PadRight(20) +"НИЙТ",
                smallFontBold,
                new SolidBrush(Color.Black), startX, startY + Offset + 1);
            Offset = Offset + newLine10;

            graphics.DrawLine(new Pen(Color.Black, 1), new Point(startX, Offset + newLine10), new Point(startX + 300, Offset + newLine10));

            Offset = Offset + newLine15;

            if (this.resultData.stocks != null)
            {
                var count = 0;
                foreach (BillDetail stock in this.resultData.stocks)
                {

                    graphics.DrawString(stock.name,
                        stock.cityTax.Equals("0.00") ? font: smallFontUnderline, new SolidBrush(Color.Black), startX, startY + Offset-10);
                    Offset = Offset + newLine15;

                    graphics.DrawString(stock.qty.PadRight(20 - stock.qty.Length) + stock.vat.PadRight(18 -stock.vat.Length) + stock.cityTax.PadRight(20 - stock.cityTax.Length) + stock.unitPrice.PadRight(20-stock.unitPrice.Length) + stock.totalAmount,
                        stock.cityTax.Equals("0.00") ? font : boldFont, new SolidBrush(Color.Black), startX, startY + Offset - 10);

                    Offset = Offset + newLine15;
                }

            }

            graphics.DrawLine(new Pen(Color.Black, 1), new Point(startX, Offset + newLine10), new Point(startX + 300, Offset + newLine10));

            Offset = Offset + newLine10;

            graphics.DrawString(("Бонус:".PadRight(25 - "Бонус:".Length) + "0.00").PadRight(40) + "Нийт үнэ:".PadRight(10) + resultData.amount,
             font,
             new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine15;

            graphics.DrawString(("НӨАТ:".PadRight(25 - "НӨАТ:".Length) + resultData.vat).PadRight(40) + "НХАТ:".PadRight(10) + resultData.cityTax,
            font,
            new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine15;

            graphics.DrawString(("Бэлэн бус:".PadRight(25 - "Бэлэн бус:".Length) + resultData.nonCashAmount).PadRight(40) + "Бэлэн:".PadRight(10) + resultData.cashAmount,
               font,
               new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine15;

            graphics.DrawString(("Төлсөн:".PadRight(25 - "Төлсөн:".Length) + resultData.amount).PadRight(40) + "Хариулт:".PadRight(10) + "0.00",
              font,
              new SolidBrush(Color.Black), startX, startY + Offset);
            Offset = Offset + newLine15;

            if (resultData.bankTransactions != null && resultData.bankTransactions.Count != 0)
            {

                graphics.DrawString("Card No".PadRight(13) + "RRN".PadRight(12) + "App.Code".PadRight(9) + "Terminal ID" + "Amount", font,
                  new SolidBrush(Color.Black), startX, startY + Offset);

                Offset = Offset + newLine20;
                foreach (BillBankTransaction banktranscation in this.resultData.bankTransactions)
                {
                    graphics.DrawString("9231 23** **** 3234".PadRight(20) + banktranscation.rrn.PadRight(12) + banktranscation.approvalCode.PadRight(8) + banktranscation.amount,
                    font,
                     new SolidBrush(Color.Black),
                     startX, startY + Offset
                    );
                }
                Offset = Offset + newLine20;
            }

            graphics.DrawLine(new Pen(Color.Black, 1), new Point(startX, Offset + newLine10), new Point(startX + 300, Offset + newLine10));

            Offset = Offset + newLine10;

            var logo = new Bitmap("logo-bill.png");
            graphics.DrawImage(logo, startX + 20 , startY + Offset);
            Offset = Offset + newLine20;
            Offset = Offset + newLine20;
            Offset = Offset + newLine20;
            if (resultData.lottery != null)
            {
                graphics.DrawString("Сугалаа ".PadLeft(30) + resultData.lottery, boldFont, new SolidBrush(Color.Black), startX, startY + Offset);
            }

            Offset = Offset + newLine15;
            ///--------------------------

             //           graphics.DrawString("Мерчант :".PadRight(10) + this.resultData.merchantId,
             //                   font,
             //                   new SolidBrush(Color.Black), startX, startY + Offset);
             //           Offset = Offset + newLine15;

             //           graphics.DrawString("Баримт №: " + this.resultData.billId,
             //                   font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine15;
             //           graphics.DrawString("Огноо :".PadRight(10) + this.resultData.date,
             //                    font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);
             //           Offset = Offset + newLine15;

             //           graphics.DrawString("Касс :".PadRight(10) + "122",
             //                    font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);
             //           Offset = Offset + newLine15;

             //           graphics.DrawString(underLine, font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           string tmp = "Д/д Бараа".PadRight(10) + "Х/нэгж".PadRight(8) + "Код";
             //           graphics.DrawString(tmp, font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);
             //           Offset = Offset + newLine15;
             //           string tmp1 = "Үнэ".PadRight(7) + "НӨАТ".PadRight(6) + "НХАТ".PadRight(7) + "тоо/ш".PadRight(12) + "Дүн";
             //           tmp1 = tmp1.PadLeft(38);
             //           graphics.DrawString(tmp1, font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           if (this.resultData.stocks != null)
             //           {
             //               var count = 0;
             //               foreach (BillDetail stock in this.resultData.stocks)
             //               {
             //                   graphics.DrawString(++count + " " + stock.name.PadRight(12) + stock.measureUnit.PadRight(4) + stock.code, font, new SolidBrush(Color.Black), startX, startY + Offset);
             //                   Offset = Offset + newLine20;
             //                   string unitPriceVat = (Convert.ToDouble(stock.unitPrice) + Convert.ToDouble(stock.vat)).ToString(Program.NUMBER_FORMAT);

             //                   var value = String.Format("   {0:F0}   {1:F0}   {2:F0}   x {3}", Convert.ToDouble(stock.unitPrice), Convert.ToDouble(stock.vat), Convert.ToDouble(stock.cityTax), stock.qty);
             //                   var amount = Convert.ToDouble(stock.totalAmount);
             //                   value += amount.ToString().PadLeft(10);
             //                   value = value.PadLeft(38);

             //                   graphics.DrawString(value, font,
             //                      new SolidBrush(Color.Black), startX, startY + Offset);
             //                   Offset = Offset + newLine15;
             //               }

             //           }

             //           graphics.DrawString(underLine, font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);
             //           Offset = Offset + newLine20;

             //           if (resultData.bankTransactions != null && resultData.bankTransactions.Count != 0)
             //           {
             //               string tmpb = String.Format("Банк/нэр".PadRight(13) + "RRN".PadRight(12) + "Approval".PadRight(9) + "Дүн");
             //               graphics.DrawString(tmpb, font,
             //                 new SolidBrush(Color.Black), startX, startY + Offset);

             //               Offset = Offset + newLine20;
             //               foreach (BillBankTransaction banktranscation in this.resultData.bankTransactions)
             //               {
             //                   graphics.DrawString(banktranscation.bankName.PadRight(12),
             //                   font,
             //                    new SolidBrush(Color.Black),
             //                   new Rectangle(startX, startY + Offset, 100, 50)
             //                   );
             //                   var value = banktranscation.bankName.PadRight(8) +banktranscation.rrn.PadRight(16) + banktranscation.approvalCode.PadRight(9)+ banktranscation.amount;
             //                   graphics.DrawString(value, font,
             //                     new SolidBrush(Color.Black), startX, startY + Offset);
             //                   Offset = Offset + newLine20; //newLine20;
             //               }

             //               graphics.DrawString(underLine, font,
             //                        new SolidBrush(Color.Black), startX, startY + Offset);
             //               Offset = Offset + newLine20;
             //           }

             //           graphics.DrawString("Бэлэн :".PadRight(13) + resultData.cashAmount, font,
             //                  new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           graphics.DrawString("Бэлэн Бус :".PadRight(13) + resultData.nonCashAmount, font,
             //                  new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           graphics.DrawString("НӨАТ :".PadRight(13) + resultData.vat, font,
             //                new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           graphics.DrawString("НХАТ :".PadRight(13) + resultData.cityTax, font,
             //              new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           graphics.DrawString("Нийт :".PadRight(13) + resultData.amount, font,
             //      new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           graphics.DrawString("Төлсөн :".PadRight(13) + Convert.ToDouble(textBoxPaidAmount.Text).ToString(Program.NUMBER_FORMAT), font,
             //new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           graphics.DrawString("Хариулт :".PadRight(13) + (Convert.ToDouble(textBoxPaidAmount.Text) - Convert.ToDouble(this.resultData.cashAmount)).ToString(Program.NUMBER_FORMAT), font,
             //new SolidBrush(Color.Black), startX, startY + Offset);

             //           Offset = Offset + newLine20;

             //           graphics.DrawString(underLine, font,
             //                    new SolidBrush(Color.Black), startX, startY + Offset);
             //           Offset = Offset + newLine20;

             //           if (resultData.lottery != null && resultData.lottery.Length != 0)
             //           {
             //               graphics.DrawString("Сугалаа :".PadRight(15) + this.resultData.lottery,
             //                   font,
             //                   new SolidBrush(Color.Black), startX, startY + Offset);
             //               Offset = Offset + newLine15;
             //           }

            if (resultData.lottery != null && resultData.lottery.Length != 0)
            {
                ZXing.IBarcodeWriter writer = new ZXing.BarcodeWriter
                {
                    Format = ZXing.BarcodeFormat.QR_CODE,
                    Options = new ZXing.QrCode.QrCodeEncodingOptions
                    {
                        Width = toValue(150),
                        Height = toValue(150)
                    }
                };
                var dataQr = writer.Write(resultData.qrData);
                var barcodeBitmap = new Bitmap(dataQr, new Size(toValue(150), toValue(150)));
                graphics.DrawImage(barcodeBitmap, toValue(startX + 55), startY + Offset);

                Offset = Offset + toValue(100 + 50);
            }

            var writerBarCode = new ZXing.BarcodeWriter
            {
                Format = ZXing.BarcodeFormat.CODE_128,
                Options = new ZXing.OneD.Code128EncodingOptions
                {
                    Width = toValue(180),
                    Height = toValue(50),
                }
            };

            var bitmap = writerBarCode.Write(this.resultData.billId);
            graphics.DrawImage(bitmap, k < 1 ? toValue(startX) : toValue(startX + 30), startY + Offset);

            Offset = Offset + toValue(70);

            graphics.Dispose();
        }