кендо-сетка pdf - начало на второй странице - PullRequest
0 голосов
/ 22 марта 2019

Я хочу, чтобы первая страница моего экспорта в PDF была посвящена отображению всех фильтров, связанных с текущим состоянием сетки.Итак, я создал следующий шаблон:

<script type="x/kendo-template" id="pdf-page-template">
    <div class="page-template">
        # if(pageNum === 1) {#
        <div class="pdf-header container">
            <h1>Query</h1>
            <div class="row">
                <div class="pdf-filters col-sm-4">
                    <h3>Filters</h3>
                    <dl class="dl-horizontal">
                        #= getFilters() #
                    </dl>
                </div>
                <div class="pdf-columns col-sm-3">
                    <h3>Columns</h3>
                    <ol>
                        #= getColumns() #
                    </ol>
                </div>
                <div class="pdf-sorting col-sm-3">
                    <h3>Sorting</h3>
                    <ol>
                        #= getSorting() #
                    </ol>
                </div>
                <div class="pdf-grouping col-sm-2">
                    <h3>Grouping</h3>
                    <ol></ol>
                </div>
            </div>
        </div>
        #}#

        <div class="pdf-footer text-muted">
            # if(pageNum > 1) {#
            <h5 class="text-center">Page #= pageNum - 1 # of #= totalPages - 1 #</h5>
            #}#
        </div>
    </div>
</script>

Идея состоит в том, что он печатает .pdf-header на странице 1, а затем, начиная со страницы 2, печатает .pdf-footer с номерами страниц 1страница позади (поскольку она будет начинаться на странице 2, а не на странице 1).

С чем я сталкиваюсь, так это с тем, как настроить разрыв страницы так, чтобы он пропускал первую страницу вместе.Я попытался добавить .page-break к своему .pdf-header и затем использовать следующее событие dataBound:

dataBound: function () {
    $('.k-grid-pdf').on('click', function (event) {
        event.preventDefault()
        var progress = $.Deferred();
        _grid._drawPDF(progress)
            .then(function (root) {
                return kendo.drawing.exportPDF(root, {
                    forcePageBreak: '.page-break',
                    multiPage: true
                });
            })
            .done(function (dataURI) {
                kendo.saveAs({
                    dataURI: dataURI
                });
                progress.resolve();
            });
    });
}

Но это все равно начинает печатать сетку на странице 1. Так что мой вопрос к y 'все (просто для повторения вопроса): как мне заставить сетку начать печать на странице 2?

...