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