Saxon:XSLT图像处理:无法从xs:string转换为byte

时间:2014-12-03 12:36:37

标签: xslt saxon

以下代码:

<xsl:message>[threfUrl] <xsl:value-of select="$threfUrl" /></xsl:message>
<xsl:variable name="actualHeight" select="itext:getPlainHeight(itext:getInstance($threfUrl))" />

抛出此错误:

[xslt] [threfUrl] file:/data/dtemple/share/dita_share/png_debug/screenshot_example.png
[xslt] /tools/dita_ot/1.6/plugins/com.altera.pdf/cfg/fo/xsl/altera_commons.xsl:1124: Fatal Error! Cannot convert from xs:string to byte

PNG文件存在且可读。使用Saxon 9.命名空间:itext =&#34; java:com.itextpdf.text.Image&#34;

有关错误的任何线索(错误消息无效)或如何修复? 是&#34;文件:/&#34;语法正确吗?

1 个答案:

答案 0 :(得分:1)

假设您正在使用http://api.itextpdf.com/itext/com/itextpdf/text/Image.html#Image%28java.net.URL%29尝试select="itext:getPlainHeight(itext:new($threfUrl))"。如果这不起作用,则显式构造URL,如

<xsl:variable name="actualHeight" xmlns:url="java:java.net.URL" select="itext:getPlainHeight(itext:new(url:new($threfUrl)))" /> 

我引用的文件说

 Constructor Detail
Image

public Image(URL url)

    Constructs an Image -object, using an url .

    Parameters:
        url - the URL where the image can be found.

以便构造函数是公共的。

也许该API的版本不同,我不知道为什么会出现错误。另一个尝试可能是您的原始尝试,但传入一个URL,所以

<xsl:variable name="actualHeight" xmlns:url="java:java.net.URL" select="itext:getPlainHeight(itext:getInstance(url:new($threfUrl)))" />