我正在尝试更改导出时的页面大小,但是它不起作用。我认为kendo会尝试自动调整页面中的内容,但是页面已溢出。
这是我的表格生成器:
@(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中的内容。是自动分页符还是手动分页都没关系。