powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JasperReports PDF Кириллица
25 сообщений из 25, страница 1 из 1
JasperReports PDF Кириллица
    #33945718
vansickle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выводе отчета в PDF строка киррилические символы отображаются наложенными один на другой. Ни в рунете ни на sf не нашел решения проблемы со стороны генерации не нашел, с другой стороны это казалось бы проблема pdf и акробата - если так то буду признателен и за вариант решения с этой стороны.
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #33945792
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это проблема шрифтов. jasperreports использует iText чтобы формировать pdf. А в нем по умолчанию шрифты без кириллических букв.

Поищите в гугле itext cyrillic .Там в какой-то каталог надо windows-овский ttf шрифт кинуть и явно указать в отчете какой шрифт использовать
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #33946126
vansickle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Уже изучал вопрос как jasper выводит pdf и следовательно itext но при беглом осмотре не решил трудности - а с вашей наводки еще раз протестировал и смог справиться с проблемой.
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #33986854
DIMA11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так поделитесь опытом, плиз :)
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #34007673
Олег Гапон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подготовка:

1. Наличие кирилических шрифтов.
2. В CLASSPATH указать папку где лежат шрифты.


Установка (например в iReport):

В Properties для текстового элемента закладка Font...

1. PDF Font name устанавливаем в External TFT font...
2. True type Font устанавливаем Arial (ARIAL.TFT) (например)
3. Включаем галочку PDF Embedded
4. PDF Encoding устанавливаем в CP1251 (Ciryllic)


В XML варианте должно быть типа такое:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<font 
  fontName="Arial"
  pdfFontName="ARIAL.TTF"
  size="18" 
  isBold="false"
  isItalic="false"
  isUnderline="false"
  isPdfEmbedded ="true"
  pdfEncoding ="Cp1251"
  isStrikeThrough="false"
 />

P.S
CLASSPATH в iReport можно установить в пункте меню Classpath, но для
Вашего отдельного приложения побеспокоится о CLASSPATH Вы должны сами

Можно также добавить шриф для всего отчёта с вышеуказаными свойствами и потом использовать этот шриф для всех элементов.
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #34009686
DIMA11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Попробую...
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #34034559
vansickle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я бы так же рекоммендовал заглянуть в samples/fonts - там показано как в runtime указывать шрифты для отчета
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #34034587
vansickle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну и само собой можно указывать просто полный путь для файла со шрифтом
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
JasperReports PDF Кириллица
    #36227390
Andrej_Svininykh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сайте проекта Openbravo POS ru приводится методика решения данной проблемы для случая если отчёты формируются внутри самостоятельной программы использующей библиотеки и шаблоны JasperReport.

Андрей Свининых
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
JasperReports PDF Кириллица
    #36949942
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Олег Гапон
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<font 
  fontName="Arial"
  pdfFontName="ARIAL.TTF"
  size="18" 
  isBold="false"
  isItalic="false"
  isUnderline="false"
  isPdfEmbedded ="true"
  pdfEncoding ="Cp1251"
  isStrikeThrough="false"
 />
CLASSPATH в iReport можно установить в пункте меню Classpath, но для
Вашего отдельного приложения побеспокоится о CLASSPATH Вы должны сами

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

Может за прошедшие 6 лет появились варианты просто пофиксать отображение кириллицы в PDF?

куда и как в проект можно подложить шрифты и какие шрифты можно бесплатно использовать в коммерческом проекте?
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #36953678
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отчет по побежденному багу.

Первое - очень мало информации, буквально по крохам из нескольких сотен страниц полученных по десятку запросов получилось составить картину.
Второе - jasper reports имеет довольно таки слабую документацию. Плюс их сайт сменил карту сайта, так что старые ссылки осыпались.

Решение:
1. Нашел jasperreports-fonts. Это шрифты от Debian под доступной лицензией, запакованные jasper-ми.
2. Он не доступна в публичных мавен репах. Перепаковал чтобы не вводить свой репозиторий. и подключил через maven dependency.
3. Дальше прописал дефолтовым шрифтом - шрифт что находится в fonts.
Код: plaintext
net.sf.jasperreports. default .font.name = DejaVu Sans

pdfFontName="ARIAL.TTF" isPdfEmbedded ="true" pdfEncoding ="Cp1251" объявлены deprecated, потому правильно фонт задается через fontName="Arial"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
JasperReports PDF Кириллица
    #37624633
Natarts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA,

Очень рада, что нашла ваше сообщение!
Информации действительно мало.

Я использую JasperReports версии 4.0.1.
не до конца поняла, как же нужно поступить со шрифтами.

у меня есть шрифты в jasperreports-fonts-4.0.1.jar, лежат в папке tomcat\lib (Jasper работает под Tomcat 6.0)
там как раз шрифты DejaVu.

вопрос 1. нужно ли их как-то еще перепаковывать?

что значит "Они не доступны в публичных мавен репах"?

прописала дефолтным шрифтом DejaVu Sans.

вопрос 2. при чем здесь Arial, если мы прописали Sans?
fontName="Arial"

После изменения шрифта на DejaVu Sans в pdf все так же все буквы в одном месте.

Очень жду ответа!

Наталия
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #37624956
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NatartsVoDA,

Очень рада, что нашла ваше сообщение!
Информации действительно мало.

Я использую JasperReports версии 4.0.1.
не до конца поняла, как же нужно поступить со шрифтами.

у меня есть шрифты в jasperreports-fonts-4.0.1.jar, лежат в папке tomcat\lib (Jasper работает под Tomcat 6.0)
там как раз шрифты DejaVu.

вопрос 1. нужно ли их как-то еще перепаковывать?

что значит "Они не доступны в публичных мавен репах"?

прописала дефолтным шрифтом DejaVu Sans.

Очень жду ответа!

НаталияПривет =)

jasperreport-fonts.jar должны быть доступны приложению. Это и нужно проверить.
дальше правильно прописать в jasperreports.properties
а сам файл подложить в правильное место, где его найдет jasper.

Это основное.
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #37624959
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NatartsVoDA,

Очень рада, что нашла ваше сообщение!


что значит "Они не доступны в публичных мавен репах"?

вопрос 2. при чем здесь Arial, если мы прописали Sans?
fontName="Arial"

Очень жду ответа!

Наталияуточнения, которые не очень важны для решения задачи:

1. Фраза, что они не доступны в публичных мавен репозиториях означала, что эти фонты не лежали в repo1.maven.org - на основном репе мавена.
Чтобы не нужно было заморачиваться в моем проекте поскольку он собирается через мавен - я сделал проще: jasperreports-fonts перепаковал в артефакт maven и добавил в депенденсы к основному проекту.

2. Arial при том, что я комментировал вариант от Олега Гапона. Это просто кусок из его примера. В вашем случае идет замена дефолтового шрифта, потому никакие теги font не нужны в принципе =)


Я рад, что кому то еще пригодилась эта информация :)
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #37627798
Natarts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA,

Большое спасибо!
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #37631861
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NatartsVoDA,

Большое спасибо!Пожалуйста
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #37661932
Natarts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VoDA,

обнаружила следующую вещь.
Если я прямо через Jasper открываю Preview отчета в PDF - тогда с русскими буквами все ок. Так я сделала почти случайно - у меня все отчеты с параметрами, и я их напрямую не открываю.

Jasper работает у меня под Tomcat 6.0, и оттуда уже все PDF-rb выходят исковерканными, все буковки в одну точку собираются.

Подскажите, что делать с этим?

Заранее благодарю,
Наталия
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #37664310
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NatartsVoDA,

обнаружила следующую вещь.
Если я прямо через Jasper открываю Preview отчета в PDF - тогда с русскими буквами все ок. Так я сделала почти случайно - у меня все отчеты с параметрами, и я их напрямую не открываю.

Jasper работает у меня под Tomcat 6.0, и оттуда уже все PDF-rb выходят исковерканными, все буковки в одну точку собираются.

Подскажите, что делать с этим?

Заранее благодарю,
Наталияс подобной ситуацией не сталкивался. предложу поискать с чем может быть связано... помучать гугл на тему сломанных PDF.

уточню что у меня система бегала под Tomcat 6.0, PDF-ки выходили клиенту рабоче способными.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
JasperReports PDF Кириллица
    #38584438
nkognito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NatartsVoDA,

Jasper работает у меня под Tomcat 6.0, и оттуда уже все PDF-rb выходят исковерканными, все буковки в одну точку собираются.

Наталия

Никто не решил эту проблему? Тестирую на маке (локально), собрал свой шрифт на основе Ариал, запаковал в jar и положил в /libs/. Русские буковки друг на дружку накладываются...
Заранее спасибо.
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #38588454
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nkognito,

Локально, это Tomcat локальный или без Tomcat? Без Tomcat тупой тестовый пример работает?
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #38590350
nkognito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBeznkognito,

Локально, это Tomcat локальный или без Tomcat? Без Tomcat тупой тестовый пример работает?

Локально это на Томкате, но том, что можно подключить через Eclipse, отдельно не ставил.
Тупой тестовый пример (без коннекта к БД) работает.
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #38591109
nkognito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге обновился до последней версии (5.5.1 на текущий момент), убрал все лишнии jar (видимо остались от предыдущих версий) и все заработало))
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #38621652
ryasal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо VoDA, получилось (версия JasperReports последняя на сегодня, 5.5.1 ). Допишу про мавен и куда положить файл .properties

По шагам:
1. Подключить в pom.xml:
Код: xml
1.
2.
3.
4.
5.
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports-fonts</artifactId>
            <version>4.0.0</version>
        </dependency>


2. создать в src/main/web/WEB-INF/classes файл jasperreports.properties с содержимым:
Код: css
1.
net.sf.jasperreports.default.font.name = DejaVu Sans


3. Проверить, чтоб в шаблоне отчета .jrxml для шрифтов было fontName="DejaVu Sans" , или просто удалить теги с названиями шрифтов.
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #38624505
ryasal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4. Если разворачиваете на Apache Tomcat, то иногда нужно еще дать права на запись в папку .../Tomcat/temp (по крайней мере в Win 7, Win 8).
...
Рейтинг: 0 / 0
JasperReports PDF Кириллица
    #38628103
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ryasal,

Ну вот причем тут detault.font.name ? А что других шрифтов нельзя использовать что ли? И не обязательно же в отчете один шрифт.
Насколько понимаю default.font.name должен использоваться, если для каких-то элементов в jrxml фонт вообще не установлен.
Тогда jasper его туда подпихнет. А к проблеме русификации это не относится.

Несколько лет назад я баловался с pdf (в продуктив не пошло, поэтому могу и обмануть чуть).

Мои завиральные измышления:
Если приложению доступен соответствующий jar со шрифтами - вообще ничего делать не надо, там само все подхватится.
В новых версиях jasper, как правильно указал VoDA не надо только использовать isPDFEmbedded и т.д. Только fontName.

Чтобы не было всяких непоняток когда шрифт доступен, когда нет - установить
net.sf.jasperreports.awt.ignore.missing.font=false
чтобы вылетело сразу и не надо было гадать что jasper вместо отсутствующего фонта подставляет.

Делал по советам умного дядьки
http://mdahlman.wordpress.com/2010/05/28/jaspersoft-v3-7-font-extensions/
и взлетело все почти без проблем.

Смутно помнится, что вроде была проблема как у nkognito, полечилось так же - удалил лишние jar-ки (кажется это был iText, который не совпадал с версией iText у jasper). И все.
А мавеном брать шрифты или просто руками скопировать jar-ку... Какая нафиг разница. Тем более что в jasperreports-fonts-x-y-z.jar только DejaVu шрифты лежат.

Если что забыл, поправляйте, склероз у меня
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JasperReports PDF Кириллица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]