Вопрос

Я пытаюсь создать отчет с DynamicJaSper, но я получаю следующую ошибку:

net.sf.jasperreports.engine.util.JRFontNotFoundException:  
                                 Font 'Arial' is not available to the JVM.   

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

Я использую Ubuntu 10.04.

Как я могу это исправить?

Это было полезно?

Решение

Я пытался установить MShoreFonts, но пакет был установлен и актуальны.

sudo apt-get update
sudo apt-get install ttf-mscorefonts-installer

Я попробовал поиск шрифта в файловой системе, с:

ls /usr/share/fonts/truetype/msttcorefonts/

Эта папка только что была Readme с правильными инструкциями о том, как установить.

cat /usr/share/fonts/truetype/msttcorefonts/README

Вам нужно подключение к интернету для этого:

sudo apt-get install --reinstall ttf-mscorefonts-installer

Я восстановил ttf-mscorefonts-installer (Как показано выше, обязательно принять EULA!) И проблема была решена.

Другие советы

Ясперрепорт поднимает а JrfontnotfoundException. В случае, когда шрифт, используемый внутри шаблона отчета, недоступен для JVM, либо как системный шрифт, либо шрифт, исходящий из расширения шрифта JR. Это гарантирует, что все проблемы, вызванные несоответствиями метрики шрифтов, избегаются, и у нас ранее предупреждение о несоответствии.

Джасперские отчеты пытаются помочь тебе В вашем докладе разработка, заявив, что он не может правильно экспортировать свой отчет, так как он не может найти шрифт, определенный в TextField или StaticText

<font fontName="Arial"/>

Да, ты можешь запрещать Это путем настройки net.sf.jasperreports.awt.ignore.missing.font. правда, но у вас будет Экспорт несоответствий.

Да, ты можешь установить Шрифт как системный шрифт JVM (но вам нужно сделать это на каждом компьютере, который может генерировать отчет, и вы все еще можете иметь проблемы кодирования).

Правильный путь!

Использовать Расширения шрифтов!, Если вам нравится создавать свой собственный (см. Ссылку ниже), отчеты Jasper также распределяют банку расширения шрифта по умолчанию (jasperreports-fonts-x.x.x.jar), что поддерживает fontname DejaVu Sans, DejaVu Serif а также DejaVu Sans Mono

<font fontName="DejaVu Sans"/>

Из окончательного гида JasperReport:

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

Ссылки на Stackoverflow на том, как правильно рендерировать шрифты в PDF

Контрольный список о том, как правильно сделать шрифт в PDF

Создание шрифтов-расширений с Jaspersoft Studio

Создание шрифтов-расширений с IReport

Я использую IReport для установки шрифта:

Инструменты -> Опции -> Шрифты -> Нажмите Установить шрифт

Затем выберите шрифт и нажмите

-> Экспорт в качестве расширения и имени типа myfont.jar

Добавить эту банку, а также Spring.jar* на ваш путь сборки.

* Копировать Spring.jar от Jaspersoft Ireport-3.7.0 Ireport Модули ext

Для Centos:

врач MSTCOREFONTS.

Потом:

tar -zxvf msttcorefonts.tar.gz
cp msttcorefonts/*.ttf  /usr/share/fonts/TTF/
fc-cache -fv 

Ведь перезапустите JVM.

sudo apt-get install msttcorefonts Работает (на нашей среде развития Ubuntu), но не очень хорошее решение.

Вместо этого мы в комплекте шрифты с нашим приложением на основе этот совет. Отказ Их файл JAR сочиняет следующие шрифты,

  • Преступник
  • Times New Roman.
  • Новый Курьер
  • Comic Sans MS.
  • Грузия
  • Вердана
  • Моноспондент

Прямая ссылка на загрузку JAR:Maven ver 1.0. ДинамичФонс

Есть три метода, чтобы избежать такой проблемы.

Метод 1: Настройка игнорировать отсутствующую свойство шрифта.

JRProperties.setProperty("net.sf.jasperreports.awt.ignore.missing.font", "true");

Или вы можете установить это свойство, введя следующую строку в файл .jrxml.

<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

Способ 2: Настройка свойства шрифта по умолчанию.

JRProperties.setProperty("net.sf.jasperreports.default.font.name", "Sans Serif");

Или вы можете установить это свойство, введя следующую строку в файл .jrxml.

<property name="net.sf.jasperreports.default.font.name" value="Sans Serif"/>

Способ 3: Добавляя отсутствующую свойство шрифта.

Во-первых, установите отсутствующие шрифты в IReport, выбрав «Инструменты >>» >> Шрифты >> Установите шрифт «Затем выберите все шрифты и экспортировать это, нажав на« экспорт в виде расширения »с расширением .jar.

Вы можете использовать эту банку для JasperReports-font.xxxjar, который будет присутствовать в вашей библиотеке проекта или класса.

Я решил это, выбирая только «SansSerif» или «только засерение», а не «ариаль» или «новых римских».

Можете сделать ваши пользовательские шрифты через IrePort и преобразование как файлы JARS

Попробуйте добавить строку

net.sf.jasperreports.awt.ignore.missing.font = true.

к вашему файлу jasperreports.properties.

Джаспер перестает найти один шрифт

Вы можете сделать это, устанавливая шрифты, что означает везде, где вы хотите запустить это конкретное приложение. Простейший способ просто добавить эту линию BL к вашему файлу jrxml:

 <property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>

Надеюсь, поможет.

Я столкнулся с проблемой с моим веб-приложением на основе весны 3 и развернуто на Weblogic 10.3 на Oracle Linux 6. Решение, упомянутое на связь не работал для меня.

Мне пришлось принять следующие шаги - 1. Скопируйте файлы шрифта Arial * .tttf в каталог jrockit_java_home / jre / lib / fonts 2. Сделайте записи шрифтов в fontconfig.properties.src 3. Перезапустите кластер из консоли Weblogic

filename.Arial=Arial.ttf
filename.Arial_Bold=Arial_Bold.ttf
filename.Arial_Italic=Arial_Italic.ttf
filename.Arial_Bold_Italic=Arial_Bold_Italic.ttf

Для Debian

Добавить

non-free contrib

Деб и DEB-SRC в /etc/apt/sources.liste IE:

deb http://ftp.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.debian.org/debian/ squeeze main non-free contrib

потом

apt-get update
apt-get install msttcorefonts

Конечно, вам нужно перезапустить Jasperserver. IE:

/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restart

Изменение для вашей версии / пути.

Создайте отчет Jasper на нескольких языках (Unicode)

1) Установите шрифт в IReport Desginer

2) Создать расширение шрифта (мы будем использовать его в приложениях Classpath)

3) Установите шрифт на ОС (необязательно)

4) Вставить все .ttf of font в Jre-> lib-> каталог шрифтов (в противном случае веб-приложение бросит ошибку шрифта не доступен для JVM)

Если вы используете Maven в вашем проекте, вы можете просто добавить зависимость Jasper-fonts для Pom.xml:

<dependency>
    <groupId>net.sf.jasperreports</groupId>
    <artifactId>jasperreports-fonts</artifactId>
    <version>6.8.1</version>
</dependency>

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

С уважением.

На самом деле я исправил эту проблему очень простым способом

  1. перейти к вашей home path, подобно /root
  2. Создать папку с именем .fonts
  3. Скопируйте свой all your font files к .fonts, вы можете скопировать шрифт от C:\windows\fonts Если вы используете Windows.
  4. sudo apt-get install fontconfig
  5. fc-cache –fv для восстановления шрифтов кэши.

Решение в 2 шага (если вы используете CentOS)

  1. Загрузите пакет Microsoft Core Fonts RPM.

    [root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpm
    
  2. Установите пакет RPM.

    [root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
    

Скопируйте свои шрифты на следующий каталог jdk_home jre lib fonts

Эй, возникли проблемы с просмотром документов, произведенных в Windows?

Вы можете попробовать прекрасное решение легко:

yum install curl cabextract xorg-x11-font-utils fontconfig

RPM -I. https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm.

После этого мне нужно перезагрузить мою систему Centos6.

Источник: http://mscorefonts2.sourceforge.net/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top