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

在Apache FOP中,如何让自定义目录中的字体优先于系统字体?

耿珂
2023-03-14

我有一个XML配置,可以自动检测系统字体:

<fop version="1.0">
  <fonts>
    <auto-detect/>
  </fonts>
  <!-- ... -->
</fop>

我以编程方式配置自定义字体目录:

// ...
FopConfParser fopConfParser = new FopConfParser(configFileStream, environmentProfile);
FopFactoryBuilder fopFactoryBuilder = fopConfParser.getFopFactoryBuilder()
fopFactoryBuilder.getFontManager().setResourceResolver(ResourceResolverFactory.createDefaultInternalResourceResolver(fontDir.toURI()));

原则上,这是可行的。但是,如果系统字体目录和我的自定义目录中都有字体,则使用系统字体。这似乎是从FOP 1.x到2.x的行为变化。

有没有办法将自定义目录中的字体优先于系统字体?我知道这可以通过<code>嵌入url</code>来解决,但理想情况下我不想为每个字体显式地配置这一点。

共有1个答案

欧盛
2023-03-14

文件说明:

作为“目录”标签配置结果的字体会覆盖作为指定“自动检测”标签结果的字体。

因此,a

<fop version="1.0">
  <fonts>
    <directory>DYNAMIC_FONTDIR</directory>
    <auto-detect/>
  </fonts>
  <!-- ... -->
</fop>

为了扩展占位符,请按如下方式更改您提供的代码:

java prettyprint-override">String originalConfig = new String(configFileStream.readAllBytes(), StandardCharsets.UTF_8);
String adaptedConfig = originalConfig.replace("DYNAMIC_FONTDIR", fontDir.getAbsolutePath());
InputStream adaptedConfigStream = new ByteArrayInputStream(adaptedConfig.getBytes(StandardCharsets.UTF_8));

FopConfParser fopConfParser = new FopConfParser(adaptedConfigStream, environmentProfile);
// ...

 类似资料:
  • 我创建了一个TextView库项目,其中我使用了自定义字体。我必须创建这个库,因为这个也将在其他三个项目中使用。我发现android库项目不支持资产/字体文件夹。如果我以这种方式使用,它会给我错误消息 这里是否有解决此问题的方法。另外,我必须在三个不同的应用程序中使用重复视图。还有我用来从library assets文件夹中获取字体的示例代码。

  • 问题内容: 如何解决Java中自定义字体的问题? 例如,我的应用使用的字体并非在所有计算机上都使用。如果客户端计算机上不存在该文件,我可以以某种方式将其包含在已编译的可执行文件中,然后从那里调用它吗? 还有哪些其他选择?我可以将所有字体字符变成图像(之前在某些图形应用中),然后为每个字符显示图像…可以吗? 问题答案: 这是我用来从.ttf文件(可以捆绑)中加载字体文件的实用程序方法:

  • 我试图在Android Studio中使用自定义字体,就像我们在Eclipse中所做的那样。但不幸的是,无法弄清楚将“资产”文件夹放在哪里!

  • 我有以下fop.conf,在Windows下工作正常: 但是因为应用程序还需要在没有提供Arial的操作系统上运行,所以我决定在Java应用程序的< code > src/main/resources/fonts/Arial . TTF 中添加一个字体。 所以我试着这样引用字体: 但它不使用字体。 调试时,我看到fopFactoryBuilder有一个名为< code>baseUri的字段,是否可

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

  • 我正在使用IText7从html字符串生成pdf。现在,我需要对段落应用自定义颜色和自定义字体或字体系列。 如何使用Itext7实现这一点? 谢谢