Данные динамического div перекрываются с нижним колонтитулом PDF в jsPDF - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть div, который повторяется 13 раз, и динамические данные перекрываются нижним колонтитулом, а также выравнивание данных некорректно.Как сделать это правильно, используя jsPDF?

function exportTable($timeout, datacontext, $rootScope) {
    return {
        restrict: 'E',
        scope: {`enter code here
            elemId: '@'
        },
        template: '<button type="button" class="SubmitButton" id="SubmitButton" data-ng-click="exportToPdf()" style="margin-bottom: 50px;">Save as PDF</button>',
        link: function (scope, elem, attr) {
        scope.exportToPdf = function () {
            var logoImg = new Image();
            logoImg.src = "../Images/Logo.png";

            logoImg.onload = function () {
                var pdf = new jsPDF('p', 'pt', "a4"),
                    source = $('#CompanyName')[0],
                    source1 = $('#CompanyAddress')[0],
                    source2 = $('#PageHead')[0],
                    source3 = $('#note')[0],
                    source4 = $('#InfoReport')[0],
                    source5 = $('#Quesreport')[0],
                    source6 = $('#InfoReportbottom')[0];

                var totalPagesExp = "{total_pages_count_string}";
                var margin = {
                    top: 40,
                    bottom: 0,
                    left: 40,
                    right: 0
                };
                pdf.page = 1;

                function footer() {
                    pdf.setFontSize(8);
                    pdf.setTextColor(169, 169, 169);

                    pdf.addImage(logoImg, 'png', 460, 10);

                    pdf.text('Confidential - For internal use only', 35, pdf.internal.pageSize.height - 15);
                    pdf.text('______________________________________________________________________________________________________________________________', 45, pdf.internal.pageSize.height - 25);
                    var str = 'Page ' + pdf.page;
                    if (typeof pdf.putTotalPages === 'function') {
                        str = str + " of " + totalPagesExp;
                    }
                    pdf.page++;
                    pdf.text(str, 265, pdf.internal.pageSize.height - 15);
                }

                footer();

                pdf.fromHTML(source, margin.left, margin.top, { 'width': 500 });
                pdf.setFontSize(12);
                pdf.setTextColor(0, 0, 0);
                pdf.setFont('Times New Roman');
                pdf.text('Address,', 110, 120);
                pdf.text('Address', 145, 135);
                pdf.fromHTML()
                pdf.fromHTML(source2, margin.left, margin.top + 100, { 'width': 500, });
                pdf.fromHTML(source3, margin.left, margin.top + 125, { 'width': 500, });
                pdf.fromHTML(source4, margin.left, margin.top + 185, { 'width': 500, });

                var pageheight = pdf.internal.pageSize.height;

                pdf.fromHTML(source5, margin.left, margin.top + 350, { 'width': 500, 'height': 400, 'elementHandlers': specialElementHandlers(source5) });
                footer();

                function specialElementHandlers(element) {
                    return true;
                }

                pdf.fromHTML(source6, margin.left, margin.top + 900, { 'width': 500, 'elementHandlers': specialElementHandlers });

                if (typeof pdf.putTotalPages === 'function') {
                    pdf.putTotalPages(totalPagesExp);
                }

                pdf.save('Test' + '.PDF');
            }
        };
    }
}

}

Я получаю данные из HTML, используя идентификатор, и могу полностью получить данные в мой PDF, но «source5» содержит данные, полученные из динамического div.Длина данных div составляет более одной страницы, поэтому невозможно выровнять их должным образом, не накладывая их на нижний колонтитул.

Любая помощь приветствуется.

...