我想从.fo
文件中创建一些html输出,我自己编写了一些xsl模板来获得所需的输出。对于html
-元素的样式,每个元素都有一个class
属性,并带有匹配的css
-class。
如下所示:
.page_2_text_3 {
transform: translate(0pt, 82.96pt);
font-family: ITCFranklinGothicStd-Book;
font-style: normal;
font-weight: 400;
font-variant: normal;
font-size: 10pt;
color: #000000;
}
这里的问题是找不到字体ITCFranklinGothicStd-Book
,它被其他字体替换了。
有没有办法在模板中将字体导出为base64,这样我就可以像这样添加@font-face
到我的css中:
<xsl:template name="fontexport">
<xsl:param name="font"/>
<xsl:param name="fontname"/>
@font-face {
font-family: "<xsl:value-of select="$fontname"/>";
src: url("<xsl:value-of select="$font" mode="base64"/>")<!-- convert the $font into base64 -->
}
</xsl:template>
当使用font和fontname作为参数调用call-template
时,这将创建以下输出
@font-face {
font-family: "ITCFranklinGothicStd-Book";
src: url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAB...)
}
这可能吗
1条答案
按热度按时间5vf7fwbs1#
如果使用支持EXPath文件模块的XSLT处理器(如Saxon-PE),则可以使用
file:read-binary()
读取字体文件,它返回一个xs:base64Binary
值,应用于该值的string()
函数提供Base64表示。