В настоящее время я пытаюсь сохранить PDF-файл для веб-приложения со многими страницами. Я вызываю частичные представления на одну главную страницу и использую KendoUI для сохранения DOM в PDF. Поскольку некоторые из этих страниц очень длинные и меняются в зависимости от пользовательского ввода, мне нужно, чтобы данные отображались на нескольких страницах. Всякий раз, когда forcePageBreak не вызывается, KendoUI естественным образом делает это, отображая все данные на нескольких страницах. Хотя, когда я включаю forcePageBreak и устанавливаю разрывы страниц в начале каждого партиала на главной странице, каждый партиал будет отображать только одну страницу в pdf, а остальные данные обрезаются.
Вот пример кода главной страницы:
<div class="myCanvas" id="myCanvas">
<div class="page-break">@{Html.RenderPartial("_Page1", Model._VM_Page1);}</div>
<div class="page-break">@{Html.RenderPartial("_Page2", Model._VM_Page2);}</div>
<div class="page-break">@{Html.RenderPartial("_Page3", Model._VM_Page3);}</div>
<div class="page-break">@{Html.RenderPartial("_Page4", Model._VM_Page4);}</div>
<div class="page-break">@{Html.RenderPartial("_Page5", Model._VM_Page5);}</div>
<div class="page-break">@{Html.RenderPartial("_Page6", Model._VM_Page6);}</div>
</div>
<script>
function ExportPdf() {
kendo.drawing
.drawDOM("#myCanvas",
{
forcePageBreak: ".page-break",
paperSize: "A4",
margin: { top: "1cm", bottom: "1cm" },
scale: 0.6,
height: 500,
multiPage: true
})
.then(function (group) {
kendo.drawing.pdf.saveAs(group, "exportFile.pdf");
});
}
I've tried putting page breaks within the beginning of each partial, to no avail. I've looked into trying to set groups, but I'm not exactly sure I understand if that will solve my problem. And CSS page-break-before: always isn't working. I'm unsure what to do.