首先,我对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-ot artwork.dir的。
我可以想出两种方法来添加徽标。
简单的方法
将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从中获取图片的Artwork目录以及fop用来呈现pdf的输出目录。
打开build.xml文件
DITA-OT/demo/fo/build.xml
艺术品根
定义DITA将艺术品复制到的根目录
默认值是
<property name="artwork.dir" value="${dita.map.output.dir}"/>
它会将根设置为保存最终pdf的位置。
艺术品目的地
定义文件相对于Artwork根目录的存储路径
<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的。