Сергей К.
1649 сообщений
#15 лет назад


Всем добрый день!
Столкнулся вот с какой проблемой:
Для одного своего скрипта создаю PDF документ средствами PHP. Все работает нормально, пока дело не доходит до спец символов и букв французкого(также и русского) языка.
Следующие символу не показываются в PDF. Вместо них кракозябры:
é à ç ... (хы. вот это показывается и у меня в PDF файле. Не сами буквы, а их коды, прикрепляю скрин с этими буквами, может кто то не учил французкий)
то есть буквы французкого языка. Пробовал сделать изначально с использованием библиотеки FPDF. Потом узнал что в ней не поддерживается UTF-8. Переходил на TCPDF, о котором пишут, что якобы поддерживает эту кодировку. Но увы, ситуация никак не изменилась.

Большая просьба, кто столкнулся с данной проблемой, ПОМОГИТЕ. Буду весьма благодарен.

PS: Проши всех писать в тему, с конкретными решениями(если таковы имеются). Перепробовал кучу способов решение, без результатов.
Роман Ч.
762 сообщения
#15 лет назад
Почитайте спецификацию, на сколько я помню, там нужно подключать шрифты...
Сергей К.
1649 сообщений
#15 лет назад
rech, Подключал. Не помогло.
Евгений О.
2989 сообщений
#15 лет назад
Если делаете с помощью PDFlib попробуйте посмотреть функции pdf_findfont, pdf_setfont
Сергей К.
1649 сообщений
#15 лет назад
elosoft, (FPDF, TCPDF)
Евгений О.
2989 сообщений
#15 лет назад
Аналогично
для TCPDF
для FPDF

p.s. вот на пример наткнулся
Сергей К.
1649 сообщений
#15 лет назад
Что то закалдовал.
Вот что имею
require('include/lib/tcpdf_php4/tcpdf.php';
require('include/class/fpdf_extend.php';
$pdf= new PDF("P","pt",'A4',false,'UTF-8',true);
$pdf->SetFont('Arial','B',20);

//echo $r; тут в браузере символы выводятся нормально

$pdf->MultiCell(370,20, $text,0,"FJ",0);// а вот при записи в пдф лажа, выходят кракозябры, не то что надо
Евгений О.
2989 сообщений
#15 лет назад
Не видя кода трудно что-то сказать. вот здесь есть куча примеров. может поможет...
Сергей К.
1649 сообщений
#15 лет назад
Кстати, сам решил проблему
Может еще кому то понядобится:

$pdf->MultiCell(370,20,utf8_decode( $text),0,"FJ",0);
Сергей К.
1649 сообщений
#15 лет назад
Более детально как это сделал.

В БД поле храним в кодировку utf8_unicode_ci
Потом когда из базы читаем ставим чтоб брал текст с нужной кодировкой:
mysql_query("SET character_set_client = utf-8);


Подключаем библиотеку

require('include/lib/tcpdf_php4/tcpdf.php');
require('include/class/fpdf_extend.php');

Создаем новый документ и подключаем нужный шрифт

$pdf= new PDF("P","pt",'A4',false,'UTF-8',true);
$pdf->SetFont('Arial','B',20);


Пишем в файл
$pdf->MultiCell(370,20, utf8_decode($text),0,"FJ",0);