Kendo Grid MVC игнорирует размер страницы при экспорте в PDF - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь изменить размер страницы при экспорте, но он не работает. Я полагаю, что кендо пытается автоматически подогнать содержимое страницы, но оно переполняет страницу.

Это мой создатель таблицы:

@(Html.Kendo().Grid(Model)
            .Name("collectGrid")
              .Pdf(pdf => pdf
                  .AllPages()
                  .AvoidLinks()
                  .PaperSize("A4")
                  .Scale(0.5)
                  .Margin("2cm", "1cm", "2cm", "1cm")
                  .RepeatHeaders()
                  .FileName("file.pdf")
                  .ProxyURL(Url.Action("Pdf_Export_Save", "Grid"))
                  .TemplateId("page-template")
              )
            .Scrollable(s => s.Height("calc( 100vh - 380px )"))
            .Columns(columns =>
            {
                columns.Bound(m => m.BlockName).Width(270); ;
                columns.Bound(m => m.SectionName).Width(50).Title("Satznr.");
                columns.Bound(m => m.ProductName).Width(100);
                columns.Bound(m => m.Seed).Format("{0:dd.MM.yyyy}").Width(60).Title("Aussaat");
                columns.Bound(m => m.SurfaceMeters).ClientTemplate("#=formatSurface(SurfaceMeters)#").ClientFooterTemplate("#= formatSurface(sum) #").Width(60).Title("Fläche");
            })
            .ToolBar(t=>t.Pdf())
            .Pageable()
            .Sortable()
            .Events(e=>e.PdfExport("exportPdf"))
            .DataSource(dataSource => dataSource
                .Ajax()
                .ServerOperation(false)
                .PageSize(SystemServiceProvider.Get().FullPageTablePageSize())
                .Events(events => events.Error("gridErrorHandler"))
                .Sort(s => s.Add(m => m.Seed).Ascending())
                .Aggregates(a =>
                {
                    a.Add(m => m.SurfaceMeters).Sum();
                    a.Add(m => m.UnitsSeeded).Sum();
                })
                .Model(model =>
                {
                    model.Id(p => p.Id);
                })
                .Read(read => read.Action("Read", "CollectReport", new { area = "Fields", CultivationCategory=ViewBag.CultivationCategory }).Data("getCriteria"))
            ).HtmlAttributes(new{style="margin-top:10px"})
  )

Эта функция вызывается при экспорте (я вижу, как она изменяет размер страницы в процессе экспорта)

    function exportPdf(e) {
    e.sender.dataSource.pageSize(10);
    e.promise.done(function() {
        e.sender.dataSource.pageSize(@SystemServiceProvider.Get().FullPageTablePageSize());
    });
}

И я перезаписываю шрифт в pdf

    .k-pdf-export {
    font-family: "Arial", sans-serif;
    font-size: 19px;
}

Цель - это содержание в формате A4. Не имеет значения, если это с автоматическим разрывом страницы или вручную.

...