有人知道在.net核心中加载jsreport时如何告诉它自定义字体吗?
无论如何,jsrport似乎都不会加载字体,并且没有关于如何在. net中加载字体的明确文档。
程式.cs:'
AddJsReport(new LocalReporting().UseBinary(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ?
jsreport.Binary.JsReportBinary.GetBinary() :
jsreport.Binary.Linux.JsReportBinary.GetBinary())
.KillRunningJsReportProcesses()
.AsUtility()
.Create());
Controller.cs:
HttpContext.JsReportFeature().Recipe(Recipe.ChromePdf)
.DebugLogsToResponse()
.Configure((r) =>
{
r.Options.Base = $"http://127.0.0.1:{HttpContext.Request.Host.Port??80}";
r.Template.Chrome = new Chrome
{
MarginTop = "0mm",
MarginLeft = "0mm",
MarginBottom = "0mm",
MarginRight = "0mm",
Format = "A4",
WaitForNetworkIddle = true,
};
});
`
css:
@font-face {
font-family: Athletics Regular;
src: url('fonts/Athletics/Athletics-Regular.otf');
}
`
2条答案
按热度按时间hvvq6cgz1#
字体请求可能被CORS阻止。
"如何找到答案"
通过您的应用程序呈现报表,然后在http://localhost:5488中打开jsreport v3 profiler,您可能会看到类似以下内容
如何解决
您可以为应用中的字体等静态资源启用CORS。这是标准.net core app config的一部分。
第二个解决方案是在jsrport打印pdf文件时使用的chrome中禁用CORS检查。
dgiusagp2#
显然,唯一的工作方式是首先创建jsreport文件夹,然后将资产添加到文件夹
中
然后将其添加到标头中,因为它似乎在.css文件中根本不起作用。
同样在启动时,我必须使用以下命令配置jsreport。配置(cfg =〉cfg.DoTrustUserCode().FileSystemStore())
最后,确保告诉.net将jsreport复制到输出文件夹。