我具有创建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的任何建议?
答案 0 :(得分:0)
尝试在转换之前添加延迟以允许下载字体文件:
// specify the number of seconds the conversion is delayed
converter.Options.MinPageLoadTime = 2;