2016-12-19 2 views
0

Приложение My Java создает файл PDF, заполняющий отчет JasperReports, но когда я открываю pdf-файл, шрифты всегда «Arial», в отчете установлен «DejaVu Sans».JasperReports не поддерживает шрифты при экспорте в pdf

Когда я использую функции JasperReports для экспорта в PDF-файл, все работает хорошо (после этого я импортировал файл .ttf DejaVu Sans). Проблема сохраняется, только когда я использую приложение Java.

Вот начало одного из моих подписок.

<?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="sub_21" pageWidth="515" pageHeight="842" columnWidth="515" leftMargin="0" rightMargin="0" topMargin="30" bottomMargin="0" uuid="34ff3034-41c3-4268-b500-7252cbe01a14"> 
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/> 
    <parameter name="acp" class="acp.pdfengine.entities.PdfData"/> 
    <detail> 
     <band height="376" splitType="Stretch"> 
      <textField isBlankWhenNull="true"> 
       <reportElement positionType="Float" x="0" y="0" width="181" height="21" isRemoveLineWhenBlank="true" uuid="7b1fe94a-28dd-42d1-b6db-ee2dcc2d7020"/> 
       <textElement> 
        <font fontName="DejaVu Sans" size="12" isBold="true"/> 
       </textElement> 
       <textFieldExpression><![CDATA[$P{acp}.getPdfWords().getRESULT_title()]]></textFieldExpression> 
      </textField> 

А вот кусок кода Java, который заполняет отчеты и создает PDF:

filledReport = JasperFillManager.fillReport(report, params, dataSource); 
JasperExportManager.exportReportToPdfFile(filledReport, data.getPdfInfo().getResourcesPath() + data.getPdfInfo().getFileName()); 

Вот мой JasperReports-fonts.xml файл:

<?xml version="1.0" encoding="UTF-8"?> 
<fontFamilies> 
    <fontFamily name="DejaVu Sans" visible="true"> 
     <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSans.ttf</normal> 
     <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Bold.ttf</bold> 
     <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Oblique.ttf</italic> 
     <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-BoldOblique.ttf</boldItalic> 
     <pdfEncoding>Identity-H</pdfEncoding> 
     <pdfEmbedded>true</pdfEmbedded> 
     <exportFonts> 
     <export key="net.sf.jasperreports.html">'DejaVu Sans', Arial, Helvetica, sans-serif</export> 
     <export key="net.sf.jasperreports.xhtml">'DejaVu Sans', Arial, Helvetica, sans-serif</export> 
     </exportFonts> 
    </fontFamily> 

    <fontFamily name="Pictonic" visible="false"> 
     <normal> 
      <ttf>net/sf/jasperreports/fonts/pictonic/pictonic.ttf</ttf> 
      <svg>net/sf/jasperreports/fonts/pictonic/pictonic.svg</svg> 
      <eot>net/sf/jasperreports/fonts/pictonic/pictonic.eot</eot> 
      <woff>net/sf/jasperreports/fonts/pictonic/pictonic.woff</woff> 
     </normal> 
     <pdfEncoding>Identity-H</pdfEncoding> 
     <pdfEmbedded>true</pdfEmbedded> 
    </fontFamily> 
</fontFamilies> 

ли кто-нибудь имеют такую ​​же проблему?

+1

Вы используете расширения шрифта? –

+0

Да! Но, возможно, я делаю некоторые ошибки ... Я выполнил следующие инструкции: http://jasperreports.sourceforge.net/sample.reference/fonts/#fontextensions – Erald

+1

Возможный дубликат [Проблема с загрузкой шрифта с использованием JaspersReport] (http: // stackoverflow.com/questions/40937940/issue-with-loading-font-using-jaspersreport) –

ответ

Смежные вопросы