UFPDF unicode czech language

Май 31st, 2010 по admin Оставить ответ »

Вообщем понадобилось генерить пдф, да не просто пдф а еще и на чешском, чтоб все букавки были с гачками. Полазив по нету был обнаружен чудо инструмент, UFPDF
для того чтоб показались чарки юникодовые нужно сделать фонт.
в комплекте идет прога ttf2ufm.exe которой нудно скормить фонт в формате ttf на выходе получится 3 файла. например для шрифта tahoma.ttf получил tahoma.t1a tahoma.afm tahoma.ufm
потом нужно сделать финт ушами, путем редактирования файла tahoma.ufm
добавляем туда строчки для чарок:

1
2
3
4
5
6
7
8
9
10
11
12
13
U 268 ; WX 692 ; N Ccaron ; G 252 ;
U 269 ; WX 692 ; N ccaron ; G 266 ;
U 273 ; WX 629 ; N dmacron ; G 254 ;
U 256 ; WX 690 ; N Amacron ; G 258 ;
U 257 ; WX 552 ; N amacron ; G 259 ;
U 258 ; WX 690 ; N Abreve ; G 260 ;
U 259 ; WX 552 ; N abreve ; G 261 ;
U 260 ; WX 690 ; N Aogonek ; G 262 ;
U 261 ; WX 552 ; N aogonek ; G 263 ;
U 264 ; WX 692 ; N Ccircumflex ; G 264 ;
U 265 ; WX 512 ; N ccircumflex ; G 265 ;
U 266 ; WX 521 ; N Cdot ; G 254 ;
U 267 ; WX 512 ; N cdot ; G 267 ;

потом заверщающий этам создания шрифта:
в комплекте идет файл makefontuni.php в нем есть метод MakeFont,
скармливаем ему файлы
MakeFont(‘tahoma.ttf’,'tahoma.ufm’);
в итоге получаем файл шрифтов
tahoma.php tahoma.ctg.z tahoma.z
ну и пишем маленький примерчик:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
 
define('FPDF_FONTPATH', 'font/');
include_once('ufpdf.php');
 
$pdf = new UFPDF();
$pdf->Open();
$pdf->SetTitle("UFPDF is Cool");
$pdf->SetAuthor('driversoft.net');
$pdf->AddFont('Tahoma', '', 'tahoma.php');
$pdf->AddPage();
$pdf->SetFont('Tahoma', '', 12);
$pdf->Write(12, "UFPDF is Cool Doručení.\n");
$pdf->Write(12, "K úhradě za");
$pdf->Write(12, "Množství Hezký den a hodně spokojených zákazníků Vám přeje Váš obchod.\n");
$pdf->Close();
$pdf->Output('unicode.pdf', 'F');
 
?>

и радуемся жизни :)

Реклама

Добавить комментарий

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