我使用Apache FOP 1.1以编程方式生成PDF。 PDF应该包含文档的名称作为超链接。当我点击名称时,它应该打开相应的文件。这是代码:
<fo:block>
<fo:basic-link color="blue" show-destination="new">
<xsl:attribute name="external-destination">
<xsl:choose>
<xsl:when test="@parentFolderPath">
<xsl:value-of select="@parentFolderPath" />/<xsl:value-of select="@FileName" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@FileName" />
</xsl:otherwise>
</xsl:choose>
</xsl:attribute><xsl:call-template name="writeWithoutOverlap"><xsl:with-param name="data" select="@FileName"/></xsl:call-template>
</fo:basic-link>
</fo:block>
当我的名字中有英文字符的文件时,这完全正常。但是,当我有一个这样的文件名:“étudiantoùforêtnaïvegarçon.docx”时,PDF中形成的超链接用'?'替换重音字符。
这是PDF的屏幕截图,您可以在其中看到格式错误的超链接:
我正在使用“Arial”字体和encoding =“UTF-8”。
当正确打印文件名时,为什么超链接会出现问题?