jasperreportによって生成されたPDFでギリシャ文字を表示しようとしています。最初にXMLを作成し、次にxmlデータソースを作成してjasperに渡します。XML:
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
....
Element analysisElement = doc.createElement("Analysis");
//text value is from the database
Text analysisText = doc.createTextNode(anayisisObject.getName());
analysisElement.appendChild(analysisText);
情報源:
JRXmlDataSource xmlDataSource = new JRXmlDataSource(doc,"/ReportFailedAnalysis");
JRXML textField:
<textField isStretchWithOverflow="true">
<reportElement style="obicni" positionType="Float" x="0" y="0" width="203" height="12"/>
<textElement markup="styled">
<font fontName="Arial" size="9" pdfEncoding="Cp1250"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{Analysis}]]>
</textFieldExpression>
</textField>
データベースのエンコーディングはCp1250です。これが重要であり、ギリシャ文字がhtmlエンコーディングとして保存されている場合(例:&#x393;)。その値を渡すだけで、xmlはおそらく&を&ampに変更し、pdfでΓを取得します。utf文字\u03C6に置き換えると、「?」が表示されます。私のPDFで。XMLをファイルにエクスポートするときに、そのフィールドを表示する方法があることを知っています。文字を&amp;#x393;から変更します。&#x393;に戻る 、iReportにデータソースとしてインポートすると、欲しい文字が表示されます。