FPDF и кирилица.

chulim

Новичок
FPDF и кирилица.

Прочитал статью на detail, сделал как в примере и все вроде хорошо.
Делаю свою PDF-ку и кириличный шрифт расползается, т.е. получается вида
'Эт о м о й т е к с т'
Латинскими все ок.
Код
PHP:
$fpdf=new FPDF();
$fpdf->Open();
$fpdf->AddFont('Times New Roman Bold', '', 'timesbd.php');
$fpdf->AddPage();
$fpdf->SetFont('Times New Roman Bold','',12);
$fpdf->SetDisplayMode('real', 'default');
$fpdf->SetXY(0,0);
$fpdf->Text(150, 15, 'Это мой текст');
Это как-нибудь можно победить?
Пробовал использовать PDFLib, но кроме коллекции кракозябов ничего не получилось :(

-~{}~ 11.06.04 10:34:

Народ, ау.
Никто не работает с PDF или ни у кого нет такой проблемы.
Полистал форум, это проблема всплывала несколько раз, но толкового ответа так и не прозвучало. У кого то заработала PDFLib с не стандартными шрифтами, кто-то перекодирует в хэш, у кого-то получается неимоверный размер PDFки.
Или ткните в то, что работает нормально.

-~{}~ 11.06.04 13:15:

Ладно, всем спасибо за помощь.
С FPDF так ничего и не получилось, а вот для PDFLib нашел у фидошников.
php+pdflib+cyrillic = YESS
Hi, Vitaly!

Пят Апp 05 2002, Vitaly N. Kravchenko writes to Alexander Tkalich:


VNK> Alexander Tkalich <[email protected]> wrote:

>> Hello, All!
>>> Кто нибудь решал сабжевую проблему?

>> Вствкой TTF шрифтов в документ.
>> Под линуксом не пробовал, под виндой - работает без проблем.
>> $font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
>> if ($font) {
>> pdf_setfont($pdf, $font, 10);
>> }
>> Только шрифты должны быть изначально русифицированы
>> во второй половине таблицы символов 128- 255, а не юникодно.

VNK> Во-во! Я ж и говорил, что проблема в шрифтах..

VNK> То: тому, кто задавал вопрос: разберешься, запости в эху..
VNK> Я у себя под Фрей эту штукуевину не решил..(хотя и не сильно старался)..

Решил я траблу таки :)))
pdflib-4.0.2
шрифты - трутайпы кирилизованные
создаещь файлик /your/path/pdflib.upr
--
PS-Resources-1.0
FontAFM
FontPFM
FontOutline
Encoding
.
% Directory prefix example for Windows: /c:/psfonts
//home/httpd/html/fonts
FontAFM
LucidaSansCyr=lscyr.afm
Code-128=Code_128.afm
Courier=Courier.afm
Courier-Bold=Courier-Bold.afm
Courier-BoldOblique=Courier-BoldOblique.afm
Courier-Oblique=Courier-Oblique.afm
Helvetica=Helvetica.afm
Helvetica-Bold=Helvetica-Bold.afm
Helvetica-BoldOblique=Helvetica-BoldOblique.afm
Helvetica-Oblique=Helvetica-Oblique.afm
Symbol=Symbol.afm
Times-Bold=Times-Bold.afm
Times-BoldItalic=Times-BoldItalic.afm
Times-Italic=Times-Italic.afm
Times-Roman=Times-Roman.afm
ZapfDingbats=ZapfDingbats.afm
.
FontPFM
Foobar-Bold=foobb___.pfm
% Example for an absolute path name with the prefix not applied (two equal
signs)
%Mistral==c:/psfonts/pfm/mist____.pfm
.
FontOutline
%Code-128=Code_128.pfa

>Courier-Cyr=coucyr.ttf

% это твой кирилизованный ттф
%Courier-Cyr=cour.ttf
.
Encoding
cp1250=cp1250.enc
cp1250=cp1250.cpg
cp1251=cp1251.cpg
cp1252=cp1252.cpg
cp1253=cp1253.cpg
cp1254=cp1254.cpg
cp1255=cp1255.cpg
cp1256=cp1256.cpg
cp1257=cp1257.cpg
cp1258=cp1258.cpg

iso8859-2=iso8859-2.enc
iso8859-2=iso8859-2.cpg
iso8859-3=iso8859-3.cpg
iso8859-4=iso8859-4.cpg
iso8859-5=iso8859-5.cpg
iso8859-6=iso8859-6.cpg
iso8859-7=iso8859-7.cpg
iso8859-8=iso8859-8.cpg
iso8859-9=iso8859-9.cpg

iso8859-9=iso8859-9.enc
iso8859-10=iso8859-10.cpg
iso8859-13=iso8859-13.cpg

% ISO 8859-14 doesn't fully work since it uses characters outside AGL!
iso8859-14=iso8859-14.cpg
iso8859-15=iso8859-15.cpg
iso8859-16=iso8859-16.cpg
iso8859-15=iso8859-15.enc
.

--


а дальше
--pdftest.php-
$pdf = pdf_new();
pdf_open_file($pdf, "testrus.pdf");
pdf_set_info($pdf, "Author", "You my master");
pdf_set_info($pdf, "Title", "Test for PHP wrapper of PDFlib 2.0");
pdf_set_info($pdf, "Creator", "See Author");
pdf_set_info($pdf, "Subject", "Testing");

pdf_set_parameter($pdf,"resourcefile","/your/path/pdflib.upr");
pdf_set_parameter($pdf,"prefix","/your/path/fonts");

pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
$font = pdf_findfont($pdf, "Courier-Cyr", "cp1251", 1);
if ($font) {
pdf_setfont($pdf, $font, 15);
};
pdf_show_xy($pdf,"Courier. юабцдефгхйклмнопярстувьычъпк",100,700);
pdf_show_xy($pdf,"Courier. ЮАБЦДЕФГХЙКЛМHОПЯРСТУВЬЫЧЪ¬¦",100,680);

pdf_end_page($pdf);

pdf_close($pdf);
pdf_delete($pdf);

--
и русский текст внутри пдф нужно писать в кодировке win1251
Langry
В php 4.3.4 стоит еще PDFLib 4.0.2 а в 4.3.6 добавили уже версию 5.0.3, которая без проблем показала кириличные шрифты, но через всю страницу напечатала url pdflib.com (типа демка).
 
Сверху