Java的孟加拉语Unicode渲染问题

时间:2018-11-18 03:57:30

标签: java jasper-reports

(在另一篇单独的文章中,我询问了JASPER REPORT的孟加拉渲染问题,但是这篇文章是关于使用Jasper jrxml设计从JAVA导出PDF期间的渲染问题。两篇文章是不同的,因此请在阅读全文之前将其标记为重复)

我试图用孟加拉语生成pdf。使用Jasper report studio创建jrxml文件。使用了字体扩展名,为此孟加拉字体创建了jar,并添加到类路径中。当我从这个Jasper工作室生成pdf时,效果很好。但是,当我尝试使用同一jrxml文件从java导出并生成pdf时,孟加拉字体会变形。

以下是我的jrxml样式和属性部分:

    <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>
    <property name="net.sf.jasperreports.default.pdf.encoding" value="Identity-H"/>
    <style name="Base" isDefault="true"/>

以下是我的文本字段选项:

<textField>
                <reportElement x="10" y="110" width="510" height="60" uuid="bac138e2-3e20-4d5a-84c2-e8624b9b05e3"/>
                <textFieldExpression><![CDATA[$P{testFromJava}]]></textFieldExpression>
            </textField>

以下是我的Java代码:

JasperReport jasperReport = JasperCompileManager.compileReport(reportSourceFile);
        jasperReport.getDefaultStyle().setPdfFontName("C:\\Windows\\Fonts\\SolaimanLipi_20-04-07_0.ttf");
        jasperReport.getDefaultStyle().setPdfEmbedded(true);
        jasperReport.getDefaultStyle().setPdfEncoding("Identity-H");
        jasperReport.setProperty("net.sf.jasperreports.pdf.encoding","utf-8");

        JasperPrint print = JasperFillManager.fillReport(jasperReport, params, reportRequestDTO.getConnection());

JRPdfExporter exporter = new JRPdfExporter();
            print.setLocaleCode("UTF-8");
            ExporterInput exporterInput = new SimpleExporterInput(print);
            exporter.setExporterInput(exporterInput);

            OutputStreamExporterOutput exporterOutput = new SimpleOutputStreamExporterOutput(path);
            exporter.setExporterOutput(exporterOutput);

            SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
            configuration.setPdfVersion(PdfVersionEnum.VERSION_1_5);
            exporter.setConfiguration(configuration);
            exporter.exportReport();

从jasper报告中,我得到了此pdf,它可以正确显示: created from jasper studio

从Java我得到了这个pdf,其中孟加拉字体变形了: Pdf generated from java

有什么建议吗?我在Java代码中错了什么?

0 个答案:

没有答案