使用SelectPDF时使用外部CSS

时间:2019-05-12 17:21:41

标签: selectpdf

我具有创建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的任何建议?

1 个答案:

答案 0 :(得分:0)

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

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