使用 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>
我有一个用于创建 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>