powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как экспортировать в pdf dataTable (проблема с кодировкой и шрифтом)?
5 сообщений из 5, страница 1 из 1
Как экспортировать в pdf dataTable (проблема с кодировкой и шрифтом)?
    #39583063
AlenaShA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
проблема в экспорте таблицы в pdf формат.
Код: html
1.
2.
3.
4.
<h:commandLink>
                                    <p:graphicImage value="../../images/pdf.png" width="30"/>
                                    <p:dataExporter type="pdf" target="roadTable" fileName="road" pageOnly="true" encoding="cp1251"/>
                                </h:commandLink>



При указании кодировки windows 1251 - все буквы слипаются. При UTF-8 вообще не распознается кириллица.
Выяснила, что проблема в шрифте, т.к. базовый шрифт в iText HELVETICA - он содержит только латиницу. А как поменять шрифт в библиотеке не очень понятно. Нашла такое решение:
Код: java
1.
2.
3.
4.
Document doc= (Document) document;            
            Font font = FontFactory.getFont("C:\\Windows\\Fonts\\times.ttf", "Cp1251", BaseFont.EMBEDDED);
            BaseFont bf = BaseFont.createFont("C:\\Windows\\Fonts\\times.ttf", "Cp1251", true);
            doc.open();


вставляю это в препроцесс - но ничего не меняется. То ли не туда вставляю, то ли не то делаю. Подскажите, пожалуйста, как экспортировать в пдф кириллицу????
...
Рейтинг: 0 / 0
Как экспортировать в pdf dataTable (проблема с кодировкой и шрифтом)?
    #39583083
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было бы тактично с вашей стороны указать что вы используете PrimeFaces.
Судя по всему там шрифт захардкожен:
https://github.com/primefaces/primefaces/issues/146
https://github.com/primefaces/primefaces/blob/master/src/main/java/org/primefaces/component/export/PDFExporter.java#L178

Что именно должно делать ваше решение не очень понятно. Где шрифты к документу применяются-то?
...
Рейтинг: 0 / 0
Как экспортировать в pdf dataTable (проблема с кодировкой и шрифтом)?
    #39585824
AlenaShA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, мой вопрос то как раз в этом, как применить изменения. Нашла много информации, где применяется к параграфу ,строке, которые ручками вводятся, а как добавить табличку из xhtml странички не пойму :(
...
Рейтинг: 0 / 0
Как экспортировать в pdf dataTable (проблема с кодировкой и шрифтом)?
    #39586444
AlenaShA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кому-нибудь пригодиться, я решила эту проблему так:
кодировку указана "CP1251", буквы есть но все "слипшиеся". Проблема в шрифте. Чтобы поменять шрифт нужно переписать библиотечный класс PDFExporter. Для этого создаем у себя пакет org.primefaces.component.export и в нем создаем класс PDFExporter. Находим на github исходник копируем в этот файлик.Там есть строчка в методе exportPDFTable :
private String tahoma="C:\\Windows\\Fonts\\tahoma.ttf";
.........
this.cellFont = FontFactory.getFont(tahoma, string1);
this.facetFont = FontFactory.getFont(tahoma, string1, Font.DEFAULTSIZE, Font.BOLD);

Вместо tahoma можете указывать любые шрифты,. содержащие кириллицу и все ОК.
...
Рейтинг: 0 / 0
Как экспортировать в pdf dataTable (проблема с кодировкой и шрифтом)?
    #39586446
AlenaShA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, спасибо большое, ваша ссылка помогла
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как экспортировать в pdf dataTable (проблема с кодировкой и шрифтом)?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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