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

如何使用Aspose.HTML在HTML转PDF中添加资源文件夹内的TTF字体?

在Aspose.HTML转换HTML到PDF时添加自定义TTF字体的解决方案

我来帮你搞定这个问题!Aspose.HTML确实支持加载自定义字体,但需要通过FontsSettings来配置字体源,下面是具体的实现步骤和代码示例:

核心思路

Aspose.HTML在渲染PDF时默认会使用系统字体,要加载你资源文件夹中的TTF字体,需要通过FontsSettings添加自定义字体源(可以是单个字体文件或整个字体目录),同时在HTML中通过@font-face正确引用字体。

具体实现步骤

1. 配置字体源

你可以选择加载整个字体目录或者单个TTF文件,两种方式的代码如下:

方式一:加载整个字体目录

如果你的资源文件夹下有多个TTF字体,推荐用这种方式:

string dataDir = RunExamples.GetDataDir_Data();
string SimpleStyledFilePath = dataDir + "FirstFile.html";
// 你的字体资源目录路径,比如资源文件夹下的Fonts子目录
string fontsResourceDir = dataDir + "Fonts/";

// 创建PDF渲染选项并配置字体设置
var pdfOptions = new PdfRenderingOptions();
// 添加字体目录作为字体源,第二个参数true表示递归搜索子目录中的字体
pdfOptions.FontsSettings.FontSources = new FontSource[]
{
    new FolderFontSource(fontsResourceDir, true)
};

// 加载HTML文档
using var htmlDocument = new HTMLDocument(SimpleStyledFilePath);

// 执行HTML到PDF的转换
Converter.ConvertHTML(htmlDocument, pdfOptions, dataDir + "Output_WithCustomFont.pdf");

方式二:加载单个TTF字体文件

如果只需要加载特定的某个TTF字体:

string dataDir = RunExamples.GetDataDir_Data();
string SimpleStyledFilePath = dataDir + "FirstFile.html";
// 单个TTF字体文件的路径
string customFontPath = dataDir + "MyCustomFont.ttf";

var pdfOptions = new PdfRenderingOptions();
pdfOptions.FontsSettings.FontSources = new FontSource[]
{
    new FileFontSource(customFontPath)
};

using var htmlDocument = new HTMLDocument(SimpleStyledFilePath);
Converter.ConvertHTML(htmlDocument, pdfOptions, dataDir + "Output_WithSingleFont.pdf");

2. 在HTML中引用自定义字体

确保你的HTML文件中通过@font-face声明字体,并在样式中使用:

<!DOCTYPE html>
<html>
<head>
    <style>
        @font-face {
            font-family: 'MyCustomFont';
            src: url('MyCustomFont.ttf') format('truetype');
            /* 可选:添加字体的其他属性,比如font-weight、font-style */
        }
        body {
            font-family: 'MyCustomFont', Arial, sans-serif;
        }
    </style>
</head>
<body>
    <p>这段文本会使用你的自定义TTF字体渲染!</p>
</body>
</html>

注意事项

  • 确保字体文件路径正确,Aspose.HTML会根据你设置的字体源路径去查找字体文件
  • 如果HTML中的@font-face里的字体文件名和实际TTF文件名一致,Aspose.HTML会优先使用你配置的自定义字体
  • 如果你不想在HTML中写@font-face,也可以通过配置让Aspose.HTML自动匹配字体名称,但推荐显式声明更可靠

内容的提问来源于stack exchange,提问作者Namdeo Karande

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:34:07