You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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目录
  • 步骤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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:55:29