How to add multiple tables sequentially in a PDF using mvc jQuery export

export not working properly  . 





            @Html.EJS().Grid("saleitempayment").EnableVirtualization(true).EnablePersistence(true).ShowColumnChooser(true).Height("215").AllowPdfExport().AllowFiltering(true).FilterSettings(filter => filter.Type(Syncfusion.EJ2.Grids.FilterType.Excel)).AllowExcelExport().PdfHeaderQueryCellInfo("PdfHeaderQueryCellInfo").ToolbarClick("toolbarClick").Columns(col =>

       {


           col.HeaderText("Retail Sales Details").Columns(new List<GridColumn>() {

                        new GridColumn { Field = "vchbilldate1", Width = "90", HeaderText = "Bill Date",TextAlign=TextAlign.Left, MinWidth="10" }

                        ,new GridColumn { Field = "vchbillno1", Width = "100",Type="text", TextAlign=TextAlign.Left, HeaderText = "Bill No", MinWidth="10" }

                        //,new GridColumn { Field = "vchitemname", Width = "145", TextAlign=TextAlign.Left, HeaderText = "Item", MinWidth="10" }

                        //,new GridColumn { Field = "vchOtherField1_name", Width = "145",Visible=true, TextAlign=TextAlign.Left, HeaderText = "Brand", MinWidth="10" }

                        //,new GridColumn { Field = "vchcolour", Width = "145",Visible=true, TextAlign=TextAlign.Left, HeaderText = "Color", MinWidth="10" }

                        //,new GridColumn { Field = "vchsize", Width = "145",Visible=true, TextAlign=TextAlign.Left, HeaderText = "Size", MinWidth="10" }

                        //,new GridColumn { Field = "vchstyle", Width = "145",Visible=true, TextAlign=TextAlign.Left, HeaderText = "Style", MinWidth="10" }

                        //,new GridColumn { Field = "vchgst_group", Width = "145", TextAlign=TextAlign.Left, HeaderText = "Gst%", MinWidth="10" }

                        //,new GridColumn { Field = "vchdesignno", Width = "145",Visible=true, TextAlign=TextAlign.Left, HeaderText = "Batch No.", MinWidth="10" }

                        ////,new GridColumn { Field = "vchqtyno", Width = "145", TextAlign=TextAlign.Right, HeaderText = "Qty", Format="N2", MinWidth="10" }

                        //,new GridColumn { Field = "vchbasicrate", Width = "145", TextAlign=TextAlign.Right, HeaderText = "Rate", Format="N2", MinWidth="10" }

                        //,new GridColumn { Field = "vchamount", Width = "145", TextAlign=TextAlign.Right, HeaderText = "Gross Amt", Format="N2", MinWidth="10" }

                        //,new GridColumn { Field = "discamt", Width = "145", TextAlign=TextAlign.Right, HeaderText = "Dis Amt", Format="N2", MinWidth="10" }

                        //,new GridColumn { Field = "vchnetamount", Width = "145", TextAlign=TextAlign.Right, HeaderText = "Net Amt", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchbillamount1", Width = "100",Type="text", TextAlign=TextAlign.Right, HeaderText = "Bill Amount", MinWidth="10" }


                         }).Add();

           col.HeaderText("Payment Mode").Columns(new List<GridColumn>() {

                         new GridColumn { Field = "vchcash1", Width = "100", TextAlign=TextAlign.Right, HeaderText = "Cash", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchcashcardamount1", Width = "100", TextAlign=TextAlign.Right, HeaderText = "Card", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchcredit1", Width = "110", TextAlign=TextAlign.Right, HeaderText = "Credit", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchadvancecash1", Width = "105", TextAlign=TextAlign.Right, HeaderText = "Adv.", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchpaytm_amount1", Width = "110", TextAlign=TextAlign.Right, HeaderText = "Paytm", Format="N2", MinWidth="10" }

                        //,new GridColumn { Field = "vchloyalty_points1", Width = "145",Visible=true, TextAlign=TextAlign.Right, HeaderText = "Loyalty Point", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchchequeamount1", Width = "90", TextAlign=TextAlign.Right, HeaderText = "Chq Amt", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchtranamount", Width = "145",Visible=true, TextAlign=TextAlign.Right, HeaderText = "Wire Trn.", Format="N2", MinWidth="10" }

                        //,new GridColumn { Field = "dRazorpayamt1", Width = "145",Visible=true, TextAlign=TextAlign.Right, HeaderText = "Razorpay", Format="N2", MinWidth="10" }

                        ,new GridColumn { Field = "vchcreditnote1", Width = "100",Visible=true, TextAlign=TextAlign.Right, HeaderText = "Credit Note", Format="N2", MinWidth="10" }


                       }).Add();


       }).Aggregates(agg =>

       {

           agg.Columns(new List<GridAggregateColumn>() {

                                      new GridAggregateColumn() { Field = "vchgst_group", Type = "Sum", FooterTemplate = "Total :" },

                            new GridAggregateColumn() { Field = "vchqtyno", Format ="N2" , Type = "Sum", FooterTemplate = " ${Sum}" }

                            ,new GridAggregateColumn() { Field = "vchamount", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            ,new GridAggregateColumn() { Field = "discamt", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            //, new GridAggregateColumn() { Field = "vchnetamount", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchbillamount1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchcash1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchcashcardamount1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchcredit1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchadvancecash1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchpaytm_amount1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            //, new GridAggregateColumn() { Field = "vchloyalty_points1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchchequeamount1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            //, new GridAggregateColumn() { Field = "dRazorpayamt1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchtranamount", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                            , new GridAggregateColumn() { Field = "vchcreditnote1", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }


                            }).Add();

       }).AllowResizing().Toolbar(new List<string>

                () { "ExcelExport", "CsvExport", "PdfExport", "ColumnChooser" }).DataBound("dataBound2").Render()



                        @Html.EJS().Grid("saledetailsdayreceipt").EnableVirtualization(true).EnablePersistence(false).AllowFiltering(false).AllowExcelExport().AllowPdfExport().Height("115").PdfHeaderQueryCellInfo("PdfHeaderQueryCellInfo").PdfExportComplete("pdfExportComplete").ExcelExportComplete("excelExportComplete").ToolbarClick("receipttoolbarClick").Columns(col =>

                   {


                       col.HeaderText("RECEIPT DETAIL").Columns(new List<Syncfusion.EJ2.Grids.GridColumn>

                    {

                    new GridColumn {Field = "vchvoucherdate", Width = "120", HeaderText = "Receipt Date", TextAlign = TextAlign.Left, MinWidth = "10"},

                    new GridColumn {Field = "vchvouno", Width = "120", HeaderText = "Receipt No", TextAlign = TextAlign.Left, MinWidth = "10"},

                    new GridColumn {Field = "vchbillno", Width = "120", HeaderText = "Sale Bill No", TextAlign = TextAlign.Left, MinWidth = "10"},

                    new GridColumn {Field = "customername", Width = "120", HeaderText = "Name", TextAlign = TextAlign.Left, MinWidth = "10"},

                    new GridColumn {Field = "vchaccountname", Width = "120", HeaderText = "Payment Mode", TextAlign = TextAlign.Left, MinWidth = "10"},

                    new GridColumn {Field = "vchadjusted_amount", Width = "120", HeaderText = "Amount", TextAlign = TextAlign.Left, MinWidth = "10"},


                    }).Add();}).Aggregates(agg =>

                    {

                        agg.Columns(new List<GridAggregateColumn>() {

                    new GridAggregateColumn() {Field = "customername",Format ="N2" , Type = "Sum", FooterTemplate = "Total :" }

                    ,new GridAggregateColumn() {Field = "vchadjusted_amount",Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }


                    }).Add();

                    }).AllowResizing().Toolbar(new List<string>

                () { "ExcelExport", "CsvExport", "PdfExport" }).Render()


                        @Html.EJS().Grid("saledetailsttaxgst").EnablePersistence(false).Height("115").AllowReordering().AllowPdfExport().AllowExcelExport().PdfHeaderQueryCellInfo("PdfHeaderQueryCellInfo").PdfExportComplete("pdfExportComplete").ExcelExportComplete("excelExportComplete").ToolbarClick("taxgsttoolbarClick").Columns(col =>


                    {

                       col.HeaderText("Gst wise sale report").Columns(new List<GridColumn>()

                     {

                         new GridColumn {Field = "typesale", Width = "120", HeaderText = "BY TAXES", TextAlign = TextAlign.Left, MinWidth = "10"}

                         ,new GridColumn {Field = "vchgst_group", Width = "120", HeaderText = "DESCRIPTION", TextAlign = TextAlign.Left, MinWidth = "10"},

                         new GridColumn {Field = "taxable", Width = "120", HeaderText = "SALES", TextAlign = TextAlign.Right, MinWidth = "10"},

                         new GridColumn {Field = "cgst", Width = "120", HeaderText = "CGST", TextAlign = TextAlign.Right, MinWidth = "10"},

                         new GridColumn {Field = "sgst", Width = "120", HeaderText = "SGST", TextAlign = TextAlign.Right, MinWidth = "10"},

                         new GridColumn {Field = "igst", Width = "120", HeaderText = "IGST", TextAlign = TextAlign.Right, MinWidth = "10"},

                         new GridColumn {Field = "cessamount", Width = "120", HeaderText = "Cess", TextAlign = TextAlign.Right, MinWidth = "10"},

                         new GridColumn {Field = "billamount", Width = "120", HeaderText = "Net Sale", TextAlign = TextAlign.Right, MinWidth = "10"}


                     }).Add();



                    }).Aggregates(agg =>

                    {

                       agg.Columns(new List<GridAggregateColumn>() {

                                    new GridAggregateColumn() { Field = "vchgst_group", Type = "Sum", FooterTemplate = "Total :" },

                          new GridAggregateColumn() { Field = "taxable", Format ="N2" , Type = "Sum", FooterTemplate = " ${Sum}" }

                          ,new GridAggregateColumn() { Field = "cgst", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                          , new GridAggregateColumn() { Field = "sgst", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                          , new GridAggregateColumn() { Field = "igst", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                          , new GridAggregateColumn() { Field = "cessamount", Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }

                          , new GridAggregateColumn() { Field = "billamount", Type = "Sum", Format="N2",FooterTemplate = "${Sum}"}

                          }).Add();

                    }).AllowResizing().Toolbar(new List<string>

                () { "ExcelExport", "CsvExport", "PdfExport" }).Render()



                        @Html.EJS().Grid("saledetailsdaycredit").EnableVirtualization(true).EnablePersistence(false).AllowFiltering(false).AllowExcelExport().AllowPdfExport().Height("115").PdfHeaderQueryCellInfo("PdfHeaderQueryCellInfo").PdfExportComplete("pdfExportComplete").ExcelExportComplete("excelExportComplete").ToolbarClick("credittoolbarClick").Columns(col =>

                    {


                       col.HeaderText("Credit Issued").Columns(new List<GridColumn>()

                     {

                         new GridColumn {Field = "vchbilldate", Width = "120", HeaderText = "Bill Date", TextAlign = TextAlign.Left, MinWidth = "10"},

                         new GridColumn {Field = "vchbillno", Width = "120", HeaderText = "Bill No", TextAlign = TextAlign.Left, MinWidth = "10"},

                         new GridColumn {Field = "vchcustomer", Width = "120", HeaderText = "Customer", TextAlign = TextAlign.Left, MinWidth = "10"},

                         new GridColumn {Field = "vchcredit", Width = "120", HeaderText = "Credit", TextAlign = TextAlign.Left, MinWidth = "10"}


                     }).Add();

                    }).Aggregates(agg =>

                    {

                       agg.Columns(new List<GridAggregateColumn>() {

                     new GridAggregateColumn() {Field = "vchcustomer",Format ="N2" , Type = "Sum", FooterTemplate = "Total :" }

                     ,new GridAggregateColumn() {Field = "vchcredit",Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }


                    }).Add();

                        }).Toolbar(new List<string>

                () { "ExcelExport", "CsvExport", "PdfExport" }).AllowResizing().Render()



                        @Html.EJS().Grid("saledetailsdaysummary2").EnableVirtualization(true).EnablePersistence(false).AllowFiltering(false).AllowPdfExport().AllowExcelExport().Height("115").PdfHeaderQueryCellInfo("PdfHeaderQueryCellInfo").PdfExportComplete("pdfExportComplete").ExcelExportComplete("excelExportComplete").ToolbarClick("summary2toolbarClick").Columns(col =>

                    {


                    col.HeaderText("CURRENCY DETAIL").Columns(new List<GridColumn>()

                       {

                           new GridColumn {Field = "typesale", Width = "120", HeaderText = "BY MODES", TextAlign = TextAlign.Left, MinWidth = "10"},


                       }).Add();

                    col.HeaderText("").TextAlign(TextAlign.Center).Columns(new List<GridColumn>()

                       {

                        new GridColumn {Field = "indicatorname", Width = "120", HeaderText = "", TextAlign = TextAlign.Left, MinWidth = "10"},

                        new GridColumn {Field = "typesale1", Width = "120", HeaderText = "", TextAlign = TextAlign.Left, MinWidth = "10"},

                        new GridColumn {Field = "typesale1", Width = "120", HeaderText = "", TextAlign = TextAlign.Left, MinWidth = "10"},

                        new GridColumn {Field = "typesale1", Width = "120", HeaderText = "", TextAlign = TextAlign.Left, MinWidth = "10"},

                        new GridColumn {Field = "typesale1", Width = "120", HeaderText = "", TextAlign = TextAlign.Left, MinWidth = "10"},

                        new GridColumn {Field = "typesale1", Width = "120", HeaderText = "", TextAlign = TextAlign.Left, MinWidth = "10"},


                       }).Add();

                    col.HeaderText("Value").TextAlign(TextAlign.Center).Columns(new List<GridColumn>()

                       {

                           new GridColumn {Field = "indicatorvalue", Width = "120", HeaderText = " ", TextAlign = TextAlign.Left, MinWidth = "10"},


                       }).Add();


                    }).Aggregates(agg =>

                    {

                    agg.Columns(new List<GridAggregateColumn>() {

                       new GridAggregateColumn() {Field = "typesale",Format ="N2" , Type = "Sum", FooterTemplate = "NET SALES BY MODE :" }

                       ,new GridAggregateColumn() {Field = "indicatorvalue",Format ="N2" , Type = "Sum", FooterTemplate = "${Sum}" }


                    }).Add();

                    }).AllowResizing().Toolbar(new List<string>

                () { "ExcelExport", "CsvExport", "PdfExport" }).Render()


jquery



function customPDF() {

        // create a new PDF document

        let pdfDocument = new ej.pdfexport.PdfDocument();


        // set the page size

        pdfDocument.pageSettings.size = { height: 842, width: 595 }; // a4 size


        // set the page orientation - ( Portrait: 0, Landscape: 1 )

        pdfDocument.pageSettings.orientation = 1;


        // add a page

        let page = pdfDocument.pages.add();


        // set the font

        let font = new ej.pdfexport.PdfStandardFont(2, 10);

        let hfont = new ej.pdfexport.PdfStandardFont(2, 13); // font style for headers

        // create black brush

        let brush = new ej.pdfexport.PdfSolidBrush(new ej.pdfexport.PdfColor(0, 0, 0));

        let bounds = new ej.pdfexport.RectangleF(

            0,

            0,

            pdfDocument.pageSettings.getActualSize().width,

            50

        );

        let header = new ej.pdfexport.PdfPageTemplateElement(bounds);


        header.graphics.drawString(

            'Header Text',

            hfont,

            null,

            brush,

            0,

            new ej.pdfexport.RectangleF(

                new ej.pdfexport.PointF(0, 0),

                new ej.pdfexport.SizeF(100, 50)

            ),

            null

        );

        //Add the header at the top.

       // pdfDocument.template.top = header;


        var totalGrid = document.getElementsByClassName('e-grid');

        for (var g = 0; g < totalGrid.length; g++) {

            var gridI = totalGrid[g].ej2_instances[0];

            // create a PdfGrid

            let pdfGrid = new ej.pdfexport.PdfGrid();

            // add columns

            var columns = gridI.getColumns();

            pdfGrid.columns.add(columns.length);


            // add headers

            var headers = gridI.columns;

            var secondLevelHeader = [];

            var firstLevelHeader = [];

            for (var s = 0; s < headers.length; s++) {

                firstLevelHeader.push(headers[s].headerText)

                if (headers[s].columns) {

                    var stackedHeader = true; // enable the stackedHeader flag variable if the grid have stacked header.

                    for (var k = 0; k < headers[s].columns.length; k++) {

                        secondLevelHeader.push(headers[s].columns[k].headerText)

                    }

                }

            }

            if (stackedHeader) {

                pdfGrid.headers.add(2);

            } else {

                pdfGrid.headers.add(1);

            }

            var secondLevelHeaderOrder = [];

            for (var h = 0; h < pdfGrid.headers.rows.length; h++) {

                if (h == 0) {

                    let pdfGridHeader1 = pdfGrid.headers.getHeader(h);

                    var firstLevelHeaderOrder = 0;

                    for (var n = 0; n < firstLevelHeader.length; n++) {

                        if (headers[n].columns) {

                            var columnSpanLength = headers[n].columns.length;

                            let secondLevelHeaderOrderIndex = firstLevelHeaderOrder;

                            for (var t = 0; t < columnSpanLength; t++) {

                                secondLevelHeaderOrder.push(secondLevelHeaderOrderIndex + t);

                            }

                            pdfGridHeader1.cells.getCell(firstLevelHeaderOrder).value = firstLevelHeader[n];

                            //Applye header cell font style

                            pdfGridHeader1.cells.getCell(firstLevelHeaderOrder).style.font = hfont

                            //Apply column span for first level stacked header

                            pdfGridHeader1.cells.getCell(firstLevelHeaderOrder).columnSpan = columnSpanLength;

                            firstLevelHeaderOrder = firstLevelHeaderOrder + columnSpanLength

                        } else if (stackedHeader) {

                            pdfGridHeader1.cells.getCell(firstLevelHeaderOrder).value = firstLevelHeader[n];

                            //Applye header cell font style

                            pdfGridHeader1.cells.getCell(firstLevelHeaderOrder).style.font = hfont

                            //Apply row span for first level normal header if grid have stacked header

                            pdfGridHeader1.cells.getCell(firstLevelHeaderOrder).rowSpan = 2;

                            firstLevelHeaderOrder = firstLevelHeaderOrder + 1

                        } else {

                            pdfGridHeader1.cells.getCell(n).value = firstLevelHeader[n];

                            //Applye header cell font style

                            pdfGridHeader1.cells.getCell(n).style.font = hfont

                        }


                    }


                } else {

                    let pdfGridHeader2 = pdfGrid.headers.getHeader(h);

                    for (var st = 0; st < secondLevelHeader.length; st++) {

                        pdfGridHeader2.cells.getCell(secondLevelHeaderOrder[st]).value = secondLevelHeader[st];

                        //Applye header cell font style

                        pdfGridHeader2.cells.getCell(secondLevelHeaderOrder[st]).style.font = hfont

                    }

                }

            }

            stackedHeader = false

            // add rows

            var data = gridI.dataSource;

            for (let i = 0; i < data.length; i++) {

                let pdfGridRow = pdfGrid.rows.addRow();

                for (let j = 0; j < columns.length; j++) {

                    var field = columns[j].field;

                    if (field) {

                        pdfGridRow.cells.getCell(j).value = data[i][field].toString();

                    }


                }

            }

            //add aggregates rows

            if (gridI.aggregates.length > 0) {

                debugger

                if (gridI.aggregateModule.footerRenderer.contentTable) {

                    var aggregateRows = gridI.aggregateModule.footerRenderer.contentTable.rows;

                    for (let r = 0; r < aggregateRows.length; r++) {

                        let pdfGridRow = pdfGrid.rows.addRow();

                        for (let c = 0; c < columns.length; c++) {

                            var aggregateCellValue = aggregateRows[r].cells[c].innerText;

                            pdfGridRow.cells.getCell(c).value = aggregateCellValue;

                        }

                    }

                }

            }


            if (g == 0) {

                // drawing a grid

                var gridResult = pdfGrid.draw(

                    page,

                    new ej.pdfexport.PointF(0, 0)

                );

            } else {

                let layoutFormat = new ej.pdfexport.PdfGridLayoutFormat();

                layoutFormat.layout = 0; //PdfLayoutType.Paginate;

                layoutFormat.break = 0; //PdfLayoutBreakType.FitPage;

                // drawing a grid based on PdfGridLayoutResult value

                gridResult = pdfGrid.draw(

                    gridResult.page,

                    new ej.pdfexport.PointF(

                        0,

                        gridResult.bounds.y + gridResult.bounds.height + 30

                    ),

                    layoutFormat

                );

            }

        }

        //Save the document.

        pdfDocument.save('Salesummary.pdf');

        pdfDocument.destroy();

    }


Attachment: Salesummary_(19)_719d28f9.zip

1 Reply

PG Praveenkumar Gajendiran Syncfusion Team July 6, 2021 12:22 PM UTC

Hi Akshit,

We validated your reported scenario and we can reproduce the reported behavior at our end. We have confirmed this is an issue from our side and logged a bug for the same as “The PDF’s layout result is not working properly with grid pagination”. At Syncfusion, we are committed to fixing all validated defects (subject to technical feasibility and Product Development Life Cycle ) and will include the defect fix in our upcoming patch release which will be rolled out on July 28, 2021.  
    
You can now track the current status of your request, review the proposed resolution timeline, and contact us for any further inquiries through this link.    
    
Regards,  
Praveenkumar G 


Loader.
Up arrow icon