Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Generowanie pdf + polskie znaki

1,477 views
Skip to first unread message

KonKomp

unread,
Jul 16, 2009, 7:30:20 AM7/16/09
to
Witam,


Mam problem ... znaki polskie się generują, ale nachodzą na siebie.
Już mnie szlak trafia z tym, także jak ktoś mi pomoże to leci do niego
przelewem 20 zł na połówkę ;-)


Po krótce: używam biblioteki dompdf (nie chcę innej):
http://www.digitaljunkies.ca/dompdf/ i już mi się nawet polskie znaki
generują, ale ... nachodzą na siebie. W sumie może i tak by to mogło
zostać, ale nie lubię jak coś jest niedokończone. Problem leży gdzieś
pewnie w tej biblioteczce - pewnie w jakimś miejscu wystarczy dodać
spacje i już będzie po problemie.

Zmiany jakie dokonałem w bibliotece aby uzyskać polskie znaki, to dodanie:
$options['differences'] = array(161 => 'Aogonek', 177 => 'aogonek',
202 => 'Eogonek',234 => 'eogonek', 166 => 'Sacute', 182 => 'sacute',
198 => 'Cacute', 230 => 'cacute', 209 => 'Nacute', 241 => 'nacute',
211 => 'Oacute', 243 => 'oacute', 172 => 'Zacute', 188 => 'zacute',
163 => 'Lslash',179 => 'lslash', 175 => 'Zdotaccent', 191 => 'zdotaccent',);

w lini 2417 w klasie lib/class.pdf.php

Podejrzewam, że zmiana musi być dokonana w okolicy lini 1020, ale jakoś
mi nie wychodzi.

HTML którego używam:
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-2"/>
</head>
<body>
<div align="center"><font size="+1">Umowa nr C/ID AGENT/ID PARTNER/NR
POŻYCZKI AGENTA/ROK</font></div><BR><BR>
<p style="font-family: times-roman;">ąśćżśżłóŁĄŚÓĆŻŚĘ.</p>
(...)
</body>
</html>

Do wygenerowania z kodu PHP wystarczy coś takiego:
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("contract.pdf");

Może ktoś znajdzie mi rozwiązanie tego problemu?
Mogę wysłać PDF jaki mi wychodzi, ale to już sami zobaczycie ;-)

Moje gg: 1915955, skype: konkee

Pozdrawiam
Konki


KonKomp

unread,
Jul 16, 2009, 10:11:40 AM7/16/09
to
Ok, znalazłem rozwiązanie na tej stronie:
http://bukox.pl/php/dompdf-i-polskie-znakie/

Także zostawiam tu dla potomnych. U mnie to działa ;-)


Jedyne co zrobiłem dodatkowego co nie jest opisane na powyższej stronie,
to w pliku dompdf_config.inc.php zmieniłem definicję na:
define("DOMPDF_DEFAULT_FONT", "arial");
i usunąłem z pliku lib/fonts/dompdf_font_family_cache wszystkie czcionki
zostawiając arialkę, czyli taki wpis:
array (
'arial' =>
array (
'normal' => DOMPDF_FONT_DIR . 'Arial',
'bold' => DOMPDF_FONT_DIR . 'Arial_Bold',
'italic' => DOMPDF_FONT_DIR . 'Arial_Italic',
'bold_italic' => DOMPDF_FONT_DIR . 'Arial_Bold_Italic',
),
)


Pozdrawiam
Konki

KonKomp

unread,
Jul 16, 2009, 2:06:21 PM7/16/09
to
Update: sprawa jest taka że pierwsza metoda także działała, ale polskie
litery w użytej czcionce (times new roman) nakładały się na siebie. Z
czcionką Arial działa bez zarzutu

Pozdrawiam
Konki

KonKomp

unread,
Jul 19, 2009, 10:33:48 AM7/19/09
to
Update nr 2: dompdf jest gówniane. Działało mi na moim lokalnym kompie
(windows), ale jak przeniosłem na serwer to miałem nowe problemy (znaki
nachodzące na siebie, złe dzielenie wyrazów, błąd generowania pdf itp).

Spróbowałem to co mi kolega polecał: tcpdf. Super biblioteka,
generowanie pdf z html itp + dużo innych fajnych rzeczy (np. nagłówek na
każdej stronie, logo itp). Nie miałem też żadnych problemów z polskimi
znakami. Polecam

Pozdrawiam
Konki

0 new messages