Есть ли возможность для jsAutotable продолжить на новой странице после превышения определенного значения Y? - PullRequest
0 голосов
/ 11 июля 2019

Я создаю PDF-файл с несколькими таблицами в нем, а также он имеет логотип в нижней части страницы. Проблема в том, что мой стол закрывает логотип, если он слишком длинный. Можно ли нарисовать несколько строк на другой странице, если таблица превышает некоторую точку Y?

const tableBody = [
    ['column1', 'column2'],
    ['column1', 'column2'],
    ['column1', 'column2'],
            // some more rows to fill the page
];    

doc.autoTable({
                    startY: currentY,
                    head: [['1', '2']],
                    margin: { left: 8, right: 8 },
                    body: tableBody,
                    styles: { font: 'roboto', halign: 'left' },
                    headStyles: { fontStyle: 'roboto', fillColor: COLORS.BASIC },
                    columnStyles: {
                        0: { cellWidth: 10 },
                        1: { cellWidth: 150 },
                    },
                });

Ожидаемый результат - показать изображение и продолжить таблицу на другой странице.

Вот как это выглядит сейчас: https://i.imgur.com/IR89VjM.png но я хочу, чтобы последние две строки на первой странице, покрывающие логотип, были перемещены на следующую страницу.

1 Ответ

0 голосов
/ 11 июля 2019

Это можно сделать, добавив нижнее поле к настройкам autoTable (значение будет соответствовать totalPageHeight - logoPositionY).

CAVEAT : если таблица перебирает несколько страниц,поле будет применяться ко всем страницам (но можно предположить, что на каждой странице будет логотип, в этом случае это скорее преимущество, чем проблема).

doc.autoTable({
    startY: currentY,
    head: [['1', '2']],
    margin: { left: 8, right: 8, bottom: yourValue },
    //etc
});

дополнительная подсказка : выможно использовать настройку rowPageBreak: 'avoid', для предотвращения разделения строки по страницам, когда ячейки имеют разную высоту.

...