首页 > 解决方案 > FOP 2.3:fo:external-graphic 的问题

问题描述

这是我在服务器中执行我的 java jar 应用程序时的情况,而不是直接从 IDE 执行。

  1. 我在此路径中有配置文件:C:\Temp\myuser\myappname\config\xslt。主要档案是 header.jpg、fopfile.xconf 和 style.stl
  2. 此应用程序调用 Zxing 库以生成二维码以附加到 PDF 新文件。我的应用程序在 C:\Temp\myapp\myapp.jar 中运行,因此生成的 png 格式的 QRCode 文件将保存在名为 qrcode.png 的路径中。
  3. 我的 xsl-fo 文件使用了臭名昭著的标签 fo:external-graphic。对于这两种情况,我都使用:

<fo:external-graphic src="url('file:\\C:\Temp\myuser\myappname\config\xslt\header.jpg')"/>

<fo:external-graphic src="url('file:\\C:\Temp\myapp\qrcode.png')"/>

但是罐子再次压碎并说坟墓:每次都找不到图像。我尝试更改路径并发生相同的错误。

现在看,如果我从 IDE -VSCode 运行这个应用程序,这个问题永远不会发生。

请大家帮助我们,我们能做些什么?我从 apache 阅读了教程中的所有文档,但仍然没有任何效果。

注意:我通过以下方式生成 jar:mvn clean compile assembly:single -f,所以我创建了嵌入所有依赖项的 opne jar。

标签: javajarapache-fop

解决方案


    <!--Just put this first dependency **xmlgraphics-commons** before the **fop** dependency-->
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>xmlgraphics-commons</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>fop</artifactId>
        <version>2.3</version>
    </dependency>

推荐阅读