public void printSaleReceipt(SaleModel saleModel)
        {
            PrintDialog pd  = new PrintDialog();
            var         doc = ((IDocumentPaginatorSource)getFlowDocument(saleModel)).DocumentPaginator;

            pd.PrintQueue = new PrintQueue(new PrintServer(), new PrinterSettings().PrinterName);
            pd.PrintDocument(doc, "Print Document");
        }
 public dynamic receipt(SaleModel student)
 {
     return(new int[] { 12, 13, 14, 15 });
 }
        FlowDocument getFlowDocument(SaleModel saleModel)
        {
            FlowDocument fd = new FlowDocument();

            fd.PageWidth = 280;
            if (saleModel.Font != null)
            {
                fd.FontFamily = new System.Windows.Media.FontFamily(saleModel.Font);
            }
            else
            {
                fd.FontFamily = new System.Windows.Media.FontFamily("Arial");
            }

            fd.PagePadding   = new Thickness(0, 0, 0, 0);
            fd.TextAlignment = TextAlignment.Center;
            Section   header  = new Section();
            Paragraph header1 = new Paragraph(new Bold(new Run("Usman General Store")));
            Paragraph header2 = new Paragraph(new Run("Noori Darbar Road, Muslim Abad,Pull Fateh Garh, Lahore. 0300-4396491"));


            string    date    = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToShortTimeString();
            Paragraph header3 = new Paragraph(new Run("Sales Id: " + saleModel.SaleId));
            Paragraph header4 = new Paragraph(new Run("Date: " + date));
            Paragraph header5 = new Paragraph(new Run("______________________________________"));

            header1.FontSize = 17; // old was 14
            header2.FontSize = 14; // old was 10
            header3.FontSize = 12; // old was 9
            header4.FontSize = 12;
            header5.FontSize = 10;
            header.Blocks.Add(header1);
            header.Blocks.Add(header2);
            header.Blocks.Add(header3);
            header.Blocks.Add(header4);
            header.Blocks.Add(header5);


            Section middle = new Section();

            middle.FontSize = 11; // old size was 9
            Table table = new Table();

            table.TextAlignment = TextAlignment.Left;
            TableColumn tb1 = new TableColumn();

            tb1.Width = new GridLength(140);
            TableColumn tb2 = new TableColumn();
            TableColumn tb3 = new TableColumn();
            TableColumn tb4 = new TableColumn();

            table.Columns.Add(tb1);
            table.Columns.Add(tb2);
            table.Columns.Add(tb3);
            table.Columns.Add(tb4);
            table.RowGroups.Add(new TableRowGroup());
            TableRow trHeader = new TableRow();

            table.RowGroups[0].Rows.Add(trHeader);
            trHeader.Cells.Add(new TableCell(new Paragraph(new Run("Name"))));
            trHeader.Cells.Add(new TableCell(new Paragraph(new Run("Rs"))));
            trHeader.Cells.Add(new TableCell(new Paragraph(new Run("Qty"))));
            trHeader.Cells.Add(new TableCell(new Paragraph(new Run("Ttl"))));

            foreach (SaleItem item in saleModel.SaleList)
            {
                TableRow tr = new TableRow();
                table.RowGroups[0].Rows.Add(tr);
                //tr.Cells.Add(new TableCell(new Paragraph(new Run("Item 1"))));
                //tr.Cells.Add(new TableCell(new Paragraph(new Run("100"))));
                //tr.Cells.Add(new TableCell(new Paragraph(new Run("100"))));
                //tr.Cells.Add(new TableCell(new Paragraph(new Run("1000"))));
                tr.Cells.Add(new TableCell(new Paragraph(new Run(item.name))));
                tr.Cells.Add(new TableCell(new Paragraph(new Run(item.price))));
                tr.Cells.Add(new TableCell(new Paragraph(new Run(item.quantity))));
                tr.Cells.Add(new TableCell(new Paragraph(new Run(item.total))));
            }
            middle.Blocks.Add(table);
            double Payment = Convert.ToDouble(saleModel.DiscountedBill) + Convert.ToDouble(saleModel.Change);

            middle.Blocks.Add(new Paragraph(new Run("______________________________________")));
            middle.Blocks.Add(new Paragraph(new Bold(new Run("           Total Items                      " + saleModel.SaleList.Count))));
            middle.Blocks.Add(new Paragraph(new Bold(new Run("           Bill                                   " + saleModel.DiscountedBill))));
            middle.Blocks.Add(new Paragraph(new Bold(new Run("           Payment                          " + Payment))));
            middle.Blocks.Add(new Paragraph(new Bold(new Run("           Balance                            " + saleModel.Change))));
            middle.TextAlignment = TextAlignment.Left;

            Section   footer  = new Section();
            Paragraph footer1 = new Paragraph(new Run("Thankyou for Purchasing."));
            Paragraph footer2 = new Paragraph(new Run("Software Developed By QuickLinqs."));
            Paragraph footer3 = new Paragraph(new Bold(new Run("QuickLinqs Phone: 03024759550  www.quicklinqs.com")));
            Paragraph footer4 = new Paragraph(new Run("                "));

            footer1.FontSize = 14;
            footer2.FontSize = 10;
            footer3.FontSize = 9;
            footer.Blocks.Add(footer1);
            footer.Blocks.Add(footer2);
            footer.Blocks.Add(footer3);
            footer.Blocks.Add(footer4);


            fd.Blocks.Add(header);
            fd.Blocks.Add(middle);
            fd.Blocks.Add(footer);
            return(fd);
        }