I am trying to use custom font in jasper report. Myanmar3
is the standard font of Myanmar.
Everything is ok, but ReportTitle
must be Myanmar Font
with Myanmar3
.
Google
also use Myanmar3
for Myanmar locale.
When export the report as html
file. It can display report title, well.But, Exported PDF
file cannot display incorrectly.
In browser.
In PDF
public void report() throws Exception {
List<SalesReport> saleReports = salesReportService.findSalesReport(new SalesReportCriteria());
InputStream inputStream = new FileInputStream("report-template/saleReportTemplate.jrxml");
String outputFilePdf = "D:/temp/BasicReport.pdf";
String outputFileHtml = "D:/temp/BasicReport.html";
Map paramMap = new HashMap();
paramMap.put("ReportTitle", "\u1005\u101B\u1004\u103A\u1038\u1021\u1004\u103A\u1038\u1019\u103B\u102C\u1038\u1011\u100A\u103A\u101E\u103D\u1004\u103A\u1038\u1001\u103C\u1004\u103A\u1038");
paramMap.put("TableDataSource", new JRBeanCollectionDataSource(saleReports));
JasperDesign jasperDesign = JRXmlLoader.load(inputStream);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, paramMap, new JRBeanCollectionDataSource(saleReports));
JasperExportManager.exportReportToPdfFile(jasperPrint, outputFilePdf);
JasperExportManager.exportReportToHtmlFile(jasperPrint, outputFileHtml);
}
saleReportTemplate.jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd"
name="TableReport" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="AllSectionsNoDetail" columnWidth="802"
leftMargin="20" rightMargin="20" topMargin="30" bottomMargin="30" isFloatColumnFooter="true" whenResourceMissingType="Empty" uuid="a255c602-4ff1-4db8-ab72-65b5c3ff9bdd">
<property name="ireport.zoom" value="1.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="Myanmar3" isDefault="true" fontName="Myanmar3" fontSize="10" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false"/>
<style name="Table">
<box leftPadding="0">
<pen lineWidth="1.0" lineColor="#000000"/>
</box>
</style>
<style name="TableHeader" mode="Opaque" backcolor="#808080"/>
<style name="TableFooter" mode="Opaque" backcolor="#C0C0C0"/>
<subDataset name="TableData" uuid="41cd3dac-2d22-41b9-9872-8fdb465d0f85">
<field ... for table generation/>
</subDataset>
<parameter name="TableDataSource" class="net.sf.jasperreports.engine.JRDataSource"/>
<parameter name="ReportTitle" class="java.lang.String" isForPrompting="false"/>
<title>
<band height="153">
<textField isBlankWhenNull="true">
<reportElement uuid="b44cb7c1-f7d5-467c-8982-b95f65dcb849" x="106" y="0" width="573" height="59"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="22" isBold="true" isPdfEmbedded="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{ReportTitle}]]></textFieldExpression>
</textField>
<componentElement>
-->other tag for table....
</componentElement>
</band>
</title>
</jasperReport>
I already add MYANMAR3.TTF
file and configure in jasperreports-fonts-5.1.0.jar
for myanmar3
font.
jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.dejavu=net/sf/jasperreports/fonts/fonts.xml
net.sf.jasperreports.extension.simple.font.families.myanmar3=net/sf/jasperreports/fonts/fonts.xml
font.xml
...other default config.
<fontFamily name="Myanmar3">
<normal>net/sf/jasperreports/fonts/myanmar3/MYANMAR3.TTF</normal>
<bold>net/sf/jasperreports/fonts/myanmar3/MYANMAR3.TTF</bold>
<italic>net/sf/jasperreports/fonts/myanmar3/MYANMAR3.TTF</italic>
<boldItalic>net/sf/jasperreports/fonts/myanmar3/MYANMAR3.TTF</boldItalic>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
I have tested so many configuration, reference and example. But, there is no effect on PDF
file.
Let me know, if u have any suggestion and providing.