pdfmake сгенерировать PDF из длинной таблицы HTML

Я использую pdfmake http://pdfmake.org/ для создания PDF-файла из таблицы HTML, и это очень мало плагин, но моя единственная проблема в том, что у меня очень очень длинная таблица, и она обрезается по ширине (см. снимок экрана ниже)

введите здесь описание изображения

Как работать с длинными таблицами? Это всего лишь одна из моих таблиц, некоторые из них длиннее, некоторые короче. Вот мой код:

var widths = [200];

        var bodies = [];

        $('#cost-matrix-table tr:nth-child(3) td').not(':first').each(function () {
            widths.push(100);
        });

        var rowCounter = 0;

        $('#cost-matrix-table tr').not(':nth-child(4)').each(function () {

            var data = [];

            var columnCounter = 0;

            $(this).find("td").each(function () {

                if ((rowCounter == 0 || rowCounter == 1) && columnCounter != 0) {
                    data.push({ text: $(this).text(), colSpan: 2, alignment: 'center' }, {});
                }
                else {
                    if (rowCounter == 2) {
                        if (columnCounter == 0) {
                            data.push({ text: $(this).text(), style: 'filledHeader' });
                        }
                        else {
                            data.push({ text: $(this).text(), style: 'filledHeader', alignment: 'center' });
                        }
                    }
                    else {
                        data.push($(this).text());
                    }
                }

                columnCounter++;

            });

            bodies.push(data);

            rowCounter++;

        });

        var docDefinition = {
            pageOrientation: 'landscape',
            pageMargins: [40, 100, 40, 50],
            pageSize: 'A0',
            header: { text: $("#dropdown").val(), alignment: 'center', decoration: 'underline', fontSize: 28, bold: true, margin: [40, 40, 0, 0] },
            content: [
              {
                  table: {
                      widths: widths,
                      body: bodies,
                      headerRows: 3,
                      pageBreak: 'before',
                      dontBreakRows: true,
                      fontSize: 28
                  }
              }
            ],
            styles: {
                filledHeader: {
                    color: 'white',
                    fillColor: 'black',
                }
            }
        };

        pdfMake.createPdf(docDefinition).download('CostMatrix-' + $("#dropdown").val().replace(/\s/g, '') + '.pdf');

У меня мой pageSize установлен на A0, но он все равно обрезается ... Высота идеальна, только ширина обрезается, пожалуйста, помогите! Я могу установить ширину и высоту страницы, но я понятия не имею, что это делать. В моей таблице 45 столбцов с шириной 100 на столбец, за исключением первого, который равен 200, всего 4600.


person user979331    schedule 04.01.2018    source источник


Ответы (1)


Если поля - не вариант или решение, как насчет стиля мелкого шрифта?

styles: {
    // FONT SIZE

    // SIZE 8
    font_xs: { fontSize: 8 },
    // SIZE 10
    font_sm: { fontSize: 10 },
    // SIZE 12
    font_md: { fontSize: 12 },
    // SIZE 14
    font_lg: { fontSize: 14 },
    // SIZE 16
    font_xl: { fontSize: 16 }

}

Используйте как это

{
    text: 'td 0',
    style: ['font_sm']
}
person suchislife    schedule 21.01.2018
comment
Что касается других новостей, то я просто поражаюсь, что у вас 7 репутации и 7 золотых значков. Вот это да. - person suchislife; 06.03.2018