如何在iReport中添加符号Turkish(土耳其里拉)

时间:2016-01-08 07:58:51

标签: jasper-reports ireport

expected_list = [(1,2,3),(4,5,6)]
real_writer = mock.Mock()
real_writer.write.assert_any_call(expected_list[0])
real_writer.write.assert_any_call(expected_list[1])

这就像在参数中添加$P{DETAILPARAM} = " Tarihinden bu güne kadar <style isBold='true' pdfFontName='DejaVu Sans'>"+new java.text.DecimalFormat("#,##0.00").format($F{TOTAL_DEBT})+" ₺ </style> Borcunuz vardır." Font = DejaVu Sans 一样。并导出PDF,但不显示&#34;₺&#34;这个符号。
我该怎么办?

1 个答案:

答案 0 :(得分:2)

Turkish Lira有unicode U+20BA,因为它相当新(2012),你需要确保所选字体支持这个unicode。

我尝试使用字体 dejavu-serif ,了解如何正确下载和安装,请参阅:How can I display "$£Ω€απ⅔" in Jasperserver PDF using iReport?

<强>结果

Result

这是我的jrxml代码:

<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="FontTest" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="2347c131-1884-430a-b77f-59f08f896c8a">
    <parameter name="number" class="java.lang.Double" isForPrompting="false">
        <defaultValueExpression><![CDATA[new Double(1000.23)]]></defaultValueExpression>
    </parameter>
    <queryString>
        <![CDATA[]]>
    </queryString>
    <title>
        <band height="25">
            <textField>
                <reportElement x="0" y="0" width="100" height="25" uuid="bc2ae040-f9af-4732-82fe-8fe8b71696bd"/>
                <textElement>
                    <font fontName="DejaVu Serif" size="14"/>
                </textElement>
                <textFieldExpression><![CDATA["\u20BA"]]></textFieldExpression>
            </textField>
            <textField pattern="₺ #,##0.00">
                <reportElement x="100" y="0" width="200" height="25" uuid="ee49d149-394b-4ac6-a0a2-6d207b0c8d89"/>
                <textElement>
                    <font fontName="DejaVu Serif" size="14"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{number}]]></textFieldExpression>
            </textField>
        </band>
    </title>
</jasperReport>

一些设计说明:

  1. 格式化数字时,最好应用pattern,因为如果导出到例如excel,这将保持正确的类。

  2. 我无法实现模式"\u20BA #,##0.00",即使这直接在java中工作,我需要进一步调查这一点,看起来像jasper报告正在替换&#34; \&#34 ;必须直接将char放入模式中(即使不推荐这样做)。