Sto tentando di utilizzare caratteri personalizzati nel report jasper. Myanmar3
è il carattere standard di Myanmar. Tutto ok, ma ReportTitle
deve essere Myanmar Font
con Myanmar3
. Google
utilizzare anche Myanmar3
per le impostazioni internazionali Myanmar.Codifica caratteri di Jasper Report in PDF
Quando si esporta il report come file html
. Può visualizzare il titolo del report, bene. Ma il file esportato PDF
non può essere visualizzato in modo errato.
Nel 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>
ho già aggiungo MYANMAR3.TTF
di file e configurare in jasperreports-fonts-5.1.0.jar
per myanmar3
carattere.
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>
Ho testato tante configurazione di riferimento ed esempio. Ma non c'è alcun effetto sul file .
Fatemi sapere, se avete qualche suggerimento e fornire.
Hai controllato il tipo di carattere in generato * PDF *? È davvero * Myanmar3 *? –
@AlexK, Sì bro, controllo le proprietà del PDF. Nella codifica di Font è "Myanmar3". – CycDemo
@AlexK, invierò la schermata breve? – CycDemo