1

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

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

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

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

问题是标题,标题必须使用转换器创建。我尝试按照官方网站https://selectpdf.com/demo/html-to-pdf-headers-and-footers.aspx提供的示例但是我被以下代码卡住了,它不能简单地修复通过添加一些参考? 在此处输入图像描述

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

4

2 回答 2

1

您正在使用 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();
于 2020-11-19T16:05:52.497 回答
1

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

于 2020-11-26T03:35:19.773 回答