使用SelectPDF时外部CSS



我具有以下功能,该功能创建了html页面的PDF。

[Authorize]
public FileStreamResult PDFCV(int Id)
{
   var user = _userManager.GetUserAsync(User);
   HtmlToPdf converter = new HtmlToPdf();
   var BaseUrl = HttpContext.Request.Host;
   var Path = Url.Action("PreviewCv", "Cv", new { Id = Id });
   try
   {
       converter.Options.HttpCookies.Add(".AspNetCore.Identity.Application", HttpContext.Request.Cookies[".AspNetCore.Identity.Application"]);
   }
   catch (Exception e)
   {
      Console.WriteLine(e);
   }
   string url = "";
   try
   {
      url = BaseUrl + Path;
   }
   catch (Exception e)
   {
      Console.WriteLine(e);
   }
   try
   {
      PdfDocument doc = converter.ConvertUrl(url);
      var PdfArray = doc.Save();
      doc.Close();
      return new FileStreamResult(new MemoryStream(PdfArray), "application/pdf");
   }
   catch (Exception e)
   {
     Console.WriteLine(e);
   }
   return new FileStreamResult(new MemoryStream(), "application/pdf");
}

此功能使我可以获取HTML页面的PDF。

但是,似乎无法添加外部CSS。

我将其添加到HTML文件的头部。

<head>
   <link href="https://fonts.googleapis.com/css?family=Montserrat" 
</head>

直接访问页面"/pdfpreview"时,我会获得正确的CSS。

关于如何强制选择PDF使用正确的CSS的任何建议?

尝试在转换之前添加延迟,以允许字体文件下载:

// specify the number of seconds the conversion is delayed
converter.Options.MinPageLoadTime = 2;

i在select.pdf.netcore中使用的 ConvertUrl()方法,并得到错误的字体。当我切换到select.pdf.netcore.blink软件包时,我发现它开始工作。我必须添加以下行:

converter.Options.RenderingEngine = RenderingEngine.Blink;

相关内容

  • 没有找到相关文章

最新更新