使用 DinkToPdf 分隔分页符 [英] Separating Page Breaks with DinkToPdf

查看:45
本文介绍了使用 DinkToPdf 分隔分页符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的 Program.cs 中有这个 C#:

I have this C# in my Program.cs:

    var page = "plain";

    var slnpath = $@"{Directory.GetCurrentDirectory()}\..\..\..\..";
    var htmlpath = $@"{slnpath}\HtmlTemplates\{page}.html";
    var pdfpath = $@"{slnpath}\PdfFiles\{page}.pdf";
    var dllpath = $@"{slnpath}\DinkNative64bit\libwkhtmltox.dll";

    var html = new StringBuilder(File.ReadAllText(htmlpath));

    var _converter = new SynchronizedConverter(new PdfTools());

    var context = new CustomAssemblyLoadContext().LoadUnmanagedLibrary(dllpath);

    var globalSettings = new GlobalSettings
    {
        ColorMode = ColorMode.Color,
        Orientation = Orientation.Portrait,
        PaperSize = PaperKind.A4,
        Margins = new MarginSettings { Top = 10 },
        DocumentTitle = "PDF Report",
        //Out = @"D:\PDFCreator\Employee_Report.pdf"  USE THIS PROPERTY TO SAVE PDF TO A PROVIDED LOCATION
    };

    var objectSettings = new ObjectSettings
    {
        PagesCount = true,
        HtmlContent = html.ToString(),
        //Page = "https://code-maze.com/", USE THIS PROPERTY TO GENERATE PDF CONTENT FROM AN HTML PAGE
        WebSettings = { DefaultEncoding = "utf-8" }, //, UserStyleSheet = Path.Combine(Directory.GetCurrentDirectory(), "assets", "styles.css") },
        HeaderSettings = { FontName = "Arial", FontSize = 9, Right = "Page [page] of [toPage]", Line = true },
        FooterSettings = { FontName = "Arial", FontSize = 9, Line = true, Center = "Report Footer" },

    };

    var pdf = new HtmlToPdfDocument()
    {
        GlobalSettings = globalSettings,
        Objects = { objectSettings }
    };

    //_converter.Convert(pdf); IF WE USE Out PROPERTY IN THE GlobalSettings CLASS, THIS IS ENOUGH FOR CONVERSION

    var file = _converter.Convert(pdf);

    File.WriteAllBytes(pdfpath, file);

我有我有这个 HTML 文件(太大,无法粘贴在这里).

And I have this HTML file I have (too big to paste here).

生成的PDF基本没问题,但在第 3 页上,分页符不正确.较大的内容与之前的内容相反 - 我猜是因为它不适合下一页.

The generated PDF is mostly fine, but on Page 3 the page break is not correct. The larger content buts up against the previous content - I assume because it will not fit into the following page.

如何让每个带有 page 类的 DIV 从一个新页面开始?

How can every DIV with the page class be made to begin on a new page?

推荐答案

如果你想在每一页后添加一个分页符,在你的页面类:

If you want to add a page break after every page, add this in your page class:

page-break-after: always;

这篇关于使用 DinkToPdf 分隔分页符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆