Генерация PDF (dompdf). Проблема с кирилицей.

Vladimir_UA

Новичок
Генерация PDF (dompdf). Проблема с кирилицей.

Здравствуйте.

Произвожу генерацию html документа в формат PDF.
Использую dompdf (v. 0.5.0)

Документ содержит русские символы, которые не корректно конвертируются в Pdf.
Пытался сменить шрифты, а именно Arial.

Шрифт взял из дистрибутива windows, для конвертирования использовал встроенную утилиту load_font.php (входит в дистр. dompdf), которая в свою очередь использует ttf2pt1 (v. 3.4.4).

Установка шрифта ни к чему не привела, проблема осталась.

В данный момент решение не найдено.

Если вы работали с dompdf и киррилицей, подскажите решение проблемы?
 

Vladimir_UA

Новичок
to:
Mr_Max

Кириллические символы должны быть.
Шрифт из стандартной винды.
 

Vladimir_UA

Новичок
Автор оригинала: HraKK
Vladimir_UA

Мы не шаманы, а программисты. Незнаю как ты.

Возми и посмотри.
В шрифте кириллические символы - есть.
В pdf русские символы отображаются как символы - "??????" или "каракули".
 

Vladimir_UA

Новичок
Итак, установка дополнительных шрифтов.

Все делаю по инструкции http://www.digitaljunkies.ca/dompdf/install.php#fonts

1. Выбор и проверка шрифта
Выбран шрифт Arial (Reguar, Bold, Italic, Bold + Italic) из дистрибутива Windows, кирилические символы в

шрифте присутствуют - проверено.

Файлы: arial.ttf, arialbd.ttf, ariali.ttf, arialbi.ttf соответственно.

2. Загрузка шрифтов и их конвертирование.
Загрузка шрифтов на сервер с freebsd и ttf2pt1 3.4.4.

Конвертирование с помощью load_font.php (dompdf)
php -f ../load_font.php -- Arial arial.ttf arialbd.ttf ariali.ttf arialbi.ttf

Все проходит нормально, шфрифты записываются в lib/fonts и прописываются в файле конфига

dompdf_font_family_cache.

3. Исходный код документа, который используется для конвертирования в pdf.
Примечание - в документе не указана кодировка.

Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru">
<head>
<style>
body {
  margin: 4cm 1.5cm 1.5cm 2cm;
  padding: 0px;
}

.a {
  font-family: Arial;
}

.b {
  font-family: Times;
}
</style>
</head>
<body>

<h1 class="a">Test font, Тестовый шрифт, 123, !?</h1>
<h1>Test font, Тестовый шрифт, 123, !?</h1>
<h1 class="b">Test font, Тестовый шрифт, 123, !?</h1>

</body>
</html>

На выходе получаем pdf и "иероглифы" место русских символов.


Если явно указать кодировку, например:
Код:
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
или так
Код:
<meta http-equiv="content-type" content="text/html; charset=koi8-r">
тогда получаем pdf, только не с "иероглифами", а со "знаками впросов" место русских символов.


Вот такая проблема....
 

dimagolov

Новичок
Vladimir_UA, это Вам нужно юзать эту либу, ну так почитайте в доке на нее как она юзает шрифт, по дефолтной кодовой странице или как, понимает ли она html в unicode и т.п.
 
Сверху