2009-10-22 7 views
0

Lorsque j'essaie d'afficher un caractère chinois dans un élément de graphique (nom de diagramme) dans les rapports jasper, il ne s'affiche pas, j'utilise i18n pour prendre la valeur du fichier de propriétés, il lit les clés mais ne parvient pas à afficher le caractère chinois. Il n'affiche aucun caractère sauf l'anglais.ajouter un caractère chinois dans un élément de graphique dans les rapports jasper

ceci est mon jrxml:

<parameter name="orgId" isForPrompting="true" class="java.lang.String"/> 
<parameter name="time" isForPrompting="true" class="java.lang.String"/> 
<parameter name="chartName" isForPrompting="true" class="java.lang.String"/> 
<parameter name="url" isForPrompting="true" class="java.lang.String"/> 
<parameter name="wwidth" isForPrompting="true" class="java.lang.String"/> 
<parameter name="wheight" isForPrompting="true" class="java.lang.String"/> 
<parameter name="sql" isForPrompting="true" class="java.lang.String"/> 
<queryString><![CDATA[$P!{sql}]]></queryString> 

<field name="ROWNUM" class="java.math.BigDecimal"/> 
<field name="CCOUNT" class="java.math.BigDecimal"/> 
<field name="CONTROL_ID" class="java.math.BigDecimal"/> 
<field name="CONTROL_CODE" class="java.lang.String"/> 
<field name="CONTROL_NAME" class="java.lang.String"/> 

    <background> 
     <band height="0" isSplitAllowed="true" > 
     </band> 
    </background> 
    <title> 
     <band height="20" isSplitAllowed="true" > 
      <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" > 
       <reportElement 
        x="0" 
        y="0" 
        width="403" 
        height="19" 
        key="textField-1"/> 
       <box leftPadding="5"></box> 
       <textElement> 
        <font fontName="Trebuchet MS" pdfFontName="Helvetica-Bold" isBold="true"/> 
       </textElement> 
      <textFieldExpression class="java.lang.String"><![CDATA[(($P{time}!=null && !$P{time}.equals("")) ? str($P{chartName}) : "")]]></textFieldExpression> 
      </textField> 
     </band> 
    </title> 
    <pageHeader> 
     <band height="0" isSplitAllowed="true" > 
     </band> 
    </pageHeader> 
    <columnHeader> 
     <band height="0" isSplitAllowed="true" > 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="0" isSplitAllowed="true" > 
     </band> 
    </detail> 
    <columnFooter> 
     <band height="0" isSplitAllowed="true" > 
     </band> 
    </columnFooter> 
    <pageFooter> 
     <band height="0" isSplitAllowed="true" > 
     </band> 
    </pageFooter> 
    <summary> 
     <band height="222" isSplitAllowed="true" > 
      <bar3DChart> 
       <chart hyperlinkTarget="Self" > 
       <reportElement 
        x="0" 
        y="0" 
        width="403" 
        height="222" 
        key="element-1"/> 
       <box></box> 
        <chartTitle color="#000000" > 
       <font fontName="Trebuchet MS" pdfFontName="Helvetica" size="11" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" isPdfEmbedded="false" pdfEncoding="Cp1252"/> 
          <titleExpression><![CDATA[str("chartName")]]></titleExpression> 
       </chartTitle> 
        <chartLegend textColor="#000000" backgroundColor="#FFFFFF" > 
       </chartLegend> 
       </chart> 
       <categoryDataset> 
        <dataset > 
        </dataset> 
        <categorySeries> 
         <seriesExpression><![CDATA[$F{CONTROL_CODE}]]></seriesExpression> 
         <categoryExpression><![CDATA[$F{CONTROL_NAME}]]></categoryExpression> 
         <valueExpression><![CDATA[$F{CCOUNT}]]></valueExpression> 
      <itemHyperlink hyperlinkType="Reference"> 
        <hyperlinkReferenceExpression><![CDATA["javascript:void(0);window.open('"+$P{url}+"&fileName=topControlsDrilldown&conName="+$F{CONTROL_NAME}+"&conId="+$F{CONTROL_ID}+"','TopControls','width="+$P{wwidth}+",height="+$P{wheight}+",top=300,left=250,menubar=0');location.reload()"]]></hyperlinkReferenceExpression> 
        <hyperlinkTooltipExpression><![CDATA[""+$F{CCOUNT}]]></hyperlinkTooltipExpression> 
      </itemHyperlink> 
        </categorySeries> 
       </categoryDataset> 
       <bar3DPlot isShowLabels="true" > 
        <plot orientation="Horizontal" foregroundAlpha="0.7" > 
         <seriesColor seriesOrder="0" color="#615A4A"/> 
         <seriesColor seriesOrder="1" color="#88A3BF"/> 
         <seriesColor seriesOrder="2" color="#B47272"/> 
         <seriesColor seriesOrder="3" color="#E8A4EA"/> 
         <seriesColor seriesOrder="4" color="#FFC189"/> 
         <seriesColor seriesOrder="5" color="#FFEF79"/> 
         <seriesColor seriesOrder="6" color="#AFFAFF"/> 
         <seriesColor seriesOrder="7" color="#F7A7AB"/> 
         <seriesColor seriesOrder="8" color="#A7A1FF"/> 
         <seriesColor seriesOrder="9" color="#E7CEAD"/> 

Répondre

0

Dans la boîte de dialogue Propriétés du champ de texte, vous devez définir un PDF-Encoding approprié. Vous utilisez CP1252, ce qui est correct pour les caractères latins mais pas chinois.

+0

Pour améliorer votre réponse: quel est * un * encodage approprié qui prendrait en charge le chinois? (UTF-8 peut-être?) – jtbandes

+0

c'est exactement pourquoi je n'ai pas précisé :), je pensais UTF-8 serait bon, mais je l'ai essayé pour les caractères arabes et ne fonctionne pas correctement, donc je suis passé à CP1256. UTF-8 pourrait être bon pour le chinois, pas sûr. – medopal