【问题标题】:XSLT: display an image on output PDF from eclipse project resources instead external resourcesXSLT:在来自 eclipse 项目资源而不是外部资源的输出 PDF 上显示图像
【发布时间】:2016-07-19 09:03:46
【问题描述】:

我现在离 Apache FOP 和 XSLT 越来越近了。

我想做一件简单的事情:在 eclipse 中我的 java 项目生成的输出 pdf 中,在第一页上放一个图像和标题。

目前,我只能放标题,但输出 pdf 上的图像没有。

在我的 XSL 文件中,我已将获取图像的“代码”放在第一页中

  <fo:block text-align="center" space-after="4cm">
                          <fo:external-graphic content-height="50%" scaling="uniform" width="50%" content-width="scale-down-to-fit" src="url('file:c:///UPLOAD/logo.png')"/>
                        </fo:block> 

并且有效。这是我在网上找到的关于外部资源直接路径的方式。但是以这种方式它与机器有关。

那么,我怎样才能从项目的“相对”路径中获得图像,我需要 pdf 输出与项目相关而不是文件系统(所以在我部署应用程序时的 JAR 文件中)

在网上搜索,发现很多关于配置FOP之类的问题..

有一个简单的方法如果我想在 XSLT 文档中使用我的 eclipse 项目目录中的图像(因此,当应用程序部署时,使用内部资源)(就像使用外部文件一样)?

我试试这个方法

<fo:external-graphic content-height="50%" scaling="uniform" width="50%" content-width="scale-down-to-fit" src='url("///mtproject/WebContent/resources/default/img/logo.jpg")'/>

但是在日志中有这个错误:

FOUserAgent - 找不到图像。网址: ///mtproject/WebContent/resources/default/img/logo.jpg。 (没有上下文 可用信息)

如何使用对项目资源的引用?

在此先感谢大家。

【问题讨论】:

  • 一方面,url()函数的参数是字符串,应该加引号。您在 FOP 日志中收到了哪些消息?
  • 我已经更新了我的帖子以获得更明确的问题。我的文件系统上的外部资源可以工作..但是我如何使用 eclipse 项目的资源?

标签: java xml pdf xslt


【解决方案1】:

您必须通过the FOP's configuration 定义工作目录。

请查看base 元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多