如何在 ASP.NET MVC 中使用另一个 cshtml 文件作为 SelectPDF header?

How to use another cshtml file as SelectPDF header in ASP.NET MVC?

这里有人在 ASP.NET MVC 项目中使用 SelectPDF 吗?我有两个文件,content.cshtml 和 header.cshtml。我想创建一张 header 实际上是 table 的发票,页码显示如下原型:

包含徽标和 table 的 header 模板已在 header.cshtml 中准备就绪。如果没有 header,我可以使用以下代码毫无问题地转换内容:

string html = await ViewToHtmlAsync("~/Views/content.cshtml");
SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
PdfDocument pdf = converter.ConvertHtmlString(html);

*ViewToHtmlAsync 是将整个 content.cshtml 文件转换为字符串的函数。

问题是 header,header 必须使用转换器创建。我尝试按照官方网站 https://selectpdf.com/demo/html-to-pdf-headers-and-footers.aspx 提供的示例进行操作,但我坚持使用以下代码,不能通过添加一些参考来简单地修复它吗?

我的问题是如何使用 selectPDF 创建 header 其模板来自另一个 cshtml 文件?如果是,那如何区分​​页码呢?

您正在使用 ASP.NET MVC 项目,但您引用的文档页面提供了 ASP.NET 项目的示例。

这是适用于 ASP.NET MVC 的代码示例:

        string html = ViewToHtmlAsync ("~/Views/content.cshtml");
        SelectPdf.HtmlToPdf converter = new SelectPdf.HtmlToPdf();
        PdfDocument pdf = converter.ConvertHtmlString(html);

        string headerHtml = ViewToHtmlAsync("~/Views/header.cshtml");

        var header = new PdfHtmlSection(headerHtml);
        header.AutoFitHeight = HtmlToPdfPageFitMode.AutoFit;
        converter.Header.Add(header);

        SelectPdf.PdfDocument doc = converter.ConvertHtmlString("YOUR PAGE CONTENT");
        SelectPdf.PdfPage page = doc.AddPage();

是的,SelectPDF 为我提供了正确答案。带一个参数的 ConvertHtmlString(string) 会假定它是 url,而不是 html 的字符串内容。改成两个参数ConvertHtmlString(string, string)解决问题。