Syncfusion HTML转PDF:如何将谷歌字体用于页码设置
解决Syncfusion HTML转PDF中用谷歌字体设置页码的问题
由于后续绘制页码时无法直接复用HTML中加载的在线谷歌字体,你需要先将目标谷歌字体文件下载到本地,再通过Syncfusion的PdfTrueTypeFont类加载使用,具体操作步骤如下:
步骤1:下载谷歌字体文件
找到你需要的谷歌字体(比如Roboto、Montserrat),从谷歌字体官网下载对应字体包(ZIP格式),解压后提取出所需的字体文件(通常是TTF/OTF格式,如Roboto-Regular.ttf)。步骤2:部署字体文件到项目
将提取的字体文件放到项目的合适目录:- .NET Framework项目可放到
App_Data文件夹 - .NET Core/.NET 5+项目可放到
wwwroot/fonts或Resources/Fonts目录
- .NET Framework项目可放到
步骤3:加载字体并绘制页码
根据项目类型获取字体文件路径,实例化字体对象后,在绘制页码时指定该字体:.NET Framework 示例代码
// 获取字体文件路径 string fontPath = Server.MapPath("/App_Data/Roboto-Regular.ttf"); // 初始化谷歌字体对象 PdfFont googleFont = new PdfTrueTypeFont(fontPath, 12f); // 绘制页码(需结合你的PDF文档对象调整坐标和内容) PdfPage page = document.Pages.Add(); PdfGraphics graphics = page.Graphics; float pageNumX = page.GetClientSize().Width - 100; float pageNumY = page.GetClientSize().Height - 20; graphics.DrawString($"Page {page.Number} of {document.Pages.Count}", googleFont, PdfBrushes.Black, new PointF(pageNumX, pageNumY));.NET Core 示例代码
需要注入
IWebHostEnvironment来获取项目根路径:private readonly IWebHostEnvironment _webHostEnv; public YourController(IWebHostEnvironment webHostEnv) { _webHostEnv = webHostEnv; } // 在PDF生成方法中 string fontPath = Path.Combine(_webHostEnv.ContentRootPath, "Resources/Fonts/Roboto-Regular.ttf"); PdfFont googleFont = new PdfTrueTypeFont(fontPath, 12f); // 绘制页码逻辑同上述.NET Framework示例注意事项
- 确保字体文件路径配置正确,避免因路径错误导致字体加载失败
- 若需要不同字重(如Bold、Italic),选择对应字体文件即可
内容的提问来源于stack exchange,提问作者S.Mac
相关产品推荐
相关产品推荐

