我有下面的函数来创建一个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,有什么建议吗?
发布于 2019-05-13 13:15:31
尝试在转换前添加延迟以允许下载字体文件:
// specify the number of seconds the conversion is delayed
converter.Options.MinPageLoadTime = 2;
https://stackoverflow.com/questions/56101671
复制相似问题