(在另一篇单独的文章中,我询问了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();
有什么建议吗?我在Java代码中错了什么?