![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Dreamtraveler |
|
||||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
Здравствуйте.
Опишу задачу: Необходимо из шаблона (FreeMarker) сгенерировать сначало html текст, а затем pdf документ. С первой часть задачи справились. Теперь для генерации pdf отчета использую iText. Подсовываю в iText ту часть html текста которую хочу преобразовать в pdf парсю и вывожу в поток для сохранения на машине клиента:
Вот такая простая схема. Проблемма в том что русский текст в pdf не отображается. Посмотрел google и нашёл там такое решение:
Теперь отображает текст на русском если его обернуть в параграф par, а затем добавить в документ. Но если парсер возвращает класс PdfPTable ни какое оборачивание в параграф не помагает. Методов установки шрифта в уже созданной таблице я не нашёл. Подскажите как можно установить шрифт в уже созданой таблице. В книге по iText для парсинга html предлогают использовать библиотеки старонних производителей (ICEbrowser) например. но добавление еще одной библиотеки в проект придется обосновывать. |
||||
|
|||||
Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: 2 Всего: 16 |
А невозможность работы с русским текстом в таблицах - недостаточное обоснование?
|
|||
|
||||
Dreamtraveler |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
||||
|
||||
Dreamtraveler |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 23.11.2009 Репутация: нет Всего: нет |
И так ресурс ожил... https://xhtmlrenderer.dev.java.net/
Для осуществеления задуманного нужно использлвать связку: jTidy + xhtmlrenderer(R8) + iText. Причем нужна бибилиотека iText 2.0.8 в другом случае может не сработать. Вот легкий пример:
Вот так. Спасибо за внимание. Да забыл добавить что : должна присутствовать строка: <?xml version="1.0" encoding="Cp1251"?> в html если хотите Cp1251. должен быть определен стиль, например так <body style = "font-family: Arial;"> чтоб русский текст отобразить. Это сообщение отредактировал(а) Dreamtraveler - 24.12.2010, 08:55 |
|||
|
||||
uzer3d |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 8.1.2008 Репутация: нет Всего: нет |
Я использовал xhtmlrenderer.
Что бы работало под iText 5.0 (например если у вас в проекте уже используеться iText выше второй версии) необходимо скачать xhtmlrenderer source и поменять название пакетов, собрать джарик, не забыть добавить resource. И все будет работать.
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |