当前位置: 首页 > 知识库问答 >
问题:

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

贲招
2023-03-14

假设我正在使用Apache FOP创建一个PDF文件。PDF中的所有字符都应该是时代新罗马斜体。由于我的系统中没有这种字体,Apache FOP将尝试在 /data/fonts中查找字体,该字体由fop.xconf.设置

<directory>/data/fonts</directory>

但是, /data/fonts中只有一个文件,即时代新罗马Regular.ttf。是的,没有时代新罗马Italic.ttf,也没有时代新罗马Bold.ttf

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

在这种情况下,Apache FOP 报告说它找不到 Times New Roman 斜体字体,它回退到默认字体,该字体不是 Times New Roman 也不是斜

我可以通过将< code > Times New Roman italic . TTF 放入/data/fonts中来解决这个问题,但是如果我没有该字体的特定斜体/粗体版本呢?AFAIK有些字体根本没有特定的粗体/斜体版本。Apache FOP有可能从常规字体自动创建斜体/粗体样式吗,即使结果不如特定的斜体/粗体好?

共有1个答案

夏骞尧
2023-03-14

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

此示例将样式weight

<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>

注意,注册所有不同的< code>font-triplet元素很重要;如果您只有<代码>

 类似资料:
  • 我正在尝试使用这个文档https://developer . Android . com/guide/topics/ui/look-and-feel/Fonts-in-xml . html创建自定义字体系列,问题在于没有bold属性,我无法以编程方式在XML中设置字体?

  • 我正在尝试在itext 5中使用TextField。我的字体名是“微軟正黑體英文是“Microsoft JhengHei”。我想用粗体和黑色的字体。 初始化字体(3是字体。BOLD|字体。ITALIC和BC是我的基本颜色) 我有一个文本字段变量,并将fontZh设置为setFont。 pdf结果只有字体样式、大小和颜色是正确的。但这种大胆和不自然是行不通的。

  • 我在用一个工具自动生成CSS,它生成下面的@font-face标签和对应的段落Style 注意,指定的字体已经是Garamond字体的斜体版本,从技术上来说,< code>font-style:italic行是多余的。 然而,这并不奏效(我在FF、Chrome 所以,我有2个问题 > 为什么这不起作用,也就是说,为什么使用会导致它不起作用? 有没有办法通过javascript“覆盖”@font f

  • 问题内容: 如何使用CSS选择器加粗句子的第一个单词,就浏览器的可比性而言,这是一种好/坏方法吗? 码: 谢谢 问题答案: CSS中没有伪元素。您必须将第一个单词包装在一个额外的元素中,然后选择该元素。

  • 我使用irport 3.1.0,在从ireport生成预览时,所有样式(粗体、斜体)都可以工作,但在从web应用程序调用时,所有内容都以纯文本形式出现。

  • 在CSS中,通过 font-weight属性 用来设置字体的粗细值,取值为 lighter | normal | bold | bolder,默认为 normal。lighter 为细体,normal 为正常粗细,bold 为粗体,bolder 为特粗体。如: .lighter { font-weight: lighter;} .normal { font-weight: normal