不需要的Helvetica字体在Jasper的pdf中使用

Kar*_*ick 4 jasper-reports ireport

我有一个问题,我在任何JRXML字段中都没有使用的Helvetica被用作Jasper PDF报告中的默认字体.

我正在使用iReports 4.0.2.

Ale*_*x K 5

  • 第一个变体是通过设置net.sf.jasperreports.default.font.name和/或net.sf.jasperreports.default.pdf.font.name属性设置默认字体.

例如,它是iReport中的默认设置(对话框选项 - > JasperReports属性):

默认设置

使用此设置(不在模板中设置默认样式)我在iReport生成的pdf中Helvetica字体.

之后我在iReport中更改了这样的设置:

设置另一种字体

现在我的pdf文件中有Courier字体(由iReport生成):

PDF格式

使用JasperReports API,您可以借助JRProperties.setProperty(java.lang.String key,boolean value)方法设置此属性.

例子:

JRProperties.setProperty("net.sf.jasperreports.default.pdf.font.name", defaultPDFFont);

JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params);

JasperExportManager.exportReportToPdfFile(jasperPrint, outputFileName);
Run Code Online (Sandbox Code Playgroud)
  • 另一种变体是在报告的模板中添加默认样式.

这个例子:

<jasperReport .. topMargin="20" bottomMargin="20">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="0"/>
    <style name="Base" isDefault="true" hAlign="Center" vAlign="Middle" fontSize="10" pdfFontName="Courier" pdfEncoding="UTF8" isPdfEmbedded="false"/>
    <queryString>
Run Code Online (Sandbox Code Playgroud)

有关使用字体的更多信息,请参阅此处.