首先,我对 XSL 不太了解。
我正在使用一个名为 DITA 的应用程序来生成 pdf。它需要的事情之一是覆盖 xsl 文件;添加自定义样式。
我正在尝试使用相对路径添加外部图形。除非我提供完整路径,否则它不起作用。
不起作用:
<fo:block text-align="center" width="100%">
<fo:external-graphic src="../../images/logo.png"/>
</fo:block>
有效:
<fo:block text-align="center" width="100%">
<fo:external-graphic src="/absolute/path/to/images/logo.png"/>
</fo:block>
我在网上查了一下,它说使用“file:image.png”,其他网站说使用“url(image.png)”,但都不起作用。
我做错了什么?
最佳答案
这是一个老问题,但在使用 DITA-OT 时经常被误解。
需要了解的重要一点是,外部图形路径是相对于 DITA-OTArtwork.dir 的。
我可以想到两种添加 Logo 的方法。
简单的方法
将 logo.png 复制到 arwork 目录
DITA-OT/demo/fo/cfg/common/artwork/logo.png
将 xsl 图形路径更改为
<fo:block text-align="center" width="100%">
<fo:external-graphic src="Configuration/OpenTopic/cfg/common/artwork/logo.png"/>
</fo:block>
更难的方法
可以更改 DITA 从中获取图片的图稿目录以及 FOP 将用于渲染 PDF 的输出目录。
打开build.xml文件
DITA-OT/demo/fo/build.xml
图稿根
定义 DITA 将图稿复制到的根目录 默认为
<property name="artwork.dir" value="${dita.map.output.dir}"/>
这会将根目录设置为保存最终 PDF 的位置。
艺术品目的地
定义相对于图稿根目录的文件存储路径
<copy todir="${coreArtworkDestinationDir}/Configuration/OpenTopic"
默认情况下,它将创建文件夹 /Configuration/OpenTopic
,然后复制其中的所有内容,包括子目录。
确保更改目的地两次。您需要编辑的两个位置仅相距几行。
作品来源
定义原始图稿的保存位置,以便 DITA-OT 可以将文件复制到目标位置。
第一行指向 DITA-OT 附带的默认图稿,不应更改。
<fileset dir="${basedir}" includes="cfg/common/artwork/**/*.*"/>
第二个用于定制,因此应该用于定制。
<fileset dir="${customization.dir}" includes="common/artwork/**/*.*"/>
该路径相对于 DITA-OT/demo/fo/Customization。
关于xml - 在 XSL 文档中添加外部图形的相对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282692/