Colspan и Rowspan, используя пример AutoTable JSPDF - PullRequest
0 голосов
/ 21 сентября 2019

Я новичок в jsPDF, и я использую jsPDF AutoTable (https://github.com/simonbengtsson/jsPDF-AutoTable).. В моей таблице есть несколько заголовков таблиц с Rowspan и Colspan с вложенными строками. Когда я запускаю JSPDF с AUTOTABLE как ' False ', она печатает всю таблицу на А4, но ее компактность и половину страницы, которая не соответствует ожидаемому. Она должна полностью печататься на странице А4 с шириной в виде таблицы и на нескольких страницах с заголовком в качествеДата и нижний колонтитул как № страницы.

Вот JSFiddle для выпуска.

Вот что я пробовал:

//script to download as PDF 
 $('#reportpdf').click(function(){
    var children = $('#report tr.child').length;
    var visibleChildren = $('#report tr.child:visible').length;
       $('#report tr.child').show();
    var divToPrint=document.getElementById("report");   
            $('#report').tableExport({type:'pdf',
                                        fileName: 'Org_Status_Report',
                      jspdf: {orientation: 'p',
                       format: 'a4',
                               margins: {left:20, top:10},
                               autotable: false}
                      });
                  $('#report tr.child').hide();
                            });

Воткакой выходной сигнал я получаю:

выходной A4-страница первая половина

выходной A4-страница вторая половина

Когда я использовал AutoTable, таблица печатается без заголовка таблицы, т. Е. Отсутствуют первые два заголовка. Я не знаю, где проблема в моем коде. Пробовал каждый пример, упомянутый в Demo и Код

Вот код с AutoTable:

$('#reportpdf').click(function(){
    var children = $('#report tr.child').length;
    var visibleChildren = $('#report tr.child:visible').length;
        $('#report tr.child').show();
    var divToPrint=document.getElementById("report");
        $('#report').tableExport({type:'pdf',
                         fileName: 'Org_Status_Report',
                         //ignoreColumn: [4],
                       jspdf: {orientation: 'p',
                               format: 'a4',
                               margins: {left:20, top:20, botton:20, right:20},
                                autotable: {
                                      styles: {cellPadding: 2,
                                      fillColor: 'inherit',
                                      textColor: 'inherit',
                                      fontStyle: 'normal',
                                      overflow: 'ellipsize',
                                      halign: 'inherit',
                                      valign: 'middle'},
                              headerStyles: {
                                            halign: 'inherit',
                                            valign: 'middle'},
                              alternateRowStyles: {fillColor: 245}
                                }
                      }
        });
                              $('#report tr.child').hide();
                });

Воткакой вывод я получаю, когда использую Autotable:

Вывод как полная страница A4 с использованием AutoTable

Могут ли помочь какие-нибудь эксперты?

1 Ответ

0 голосов
/ 21 сентября 2019

Я использовал JSPDF для заполнения PDF-формы.У меня есть идея, может сработать, а может и нет.

Распечатайте вашу форму в PDF / затем конвертируйте ее в изображение формата base 64 и вставьте код вручную в свой JS.Затем используйте оси X, Y, чтобы разместить данные в нужном месте на базовом изображении 64.это может быть больно, но после некоторых корректировок это сработает.

...