使用SelectPDF时的外部CSS

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (98)

我有以下功能,可以创建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。

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

提问于
用户回答回答于

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

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

扫码关注云+社区

领取腾讯云代金券