I am trying to optimize the code and do some changes to the old existing code. I have to implement print bill from the server side to the client side I try too many ways but I did not find any of one this is my code
public void Print()
{
var doc = new PrintDocument();
string pkInstalledPrinters = string.Empty;
//var doc = new PrintDocument();
for (int i = 0; i < PrinterSettings.InstalledPrinters.Count;)
{
pkInstalledPrinters = PrinterSettings.InstalledPrinters[i];
break;
//comboInstalledPrinters.Items.Add(pkInstalledPrinters);
}
// doc.PrinterSettings.PrinterName = "\\\\W95053\\P12562PCL";
doc.PrinterSettings.PrinterName = pkInstalledPrinters;
doc.PrinterSettings.Copies = 2;
doc.PrintPage = new PrintPageEventHandler(ProvideContent);
doc.Print();
doc.Print();
this is server-side code for printing
public void ProvideContent(object sender, PrintPageEventArgs e)
{
DateTime koDate = DateTime.Now.AddMinutes(-320);
string totalAmount = TotalAmount.Value;
//e.Graphics.DrawString("7 Plates Restaurant", new Font("Arial", 12), Brushes.Black, 50, 0);
//e.Graphics.DrawString("Item", new Font("Arial", 11), Brushes.Black, 15, 30);
//e.Graphics.DrawString("Qty", new Font("Arial", 11), Brushes.Black, 150, 30);
//e.Graphics.DrawString("Rate", new Font("Arial", 11), Brushes.Black, 185, 30);
string addressLine1 = hotel.Address;
string addressLine2 = "Bangalore 560046";
string phoneNo = "PH – " hotel.PhoneNo;
string date = koDate.Date.ToShortDateString();
string tin = "29061276984";
string time = koDate.ToShortTimeString();
string cashier = "Sameer";
e.Graphics.DrawString("7 Plates", new Font("Cambria", 24, FontStyle.Bold), Brushes.Black, 60, 0);
e.Graphics.DrawString("Restaurant", new Font("Cambria", 11), Brushes.Black, 90, 40);
e.Graphics.DrawString(addressLine1, new Font("Cambria", 11), Brushes.Black, 10, 60);
e.Graphics.DrawString(addressLine2, new Font("Cambria", 11), Brushes.Black, 65, 75);
e.Graphics.DrawString(phoneNo, new Font("Cambria", 11), Brushes.Black, 20, 90);
// e.Graphics.DrawString(webSite, new Font("Cambria", 11), Brushes.Black, 70, 90);
e.Graphics.DrawString("Order No: " orderNumber, new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 0, 110);
e.Graphics.DrawString("Bill No: " billNumber, new Font("Cambria", 11), Brushes.Black, 170, 110);
e.Graphics.DrawString("Date: " date, new Font("Cambria", 11), Brushes.Black, 0, 125);
e.Graphics.DrawString("Time: " time, new Font("Cambria", 11), Brushes.Black, 170, 125);
e.Graphics.DrawString("Tin: " tin, new Font("Cambria", 11), Brushes.Black, 0, 140);
e.Graphics.DrawString("No.", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 0, 160);
e.Graphics.DrawString("Item", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 25, 160);
e.Graphics.DrawString("Qty", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 140, 160);
e.Graphics.DrawString("Rate", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 175, 160);
e.Graphics.DrawString("Total", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 220, 160);
int xAxis = 0;
int yAxis = 180;
int itemNo = 0;
int totalValue = 0;
foreach (DayEntryHR item in dayEntryList)
{
itemNo ;
string no = Convert.ToString(itemNo) ".";
string itemName = item.MasterItem.Item;
int rateMaster = item.MasterItem.KORate;
double rate1 = Convert.ToInt32(rateMaster / 1.12) 1;
string rate = Convert.ToString(rate1);
string total = Convert.ToString(rate1 * item.Quantity);
string quantity = Convert.ToString(item.Quantity);
totalValue = totalValue Convert.ToInt32(total);
//e.Graphics.DrawString(
// "Hello world",
// new Font("Arial", 12),
// Brushes.Black,
// e.MarginBounds.Left,
// e.MarginBounds.Top);
e.Graphics.DrawString(no, new Font("Cambria", 11), Brushes.Black, xAxis, yAxis);
xAxis = xAxis 25;
e.Graphics.DrawString(itemName, new Font("Cambria", 11), Brushes.Black, xAxis, yAxis);
xAxis = xAxis 120;
e.Graphics.DrawString(quantity, new Font("Cambria", 11), Brushes.Black, xAxis, yAxis);
xAxis = xAxis 30;
e.Graphics.DrawString(rate, new Font("Cambria", 11), Brushes.Black, xAxis, yAxis);
xAxis = xAxis 50;
e.Graphics.DrawString(total, new Font("Cambria", 11), Brushes.Black, xAxis, yAxis);
xAxis = 0;
yAxis = yAxis 15;
//e.Graphics.DrawString("2.", new Font("Cambria", 11), Brushes.Black, 0, 195);
//e.Graphics.DrawString(c, new Font("Cambria", 11), Brushes.Black, 25, 195);
//e.Graphics.DrawString("2", new Font("Cambria", 11), Brushes.Black, 145, 195);
//e.Graphics.DrawString("150", new Font("Cambria", 11), Brushes.Black, 175, 195);
//e.Graphics.DrawString("150", new Font("Cambria", 11), Brushes.Black, 225, 195);
//e.Graphics.DrawString("3.", new Font("Cambria", 11), Brushes.Black, 0, 210);
//e.Graphics.DrawString(d, new Font("Cambria", 11), Brushes.Black, 25, 210);
//e.Graphics.DrawString("5", new Font("Cambria", 11), Brushes.Black, 145, 210);
//e.Graphics.DrawString("150", new Font("Cambria", 11), Brushes.Black, 175, 210);
//e.Graphics.DrawString("300", new Font("Cambria", 11), Brushes.Black, 225, 210);
//e.Graphics.DrawString("4.", new Font("Cambria", 11), Brushes.Black, 0, 225);
//e.Graphics.DrawString(f, new Font("Cambria", 11), Brushes.Black, 25, 225);
//e.Graphics.DrawString("2", new Font("Cambria", 11), Brushes.Black, 145, 225);
//e.Graphics.DrawString("110", new Font("Cambria", 11), Brushes.Black, 175, 225);
//e.Graphics.DrawString("220", new Font("Cambria", 11), Brushes.Black, 225, 225);
}
int vat = ((totalValue * 12) / 100);
//e.Graphics.DrawString("Vat 5.5%:", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 140, yAxis 5);
//e.Graphics.DrawString(Convert.ToString(Vat), new Font("Cambria", 11), Brushes.Black, 220, yAxis 5);
e.Graphics.DrawString("Total:", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 140, yAxis 5);
e.Graphics.DrawString(Convert.ToString(totalValue), new Font("Cambria", 11), Brushes.Black, 220, yAxis 5);
e.Graphics.DrawString("Pay By: Cash", new Font("Cambria", 11, FontStyle.Bold), Brushes.Black, 140, yAxis 23);
e.Graphics.DrawString("To provide feedback call us", new Font("Cambria", 11), Brushes.Black, 35, yAxis 40);
e.Graphics.DrawString("Or", new Font("Cambria", 11), Brushes.Black, 100, yAxis 55);
e.Graphics.DrawString("Visit us on www.7plates.in", new Font("Cambria", 11), Brushes.Black, 37, yAxis 70);
e.Graphics.DrawString("Thank You", new Font("Cambria", 14, FontStyle.Bold), Brushes.Black, 75, yAxis 90);
string name = Customer.Value " " LastName.Value;
bool flag = false;
e.Graphics.DrawString(name, new Font("Cambria", 14), Brushes.Black, 75, yAxis 110);
if (Homedelevery.Checked == true)
{
string addressline1 = string.Empty;
string addressline2 = string.Empty;
string address = Address.Value;
if (address.Length > 28)
{
addressline1 = address.Substring(0, 28);
addressline2 = address.Substring(28);
flag = true;
}
e.Graphics.DrawString("Address:", new Font("Cambria", 11), Brushes.Black, 0, yAxis 140);
if (flag == true)
{
e.Graphics.DrawString(addressline1, new Font("Cambria", 11), Brushes.Black, 63, yAxis 140);
e.Graphics.DrawString(addressline2, new Font("Cambria", 11), Brushes.Black, 63, yAxis 160);
e.Graphics.DrawString("LandMark:", new Font("Cambria", 11), Brushes.Black, 0, yAxis 180);
e.Graphics.DrawString(Landmark.Value, new Font("Cambria", 11), Brushes.Black, 70, yAxis 180);
}
else
{
e.Graphics.DrawString(address, new Font("Cambria", 11), Brushes.Black, 63, yAxis 140);
e.Graphics.DrawString("LandMark:", new Font("Cambria", 11), Brushes.Black, 0, yAxis 160);
e.Graphics.DrawString(Landmark.Value, new Font("Cambria", 11), Brushes.Black, 73, yAxis 160);
}
}
if (Takeaway.Checked == true)
{
e.Graphics.DrawString("Phone:", new Font("Cambria", 11), Brushes.Black, 0, yAxis 140);
e.Graphics.DrawString(Phone1.Value, new Font("Cambria", 11), Brushes.Black, 50, yAxis 140);
e.Graphics.DrawString("TakeAway", new Font("Cambria", 14, FontStyle.Bold), Brushes.Black, 73, yAxis 160);
}
else if (Homedelevery.Checked == true)
{
if (flag == true)
{
e.Graphics.DrawString("Phone:", new Font("Cambria", 11), Brushes.Black, 0, yAxis 200);
e.Graphics.DrawString(Phone1.Value, new Font("Cambria", 11), Brushes.Black, 50, yAxis 200);
e.Graphics.DrawString("Home Delevery", new Font("Cambria", 14, FontStyle.Bold), Brushes.Black, 70, yAxis 220);
}
else
{
e.Graphics.DrawString("Phone:", new Font("Cambria", 11), Brushes.Black, 0, yAxis 180);
e.Graphics.DrawString(Phone1.Value, new Font("Cambria", 11), Brushes.Black, 50, yAxis 180);
e.Graphics.DrawString("Home Delevery", new Font("Cambria", 14, FontStyle.Bold), Brushes.Black, 70, yAxis 200);
}
}
Pen myPen = new Pen(System.Drawing.Color.Black, 1);
e.Graphics.DrawLine(myPen, 0, 176, 260, 176);
e.Graphics.DrawLine(myPen, 0, yAxis 5, 260, yAxis 5);
e.Graphics.DrawLine(myPen, 0, yAxis 21, 260, yAxis 21);
//e.Graphics.DrawString(no, new Font("Arial", 10), Brushes.Black, xAxis, yAxis);
//xAxis = xAxis 15;
//e.Graphics.DrawString(itemName, new Font("Arial", 10), Brushes.Black, xAxis, yAxis);
//xAxis = xAxis 145;
//e.Graphics.DrawString(quantity, new Font("Arial", 10), Brushes.Black, xAxis, yAxis);
//xAxis = xAxis 30;
//e.Graphics.DrawString(rate, new Font("Arial", 10), Brushes.Black, xAxis, yAxis);
//yAxis = yAxis 20;
//xAxis = 0;
}
I search a lot of stuff and I am trying to do this but I could not pass the object that I want to print
protected void Submit(object sender, EventArgs e)
{
var doc = new PrintDocument();
doc.PrinterSettings.Copies = 2;
doc.PrintPage = new PrintPageEventHandler(ProvideContent);
//String msg = "alert('" doc "button)'";
ClientScript.RegisterStartupScript(this.GetType(), "alert", string.Format(@"
alert('u r inside a fucntion');
var prtwin = window.open('', 'PrintGridViewData', 'left=100,top=100,width=1000,height=100,tollbar=0,scrollbars=1,status=0,resizable=1');
prtwin.document.write('hello wolrd sjks');
prtwin.document.close();
prtwin.focus();
prtwin.print();
prtwin.close(); "
, new PrintPageEventHandler(ProvideContent)), true);
//ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('heelo world');", true);
}
thanks to read this long question
CodePudding user response:
I got the answer whenever u use a print object in javascript **it read like HTML page **window.print();
take the whole page and print but when u
u can see i write a text in below print function we can write and format like html page or we can create an html page and pass and then print that html page print
prtwin.document.write('hello wolrd sjks')