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

Apache FOP|自定义字体|相对URL无效

解阳泽
2023-03-14

我有配置文件来加载Apache FOP的html" target="_blank">自定义字体。我正在努力在服务器上配置嵌入网址,以便字体网址根据服务器域而变化。

我尝试过嵌入url属性值为:

不工作的嵌入URL:

  • emed-url="上下文:/etc/设计/项目名称/clientlibs/pdffonts/Batang.ttf"
  • emed-url="文件:/etc/设计/项目名称/clientlibs/pdffonts/Batang.ttf"

工作嵌入url:

  • 嵌入url=“http://localhost:4503/etc/designs/projectName/clientlibs/pdffonts/Batang.ttf“”

不知何故,我似乎在这里找不到正确的语法。我正在将FOP与AEM 6.0一起使用。

<?xml version="1.0"?>
<fop version="1.0">
    <renderers>
        <renderer mime="application/pdf">
            <fonts>
                <font kerning="yes"
                    embed-url="context:/etc/designs/projectName/clientlibs/pdffonts/Batang.ttf" -- this doesn't
                    embedding-mode="subset">
                    <font-triplet name="SimSun" style="normal" weight="normal" />
                </font>
                <font kerning="yes"
                    embed-url="file:/etc/designs/projectName/clientlibs/pdffonts/Batang.ttf" -- this doesn't
                    embedding-mode="subset">
                    <font-triplet name="Batang" style="normal" weight="normal" />
                </font>
                <font kerning="yes"
                    embed-url="http://localhost:4503/etc/designs/projectName/clientlibs/pdffonts/Batang.ttf" -- this works
                    embedding-mode="subset">
                    <font-triplet name="Batang" style="normal" weight="normal" />
                </font>
            </fonts>
        </renderer>
    </renderers>
</fop>

共有3个答案

甘君之
2023-03-14

对于 FOP-2.1,https://issues.apache.org/jira/browse/FOP-2627 有一个“允许字体文件/目录的相对路径”的补丁。

屈博
2023-03-14

我通过从代码向应用程序添加完整路径来解决它。并从配置文件添加了后来的 patr。

fopFactory.setBaseURL(this.getServletContext().getInitParameter(“my_path”));

在配置中

embed-url=“fonts/newfont.ttf”

阎宾实
2023-03-14

相对路径的“起点”:

  • 如果配置文件具有font base元素(作为文档根元素的直接子元素),则其值用于解析相对字体路径
  • 否则,将使用base元素的值,而不是
  • 发行版中包含的默认配置文件具有元素<code>

请注意,font basebase的值也可以是相对的,在这种情况下,它们指的是配置文件路径。

<?xml version="1.0"?>
<fop version="1.0">

  <base>.</base>

  <font-base>/Users/lfurini/Library/Fonts</font-base>
  <!-- other possible examples:
  <font-base>.</font-base>
  <font-base>../fonts</font-base>
  --> 

  <!-- ... -->
</fop>

相对路径语法:

>

  • 您不需要上下文:文件:
  • 如果嵌入url/开头,则它是一个绝对路径,否则它是一条引用
  • 之前定义的“起点”的相对路径
  • 如果需要,相对路径可以包含../以在文件夹层次结构中返回

    <!-- directly in the base folder -->
    <font kerning="yes" embed-url="font1.ttf">
      <font-triplet name="font1" style="normal" weight="normal"/>
    </font>
    
    <!-- in a "sister" folder -->
    <font kerning="yes" embed-url="../otherFonts/font2.ttf">
      <font-triplet name="font2" style="normal" weight="normal"/>
    </font>
    
    <!-- in a sub-folder -->
    <font kerning="yes" embed-url="specialFonts/font3.ttf">
      <font-triplet name="font3" style="normal" weight="normal"/>
    </font>
    
    <!-- absolute path -->
    <font kerning="yes" embed-url="/Users/lfurini/Library/Fonts/font4.ttf" embedding-mode="subset">
      <font-triplet name="font4" style="normal" weight="normal"/>
    </font>
    

    (用FOP 1.1、2.0和2.1测试)

    (披露:我是一名FOP开发人员,虽然现在不太活跃)

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

    • 问题内容: 我正在尝试在JFrame中使用特殊字体,但遇到了问题。我有一个这样定义的JLabel: 并且我有一个名为CUSTOMFONT-MEDIUM.TTF(TrueType字体)的文件,但是编写了以下内容: 代码会编译,并且一切正常,除了不会显示“ lab”,因此没有文本。我想这是因为我从未指定字体大小,但是我所做的任何尝试都失败了。有人可以帮我吗? 问题答案: 您创建的字体必须先在中注册,以

    • 问题内容: 我正在使用Swift在Xcode(7.0版)中创建游戏,并且我想在游戏结束时以字体“ gameOver.ttf”显示标签“ Game Over”。我已将字体添加到资源文件夹中。我不知道如何在我的代码中引用它。我可以帮忙吗?我的代码: 问题答案: 这些是向您的应用程序添加自定义字体的步骤: 在您的应用程序中添加“ gameOver.ttf”字体(确保它已包含在目标中) 修改applica

    • 我正在使用Lollipop的新功能,比如coloraccent,colorPrimary,用于Lollipop制作前的设备。 styles.xml 现在我想为我的文本视图、编辑文本和按钮创建一个自定义字体。在样式中,我使用彩色口音作为白色。所以编辑文本的焦点应该是白色。查看下图以获取默认编辑文本焦点。这很好。 但每当我创建自定义字体edittext时,焦点行为就不同了。它没有显示白色。相反,它显示

    • @font-face跟其在CSS中作用表现一样,在后面简单地添加个块状属性即可,类似下面: @font-face font-family Geo font-style normal src url(fonts/geo_sans_light/GensansLight.ttf) .ingeo font-family Geo 生成为: @font-face { font-famil

    • 问题内容: 我有带有代码的简单应用程序: 自定义URLStreamHandler: 安装者: 它加载data / index.html: 但结果图像没有出现。 如何允许WebView解析相对链接,例如“ download.jpg”? 问题答案: 我瘦了,我找到了解决方法: 在我们必须添加 代替 并标出网址, 用