Отображать греческие буквы в jasperreports с помощью JrxmlDatasource

Я пытаюсь отобразить греческие буквы в PDF, сгенерированном jasperreport. Сначала я создаю XML, затем источник данных xml и передаю его в jaspper. 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 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, например Γ. Если я просто передам это значение, xml, вероятно, изменит & на &, и я получу Γ в своем PDF-файле. Если я заменю его символом utf φ, я получу "?" в моем PDF. Я знаю, что есть способ отобразить это поле, потому что, когда я экспортирую XML в файл, меняю символ с #x393; вернуться к Γ, импортировать его как источник данных в iReport, я получаю письмо, которое хочу.


person Mag    schedule 06.11.2012    source источник
comment
Я обнаружил, что когда я просматриваю его в средстве просмотра iReport, все в порядке, но когда я сохраняю его в формате PDF, персонаж теряется. Когда я открываю его с помощью Adobe Reader, я получаю ?.   -  person Mag    schedule 08.11.2012


Ответы (1)


После некоторых исследований я обнаружил, что шрифты PDF являются причиной проблемы. Я использовал версию 3.6, поэтому я перешел на версию 3.7, чтобы иметь возможность встраивать шрифты в PDF, и использовал метод, описанный в блоге: Ссылка. Я использовал решение номер 2 (простой способ), но обязательно проверьте решение номер 1, чтобы выбрать правильные шрифты для полужирного, курсивного и т. д. Шрифта Arial мне вполне хватило.

person Mag    schedule 01.12.2012