在我以前的问题中,我碰到了一个更广泛的路径问题,并在eXist-db应用程序中识别了它们。eXist-db中的XSL-FO中的图像
目前,我无法将图像导入PDF文件。我尝试过2次安装eXist(2.2和3RC)以及许多可能的场景。当然,我测试过这些图片可以通过浏览器访问。
在源文件中,我曾尝试:
1. <graphic url="img/tealover.jpg"/>
2. <graphic url="/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg"/>
3. <graphic url="http://46.28.111.241:8081/exist/rest/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg"/>
4. <graphic url="url(img/tealover.jpg)"/>
5. <graphic url="url(/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg)"/>
6. <graphic url="url(http://46.28.111.241:8081/exist/rest/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg)"/>
7. <graphic url="url('img/tealover.jpg')"/>
8. <graphic url="url('/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg')"/>
9. <graphic url="url('http://46.28.111.241:8081/exist/rest/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg')"/>
正如预期的那样,样品3,6和9个工作但只有当我让他们在源硬编码链接的形式。如果我在XSLT样式表中建立链接,它们在FO文件中完全相同,但生成的PDF中没有任何内容。
当量的FO文件制作:
1. <fo:external-graphic src="img/tealover.jpg"/>
2. <fo:external-graphic src="/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg"/>
3. <fo:external-graphic src="http://46.28.111.241:8081/exist/rest/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg"/>
4. <fo:external-graphic src="url(img/tealover.jpg)"/>
5. <fo:external-graphic src="url(/db/apps/karolinum-apps/data/2015080/img/tealover.jpg)"/>
6. <fo:external-graphic src="url(http://46.28.111.241:8081/exist/rest/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg)"/>
7. <fo:external-graphic src="url('img/tealover.jpg')"/>
8. <fo:external-graphic src="url('/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg')"/>
9. <fo:external-graphic src="url('http://46.28.111.241:8081/exist/rest/db/apps/karolinum-apps/data/mono/2015080/img/tealover.jpg')"/>
当我硬编码这些链接到源,在样式表中工作src="{@url}"
。当我使用网址无处不(url="img/tealover.jpg"
)的短版,在属性样式表我在
src="concat('http://46.28.111.241:8081/exist/rest', $imgPath, @url)"
的$imgPath
变量作为从应用程序设置了一个param通过模板使用
<xsl:value-of select="concat('http://46.28.111.241:8081/exist/rest', $imgPath, @url)"/>
或直接:
let $bookUri := base-uri($resource)
let $imgPath := replace($bookUri, '[^/]*?$', '')
有了这个,链接1,4和7应该工作,其余的是一团糟。我可以在eXide中复制这些链接,他们仍然可以在浏览器中工作。
当我测试时,一切都看起来很好。在PDF中,仍然没有图片。我想现在应该有一个小小的细节。
我的建议是在将代码传递给FO处理器之前查看由代码生成的XSL-FO。这可能会以您构建网址的方式显示问题。我的FO类似于你的方法#9。 – joewiz
是的,这是我不明白的 - 我正在测试它并在右窗格中看到这些链接。他们是正确的,我已经把它们粘贴在上面(这些样本来自fo文件) –
Right pane?我真的很难理解你想描述的确切情况。 – joewiz