Jump to content
We've recently updated our Privacy Statement, available here ×

Jasper Report Character Encoding in PDF


javamutu

Recommended Posts

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 is ok as below capture image

http://i.stack.imgur.com/XXcyz.png

But, Exported PDF file cannot display incorrectly as below capture image.

http://i.stack.imgur.com/5xxdn.png

export report method

    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", "u1005u101Bu1004u103Au1038u1021u1004u103Au1038u1019u103Bu102Cu1038u1011u100Au103Au101Eu103Du1004u103Au1038u1001u103Cu1004u103Au1038");
        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.

Link to comment
Share on other sites

  • Replies 0
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...