2015-11-19 3 views
1

Я использую ireport 3.7.6 и пытаюсь использовать разные шрифты для разных текстовых элементов. Я внес необходимые изменения в стиль шрифта и показывается, когда я делаю предварительный просмотр, но PDF-файл, созданный приложением java, получает только шрифт по умолчанию. я проверил XML и у него есть fontName = «Times New Roman». Пожалуйста, помогите мне с этим.Jasper ireport 3.7.6 стиль шрифта не отображается в PDF

ответ

0

попытаться установить jasperreports.properties так:

# http://jasperreports.sourceforge.net/config.reference.html 
# http://jasperreports.sourceforge.net/sample.reference/fonts/index.html 
# 
# net.sf.jasperreports.default.font.name=SansSerif - the default font name. 
# net.sf.jasperreports.default.font.size=10 - the default font size. 
# net.sf.jasperreports.default.pdf.font.name=Helvetica - the default PDF font. 
# net.sf.jasperreports.default.pdf.encoding=Cp1252 - the default PDF character encoding. 
# net.sf.jasperreports.default.pdf.embedded=false - by default PDF fonts are not embedded 
# 
net.sf.jasperreports.export.character.encoding=UTF-8 
net.sf.jasperreports.default.font.name=DejaVu Sans 
net.sf.jasperreports.default.font.size=10 
net.sf.jasperreports.default.pdf.font.name=DejaVu Sans 
net.sf.jasperreports.default.pdf.encoding=UTF-8 
net.sf.jasperreports.default.pdf.embedded=true 

jasperreports_extension.properties:

net.sf.jasperreports.extension.registry.factory.fonts=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory 
net.sf.jasperreports.extension.simple.font.families.myfamily=com/your/company/resources/fonts/jasper.xml 

и сопоставить PDF-шрифты для ФИЗИЧЕСКИХ шрифтов (jasper.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> 

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

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

</fontFamilies> 

и желаемые шрифты в каталог ресурсов, поставьте jasperreports.jar jasperreports-fonts.jar jasperreports-java flow.jar to classpath

Я тестировал это на Linux, WinXp, Win7. Работы по рендерингу и экспорту

+0

Могу ли я предположить, чтобы добавить свойства под Tools-> Option-> Jasper Свойства отчета? если это так? и где можно добавить расширение? Я новичок в ireport. –

+0

это будет работать только в студии ireport, но вы не можете встраивать свои отчеты в свое приложение для хорошего рендеринга pdf. для использования в автономном приложении, укажите тыс. * .properties в верхней строке баночки – shcherbak

+0

Я использую конструктор ireport. будет ли это работать и в этом? –

1

В последней версии отчета о яшме 5,6 разных шрифта включены через font extensions.

Вам нужна версия шрифта .ttf, которую вы хотите отобразить (Times new roman можно найти в окнах/шрифте).

Самый простой способ включить шрифт через ireport-designer или Jaspersoft Studio

  1. получения желаемого TTF шрифт.
  2. Установить шрифт в IReport или студии
  3. Экспорт шрифта расширение (это создает .jar)
  4. Добавить банку в свой путь к классам.

Это ссылка на эти стадии iReport и это в Jaspersoft Studio

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