首页 > 解决方案 > IText7 在 MVC 上设置外部样式表没有得到

问题描述

我是 ASP.NET MVC 和IText7库的新手。有一个问题,我想将 HTML 代码转换为 pdf,但外部 CSS 没有放在 html 代码上。我设置样式表并将其添加到 html 正文中,如方法中一样。

using Microsoft.AspNetCore.Mvc;
using System.Diagnostics;
using System.Drawing.Printing;
using System.IO;

[HttpPost]
public IActionResult GetPDF(string GridHtml)
{

    //var report = new ActionAsPdf("Index");
    //return report;
    using (MemoryStream stream = new MemoryStream())
    {
        string info = "<html>" +
            "<head>" +
            "<link href=\"https://fonts.googleapis.com/icon?family=Material+Icons\" rel=\"stylesheet\" >" +
            "<link rel=\"stylesheet\" href =\"./materialize/css/materialize.min.css\">" +
            "<link rel=\"stylesheet\" href=\"./css/site.css\" />" +
            " <link rel=\"stylesheet\" href=\"./css/layout.css\" />" +
            "<link rel=\"stylesheet\" href=\"./css/custom.css\" />" +
            "</head>" +
            "<body>";
        GridHtml = info + GridHtml + "</body> </html>";
Debug.WriteLine(GridHtml);
        PdfDocument pdfDocument = new PdfDocument(new PdfWriter(stream));
        pdfDocument.SetDefaultPageSize(PageSize.A4.Rotate());
        ConverterProperties converterProperties = new ConverterProperties();
        converterProperties.SetBaseUri("Content//wwwroot//");
        HtmlConverter.ConvertToPdf(GridHtml, pdfDocument, converterProperties);

        return File(stream.ToArray(), "application/pdf", "Grid.pdf");
    }
}

根据我的理解,有一条线 converterProperties.SetBaseUri("Content//wwwroot//");应该设置从哪里看的基础。但是添加这个不起作用。什么是正确的形式,因为我的 wwwroot 文件结构如图所示:

图片

标签: c#asp.net-mvcitext7

解决方案


推荐阅读