Первый вопрос от меня; В настоящее время я исправляю графическую службу, которая использует XSLFO для преобразования нашего синтаксиса в FO, и в конце концов преобразую его в PDF.
Раньше мы использовали PNG-графики из Интернета при экспорте в PDF, но это приводит к ужасным результатам, поэтому мы решили использовать SVG для PDF.
Однако SVG, похоже, не масштабируется в холст SVG должным образом.
Вот синтаксис перед запуском в XSLFO:
<img src="someimage.svg">
А вот XSLFO, который я использую:
<xsl:template match="img">
<fo:block space-after="12pt">
<fo:instream-foreign-object width="20cm" height="15cm" content-width="scale-to-fit" content-height="scale-to-fit" scaling="uniform" background-color="#cccccc">
<svg:svg x="0" y="0" width="100" height="100" viewBox="0 0 100 100">
<svg:image x="0" y="0" width="100" height="100">
<xsl:if test="@src">
<xsl:attribute name="xlink:href">
<xsl:choose>
<xsl:when test="starts-with(@src, 'http://')">
<xsl:value-of select="@src"/>
</xsl:when>
<xsl:when test="starts-with(@src, 'https://')">
<xsl:value-of select="@src"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($baseurl, @src)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:if>
</svg:image>
</svg:svg>
</fo:instream-foreign-object>
</fo:block>
</xsl:template>
SVG действительно появляется в PDF, и кажется, что он содержится внутри холста - но по какой-то причине я не могу заставить его масштабироваться должным образом. Он просто очень, очень большой, и в результате получается чрезвычайно урезанная версия SVG.
У меня заканчиваются предложения здесь - есть здесь кто-нибудь, кто имеет опыт с этим?
PS: изображение создано с использованием новейшей версии батика, а ширина и высота установлены правильно.