使用 JRXML 模板创建的 PDF 不会在静态文本字段中呈现服务标记符号 ℠

PDF created using JRXML template does not render Service Mark Symbol ℠ in the static text field

我有一个用于创建 PDF 的 jrxml 模板。它有一个带有商标、版权和服务标记等符号的静态文本字段。商标和版权符号在 PDF 中正确呈现,但 ServiceMark 没有。 我使用 Jasper v6.16.0 和 Times New Roman 字体。

Times New Roman 字体似乎不包含 service mark character 的字形。因此,您需要使用不同的字体来呈现 PDF 中的符号。

您可以为整个文本使用不同的字体(例如 JasperReports fonts jar 中包含的 DejaVu Sans 字体确实有服务标记符号的字形),或者创建一个字体集,以便text 使用 Times New Roman 表示 letters/digits/etc,并且只对 Times New Roman 不支持的字符使用 DejaVu Sans(或其他字体)。

这样的字体集在字体扩展中看起来像这样:

<fontFamilies>
    <fontFamily name="Times New Roman">
        <normal>...path.../Times New Roman.ttf</normal>
        <pdfEncoding>Identity-H</pdfEncoding>
        <pdfEmbedded>true</pdfEmbedded>
    </fontFamily>
    
    <fontSet name="Times New Roman Font Set">
        <family familyName="Times New Roman"/>
        <family familyName="DejaVu Sans">
            <excludedScript>LATIN</excludedScript>
        </family>
    </fontSet>  
</fontFamilies>