在预览报告时,该复选框显示正确,但在导出为pdf时不会显示。
<staticText>
<textElement textAlignment="Center">
<font fontName="Wingdings" size="18"/>
</textElement>
<text><![CDATA[]]></text>
</staticText>
复选标记已从word文档复制到此处。
Wingdings是Jasper中的内置字体,所以我猜不需要将其添加为字体扩展名。
我正在使用Jaspersoft Studio 5.6
这就是我选择Font Windings的方式,因此我假设它内置于Jasper中。
答案 0 :(得分:0)
我不认为Wingdings内置于Jasper中。您可以通过尝试在 PDF字体名称属性的高级属性标签中找到它来确认。在XML视图中,您可以输入:
<font fontName="Wingdings" pdfFontName="Wingdings"/>
但在导出过程中你会发现找不到Wingdings字体。此外,pdfFontName
已弃用,因此您无论如何都不应该使用它。
看起来你必须使用Font Extensions。这是我的工作示例:
<staticText>
<reportElement x="20" y="0" width="100" height="30" uuid="96ccfacd-cf1e-44b2-ae0f-69c863141ba7"/>
<textElement>
<font fontName="Wingdings"/>
</textElement>
<text><![CDATA[]]></text>
</staticText>
和字体扩展配置:
<fontFamilies>
<fontFamily name="Wingdings">
<normal>fonts/wd/wingding.ttf</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
</fontFamilies>
编辑:
澄清:我的意思是 PDF字体名称如下所示
我必须说我不知道 ZapfDingbats 下面的这些字体是什么,但事实是这是PDF导出列表中的最后一种字体。
摘自com.itextpdf.text.FontFactoryImp
课程作为证明:
ArrayList<String> tmp;
tmp = new ArrayList<String>();
tmp.add(FontFactory.COURIER);
tmp.add(FontFactory.COURIER_BOLD);
tmp.add(FontFactory.COURIER_OBLIQUE);
tmp.add(FontFactory.COURIER_BOLDOBLIQUE);
fontFamilies.put(FontFactory.COURIER.toLowerCase(), tmp);
tmp = new ArrayList<String>();
tmp.add(FontFactory.HELVETICA);
tmp.add(FontFactory.HELVETICA_BOLD);
tmp.add(FontFactory.HELVETICA_OBLIQUE);
tmp.add(FontFactory.HELVETICA_BOLDOBLIQUE);
fontFamilies.put(FontFactory.HELVETICA.toLowerCase(), tmp);
tmp = new ArrayList<String>();
tmp.add(FontFactory.SYMBOL);
fontFamilies.put(FontFactory.SYMBOL.toLowerCase(), tmp);
tmp = new ArrayList<String>();
tmp.add(FontFactory.TIMES_ROMAN);
tmp.add(FontFactory.TIMES_BOLD);
tmp.add(FontFactory.TIMES_ITALIC);
tmp.add(FontFactory.TIMES_BOLDITALIC);
fontFamilies.put(FontFactory.TIMES.toLowerCase(), tmp);
fontFamilies.put(FontFactory.TIMES_ROMAN.toLowerCase(), tmp);
tmp = new ArrayList<String>();
tmp.add(FontFactory.ZAPFDINGBATS);
fontFamilies.put(FontFactory.ZAPFDINGBATS.toLowerCase(), tmp);