Шрифт недоступен для JVM с отчетами Jasper
Я пытаюсь создать отчет с DynamicJasper, но я получаю следующую ошибку:
net.sf.jasperreports.engine.util.JRFontNotFoundException:
Font 'Arial' is not available to the JVM.
msttcorefonts установлен, но я думаю, что JVM не использует никаких шрифтов из него.
Я использую Ubuntu 10.04.
Как я могу это исправить?
17 ответов:
Я попытался установить mscorefonts, но пакет был установлен и обновлен.
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(как показано выше, убедитесь, что вы приняли лицензионное соглашение!) и проблема была решена.
Я использую IReport для установки шрифта:
Сервис -> Параметры -> шрифты -> нажмите установить шрифт
выберите шрифт и нажмите кнопку
-> экспорт как расширение и введите имя myfont.банку
добавить эту банку, а также весной.банку* в свой путь сборки.
*копия весна.jar от Jaspersoft\iReport-3.7.0\ireport \ modules\ext
JasperReports поднимает a JRFontNotFoundException в случае, когда шрифт, используемый внутри шаблона отчета, недоступен для JVM как системный шрифт или шрифт, поступающий из расширения шрифта JR. Это гарантирует, что все проблемы, вызванные несоответствиями метрик шрифтов, будут устранены, и у нас есть раннее предупреждение о несоответствии.
Джаспер сообщает пытается помочь в вашем отчете развития, заявив, что это не удается экспортировать отчет правильно, так как он не может найти шрифт, определенный в
TextFieldилиStaticText<font fontName="Arial"/>Да, вы можете отключить, установив net.научная фантастика.jasperreports.ОУ.игнорировать.недостающий.шрифт false, но вы будете иметь экспорт несоответствий.
Да, вы можете установить шрифт как системный шрифт JVM (но вам нужно сделать это на каждом используемом ПК, который может генерировать отчет, и вы все еще можете иметь проблемы с кодировкой).
правильный путь!
использовать Расширения Шрифта!, если вы хотите создать свой собственный (см. ссылку ниже), jasper reports также распространяет jar-расширение шрифта по умолчанию (
jasperreports-fonts-x.x.x.jar), который поддерживает fontNameDejaVu Sans,DejaVu SerifиDejaVu Sans Mono<font fontName="DejaVu Sans"/>из руководства JasperReport Ultimate:
мы настоятельно рекомендуем людям использовать только шрифты, полученные из шрифта расширения, потому что это единственный способ убедиться, что шрифты приложение будет доступно при выполнении отчетов по адресу во время выполнения. Использование системных шрифтов всегда несет риск для отчетов нет для правильной работы при развертывании на новой машине это может не иметь эти шрифты установлены
ссылки на StackOverflow о том, как правильно отображать шрифты в pdf
памятка о том, как правильно шрифт в pdf
Для CentOS:
wget msttcorefonts
затем:
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. DynamicFonts
есть три способа, чтобы избежать такой проблемы.
метод 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 : отсутствует свойство font.
Сначала установите отсутствующие шрифты в IReport, выбрав "Инструменты > > Параметры > > шрифты > > установить шрифт", затем выберите шрифт all и экспортируйте его, нажав" экспорт как расширение".расширение jar.
вы можете использовать эту банку для Jasperreports-font.X.X.X.jar который будет присутствовать в вашей библиотеке проектов или пути к классам.
попробуйте добавить строку
net.научная фантастика.jasperreports.ОУ.игнорировать.недостающий.шрифт правда=
к вашим jasperreports.файл свойств.
вы можете сделать это, установив шрифты, то есть везде, где вы хотите запустить это конкретное приложение. Самый простой способ-просто добавить эту строку bl в ваш файл jrxml:
<property name="net.sf.jasperreports.awt.ignore.missing.font" value="true"/>надеюсь, что это помогает.
я столкнулся с проблемой с моим веб-приложением, основанным на Spring 3 и развернутым на Weblogic 10.3 на Oracle Linux 6. Решение, упомянутое в ссылке не работает для меня.
Я должен был сделать следующие шаги - 1. Скопируйте Arial*.файлы шрифтов ttf в каталог jrockit_java_home/jre/lib / fonts 2. Сделайте записи шрифтов в fontconfig.свойства.src 3. Перезапустите кластер из WebLogic console
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 contribto deb и deb-src в /etc/apt / sources.список 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. т. е.:
/opt/jasperreports-server-cp-4.5.0/ctlscript.sh restartизменение для вашей версии / пути.
создать отчет jasper на нескольких языках (Unicode)
1) Установите шрифт в iReport desginer
2) создать расширение шрифта (мы будем использовать его в приложениях classpath)
3)установить шрифт в ОС(опционально)
4)вставить все .ttf шрифта в каталоге jre->lib - > fonts (в противном случае веб-приложение будет выдавать шрифт ошибки, недоступный для JVM)
На самом деле я исправил эту проблему очень простым способом
- перейти к вашей
home path, как/root- создать папку с именем
.fonts- скопировать
all your font filesдо.fonts, вы можете скопировать шрифт изC:\windows\fontsесли вы используете Windows.sudo apt-get install fontconfigfc-cache –fvчтобы запретить кэширование шрифтов.
Эй возникли проблемы с просмотром документов, созданных в Windows?
вы можете попробовать прекрасное решение легко:
yum install curl cabextract xorg-x11-font-utils fontconfig
после этого мне нужно перезагрузить мою систему CentOS6.
источник: http://mscorefonts2.sourceforge.net/
решение в 2 этапа (если вы используете centOS)
загрузите пакет Microsoft core fonts rpm.
[root@WEBSVR~/]# wget http://www.itzgeek.com/msttcore-fonts-2.0-3.noarch.rpmустановите пакет rpm.
[root@WEBSVR~/]# rpm -Uvh msttcore-fonts-2.0-3.noarch.rpm
Comments