2015-12-30 4 views
2

Я прочитал JasperReports - Fonts Sample (version 6.2.0) официальный учебник для создания моих отчетов так же, как они были разработаны с использованием стилей шрифта.JasperReports не генерирует отчет жирным шрифтом

Вот мой jasperreports_extension.properties:

net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 
net.sf.jasperreports.extension.simple.font.families.dejavu=net/sf/jasperreports/fonts/fonts.xml 
net.sf.jasperreports.extension.simple.font.families.arial=net/sf/jasperreports/fonts/fonts.xml 

Вот мой fonts.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<fontFamilies> 
    <fontFamily name="DejaVu Sans"> 
     <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> 
     <!-- 
     <locales> 
      <locale>en_US</locale> 
      <locale>de_DE</locale> 
     </locales> 
     --> 
    </fontFamily> 

    <fontFamily name="DejaVu Serif"> 
     <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSerif.ttf</normal> 
     <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Bold.ttf</bold> 
     <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Italic.ttf</italic> 
     <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-BoldItalic.ttf</boldItalic> 
     <pdfEncoding>Identity-H</pdfEncoding> 
     <pdfEmbedded>true</pdfEmbedded> 
     <exportFonts> 
      <export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export> 
      <export key="net.sf.jasperreports.xhtml">'DejaVu Serif', 'Times New Roman', Times, serif</export> 
     </exportFonts> 
    </fontFamily> 

    <fontFamily name="DejaVu Sans Mono"> 
     <normal>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono.ttf</normal> 
     <bold>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Bold.ttf</bold> 
     <italic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Oblique.ttf</italic> 
     <boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf</boldItalic> 
     <pdfEncoding>Identity-H</pdfEncoding> 
     <pdfEmbedded>true</pdfEmbedded> 
     <exportFonts> 
      <export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> 
      <export key="net.sf.jasperreports.xhtml">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> 
     </exportFonts> 
    </fontFamily> 

    <fontFamily name="Arial"> 
     <normal>net/sf/jasperreports/fonts/arial/arial.ttf</normal> 
     <bold>net/sf/jasperreports/fonts/arial/arialbd.ttf</bold> 
     <italic>net/sf/jasperreports/fonts/arial/ariali.ttf</italic> 
     <boldItalic>net/sf/jasperreports/fonts/arial/arialbi.ttf</boldItalic> 
     <pdfEncoding>Identity-H</pdfEncoding> 
     <pdfEmbedded>true</pdfEmbedded> 
     <exportFonts> 
      <export key="net.sf.jasperreports.html">Arial</export> 
      <export key="net.sf.jasperreports.xhtml">Arial</export> 
     </exportFonts> 
    </fontFamily> 

    <fontFamily name="Arial Black"> 
     <normal>net/sf/jasperreports/fonts/arial/ariblk.ttf</normal> 
     <pdfEncoding>Identity-H</pdfEncoding> 
     <pdfEmbedded>true</pdfEmbedded> 
     <exportFonts> 
      <export key="net.sf.jasperreports.html">Arial Black</export> 
      <export key="net.sf.jasperreports.xhtml">Arial Black</export> 
     </exportFonts> 
    </fontFamily> 

    <!-- 
     Mapping Java logical fonts, for the sake of HTML export only. 
    --> 

    <fontFamily name="SansSerif"> 
     <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="Serif"> 
     <exportFonts> 
      <export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export> 
      <export key="net.sf.jasperreports.xhtml">'DejaVu Serif', 'Times New Roman', Times, serif</export> 
     </exportFonts> 
    </fontFamily> 
    <fontFamily name="Monospaced"> 
     <exportFonts> 
      <export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> 
      <export key="net.sf.jasperreports.xhtml">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> 
     </exportFonts> 
    </fontFamily> 
</fontFamilies> 

Я поместил шрифты в моем банке, но когда я создать отчет стили шрифтов еще не появляется. Я что-то упускаю?

+0

Я не думаю, что у вас есть проблемы с IText библиотекой, может быть, у вас есть JasperReports-шрифты-6.xx в вашем пути к классам и он использует это вместо ваш шрифт-расширение ... Это, скорее всего, проблема с classpath (возможно, более одного jasperreports_extension.properties) –

+0

См .: http://community.jaspersoft.com/wiki/custom-font-font-extension –

ответ

2

Вам нужно иметь правильный путь к вашим файлам xml и ttf, он соответствует тому же стилю, что и пакет java.

Пример

Если jasperreports_extension.properties находится в корневой папке проекта (что я хотел бы предложить, так как это должно быть найдено яшмы-отчеты) и у вас есть fonts.xml и ttf файлы в папке, которые называются fonts.

Ссылка в jasperreports_extension.properties будет:

net.sf.jasperreports.extension.simple.font.families.myFonts=fonts/fonts.xml 

И в fonts.xml

<fontFamily name="DejaVu Sans"> 
    <normal>fonts/DejaVuSans.ttf</normal> 
    <bold>fonts/DejaVuSans-Bold.ttf</bold> 
    ..... 
</fontFamily> 

Если у вас есть проблема, которую я предположить, что вы используете IDE как или они позволяют автоматически генерировать банку для расширения шрифта (включая ваши ttf).

Тогда будет достаточно, чтобы вы включили эту банку в свой путь к классу при создании вашего экспорта в формате pdf.

Как создать шрифт расширения баночки с использованием iReport или в JasperSoft Studio

+0

Что не так в мои файлы? Я загружаю через maven jar и модифицировал эти файлы и добавлял только мои шрифты. И еще более любопытно, что я использую Arial и Arial Black с или без смелости. Я просто создал банку, прочитав учебник, который вы предоставили, и все еще не работает. –

+0

@PhilippeGioseffi Являются ли jasperreports_extension.properties в корневой папке, являются fonts.xml, развернутые в папке net/sf/jasperreports/fonts /, являются ttf, развернутые в net/sf/jasperreports/fonts/dejavu/и net/sf/jasperreports/шрифты/Arial/??? кажется странным, что вы сделали пакет, такой же, как отчет о яшме ... –

+0

Если вы создадите в качестве учебника, он будет работать, убедитесь, что банка находится в вашем пути к классу (и удалите старые jasperreports_extension.properties) .... –

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