traži:  
 php.com.hr > članci > Savjet vrijedan 995 $, PDF i hrvatska slova

Savjet vrijedan 995 $, PDF i hrvatska slova
 
26.01.2008.


Barem vam se jednom desilo, ili će vam se desiti da ćete trebati PDF generirati iz PHP-a, no ubrzo ćete odustati kada primjetite da nema hrvatskih slova...

UFPDF, FPDF, TCPDF, CPDF, PDFlib... samo su neki od library-ja i klasa koje su ponuđene za izradu PDF dokumenata iz PHP-a.

Oni koji su probali raditi sa bilo kojim od nabrojanih alata, susreli su se barem sa jednim od slijedećih problema:

  1. Izgenerirani PDF file je ogroman i samim time neupotrebljiv
  2. Pretvaranje html koda u pdf je gotovo neizvedivo
  3. Hrvatski znakovi ne rade, kao niti simboli poput €,  £
  4. Generiranje većih datoteka traje predugo

Nakon što se uvjerite u sve navedeno, vidjet ćete da je zapravo jedini dokumentirani način kako sve 3 stavke zaobići i uspješno doći do rješenja, da platite 995 $ lihvarima koji se zovu PDFlib GmbH i kupite serversku verziju biblioteke koja podržava UTF-8 za linux.

Na žalost, navedena gospoda nisu u mogućnosti prodati desktop licencu za linux pod cijenom od 250 $, iako su isporučili metodu sa kojom je vrlo jednostavno upisati Licence Key i koristiti ga neovisno o tome da li je na serveru licencirana verzija ili ne.

Nakon što sam dobio lijepe pismene izraze sućuti od gospode iz dotične kompanije, zaputio sam se u mukotrpnu avanturu pronalaženja vlastitog rješenja, te ga na kraju i pronašao.

U slijedećih nekoliko rečenica pojasniti ću postupak kako koristeći besplatan PDFlib Lite  dobiti hrvatske znakove, bez podrške za UTF-8. Datoteka će biti svega ~70-ak kb veća od one koja ne podržava domaći encoding.


Korak 1:
Nabavite verziju DOMPDF-a ( http://www.digitaljunkies.ca/dompdf/ ) i instalirajte slijedeći upute na stranici.


Korak 2:
Skinite klasu ConvertCharset sa http://mikolajj.republika.pl/ ili sa naših stranica.


Korak 3.
Html template koji punite podacima iz baze postavite na encoding windows-1250, bez BOM zaglavlja, te  bez html definicije encodinga u headu dokumenta.


Korak 4.
Sve tablice i polja u bazi postavite na utf-8.


Korak 5:
Kod poziva DOMPDF-a postavite konverziju kao u primjeru:

$convertcharset = new ConvertCharset();
$html = $convertcharset->Convert($html, 'utf-8', 'windows-1250');
$dompdf->load_html($html);


Korak 6:
Napravite fontove za pdf kako je opisano na stranici DOMPDF-a. Ukoliko vam ne polazi za rukom možete ih skinuti sa naših stranica pod rubrikom 'skripte'. Također zamijenite i dvije  konfiguracijske datoteke za fontove koje se nalaze u paketu.


Korak 7:
Uvjerite se da server na koji postavljate skripte podržava PHP 5 i PDFlib lite, poput ovog servera tvrtke PLUS ( www.plus.hr )

Ako ste sve napravili kako je navedeno, upravo ste dobili podršku za domaće znakove u PDF-u i uštedjeli sebi 995 $.

 


članci
 
 © 2004 - 2008 php.com.hr