gpt4 book ai didi

java - 如何在 Apache FOP 中自动创建斜体/粗体字体?

转载 作者:行者123 更新时间:2023-11-30 06:21:33 24 4
gpt4 key购买 nike

假设我正在使用 Apache FOP 创建 PDF 文件。 PDF 中的所有字符均应为 Times New Roman Italic。由于我的系统中没有这种字体,Apache FOP将尝试在/data/fonts中查找该字体,该字体由fop.xconf设置。

<directory>/data/fonts</directory>

但是,/data/fonts 中只有一个文件,即 Times New Roman Regular.ttf。是的,没有 Times New Roman Italic.ttf,也没有 Times New Roman Bold.ttf

ls /data/fonts 
'Times New Roman Regular.ttf'

在本例中,Apache FOP 报告找不到 Times New Roman Italic 字体,并回退到默认字体,该字体不是 Times New Roman > 也不是斜体。

我可以通过将 Times New Roman Italic.ttf 放入/data/fonts 来解决该问题,但如果我没有该字体的特定斜体/粗体版本怎么办?据我所知,有些字体根本没有特定的粗体/斜体版本。 Apache FOP 是否可以自动从常规字体创建斜体/粗体样式,即使结果不如特定的斜体/粗体字体?

最佳答案

如果您使用的是 FOP 2.2 版,有一个配置选项可以自动创建模拟斜体和粗体字形: simulate-style .

此示例映射 style 的四种组合和weight相同 TrueType 字体,在需要时加粗和倾斜字形:

<font kerning="yes" embed-url="Times.ttf" simulate-style="true">
<font-triplet name="Times" style="normal" weight="normal"/>
<font-triplet name="Times" style="italic" weight="normal"/>
<font-triplet name="Times" style="normal" weight="bold"/>
<font-triplet name="Times" style="italic" weight="bold"/>
</font>

请注意,注册所有不同的 font-triplet 非常重要元素;如果你只有<font-triplet name="Times" style="normal" weight="normal"/>字体替换机制将首先将粗体、斜体和粗斜体映射到注册的普通变体,然后 FOP 将模拟样式(不执行任何操作)。

关于java - 如何在 Apache FOP 中自动创建斜体/粗体字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48039612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com