【发布时间】:2017-12-20 11:23:23
【问题描述】:
我正在使用 .net 包装器“NReco.PdfGenerator”在 azure Web 应用程序(以标准计划运行)上的 wkhtmltopdf 将 html 文件转换为 pdf,但不能在我的文档中包含自定义字体。 PDF 生成器不会加载自定义字体,或者只是忽略它。 我尝试了不同的格式来包含字体文件,例如指向 google 字体 css 的链接、从 google 字体导入、相对本地路径、绝对本地路径、通过 localhost 加载字体文件和使用 base64 编码字体的字体:
@@font-face {
font-family: 'testfont';
src: url(data:application/x-font-woff;charset=utf-8;base64,...) format('woff');
font-weight: normal;
font-style: normal;
}
使用:
font-family: 'testfont';
@@ 因为我使用的是剃刀视图。将生成的 HTML 保存到文件时,它看起来很好,并且在浏览器 (chrome) 中打开时工作正常。
生成 PDF:
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
return htmlToPdf.GeneratePdf(html);
我还从 font-family 声明中删除了备用字体。 我尝试了与 wkhtmltopdf 不同的版本,但没有运气。 生成器可以很好地处理来自本地主机的图像。
在我的 Windows 机器上运行相同的 asp.net 应用程序时,字体可以正常工作。
NReco 文档说“避免使用自定义字体”(在 azure web 应用程序环境中),这是否意味着没有机会让它运行?为什么不支持自定义字体?有什么解决办法吗?
感谢您的帮助。
【问题讨论】:
-
你试过在本地运行 wkhtmltopdf 吗?我以这种方式注册字体
src: url("../fonts/open-sans.ttf") format("truetype");,它对我有用 -
本地是什么意思?在我的 PC 本地 ASP.net 应用程序运行良好。
-
您是否在 azure 中将您的应用程序作为 webapp 运行?你也使用 nreco 包装器吗?
-
在您的 PC 中运行 wkhtmltopdf.exe,也许您认为它是 azure 或 nreco 而不是这样。
-
wkhtmltopdf 本身运行良好,它会生成我的 PDF,但在 azure 中运行时没有自定义字体。您的工具是否使用 nreco 在 azure 中运行并且字体已渲染?
标签: asp.net font-face wkhtmltopdf azure-web-app-service nreco