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

Gradle插件AsciidoctorPdf:如何扩展字体搜索路径

问题描述

使用Gradle结合AsciidoctorJVM PDF插件将Asciidoctor文件转换为PDF时,自定义了继承默认主题的PDF主题(默认主题依赖捆绑的Noto Serif字体),并通过setFontsDirs(listOf("fonts"))指定了存放EB Garamond自定义字体的目录。构建时出现找不到notoserif-regular-subset.ttf的错误,原因是setFontsDirs会直接覆盖默认的字体搜索路径,导致插件无法找到捆绑的Noto Serif字体。需要在保留默认捆绑字体搜索路径的同时,添加自定义字体目录。

解决方案

不要使用setFontsDirs方法直接覆盖字体目录列表,而是通过追加自定义目录到默认搜索路径的方式来实现。通过fontsDirs属性的plus方法,将自定义目录添加到已有的默认路径集合中,既保留插件自带的捆绑字体路径,又加入自定义字体的搜索目录。

修改后的配置

修改build.gradle.kts中的asciidoctorPdf任务配置:

tasks.asciidoctorPdf {
    dependsOn("asciidoctor")

    // 替换setFontsDirs,改为追加自定义目录到默认路径
    fontsDirs = fontsDirs.plus(file("fonts"))
    setTheme("play-book")
}

其他配置(pdfThemes、tasks.build以及settings.gradle.kts、play-book-theme.yml)保持不变即可。

原理说明
  • fontsDirs属性默认包含插件捆绑字体的搜索路径,使用plus方法可在原有路径基础上添加新目录,而非直接覆盖。
  • 主题配置中的merge: true已确保自定义字体目录与默认字体目录的字体列表合并,配合修改后的字体路径设置,插件就能同时找到捆绑的Noto Serif字体和自定义的EB Garamond字体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 16:38:09