2012-05-24 4 views
3

FPDF를 사용하여 생성 된 송장에 폴란드 문자가 올바르게 표시되도록하는 데 문제가 있습니다. 문제가되는 FPDF 또는 Font를 사용하고 있는지 확실하지 않습니다. UTF-8은 PHP 구성 및 MySQL 구성의 서버에서 올바르게 설정됩니다. 모든 폴란드어 문자는 웹 사이트에서 코드에서 가져오고 데이터베이스에서 오는 텍스트로 올바르게 나타납니다. FPDF에서

:
- 원문 :
Zażółć gęślą JAZN :

- // 추가 작업이
로 나타납니다으로 결과 : ZażóÅ,Ä ‡ GA ™ A> 라 ... jaźŠ"

- // 다음과 같은 변경 사항을 적용한 후
FPDF를 사용하여 폴란드 문자를 표시하는 문제가 있습니까?

html_entity_decode(utf8_decode($string),ENT_QUOTES) 
,536,913,632 10

결과 : Za? ó ?? g ?? l? JA ?? :

- // 다음과 같은 변경 사항을 적용한 후

iconv("UTF-8", "ISO-8859-2", $string) 

결과 : Za¿ó³æ gê¶l ± ja¼ñ :

이 두 글꼴에 내장 발생 Arial과 Times의 나는 http://www.fpdf.org/en/tutorial/tuto7.htm 단계를 사용하여 Tellural이라는 글꼴을 만들었습니다. 그러나이 문제를 해결하는 것으로 나타나지 않습니다.
이 글꼴은 Tellural.php이며, 포함 : 나는 또한 그러나이 아무런 효과가 나타나지 않습니다 http://acko.net/blog/ufpdf-unicode-utf-8-extension-for-fpdf/을 사용했다

<?php 
    $type='TrueType'; 
    $name='Tellural'; 
    $desc=array('Ascent'=>886,'Descent'=>-216,'CapHeight'=>699,'Flags'=>32,'FontBBox'=>'[-521 -216 1213 891]','ItalicAngle'=>0,'StemV'=>70,'MissingWidth'=>822); 
    $up=-106; 
    $ut=73; 
    $fpdf_charwidths['tellural']=array(
      chr(0)=>822,chr(1)=>822,chr(2)=>822,chr(3)=>822,chr(4)=>822,chr(5)=>822,chr(6)=>822,chr(7)=>822,chr(8)=>822,chr(9)=>822,chr(10)=>822,chr(11)=>822,chr(12)=>822,chr(13)=>822,chr(14)=>822,chr(15)=>822,chr(16)=>822,chr(17)=>822,chr(18)=>822,chr(19)=>822,chr(20)=>822,chr(21)=>822, 
      chr(22)=>822,chr(23)=>822,chr(24)=>822,chr(25)=>822,chr(26)=>822,chr(27)=>822,chr(28)=>822,chr(29)=>822,chr(30)=>822,chr(31)=>822,' '=>244,'!'=>323,'"'=>346,'#'=>539,'$'=>478,'%'=>743,'&'=>605,'\''=>185,'('=>348,')'=>348,'*'=>483,'+'=>518, 
      ','=>289,'-'=>491,'.'=>274,'/'=>549,'0'=>518,'1'=>518,'2'=>518,'3'=>518,'4'=>518,'5'=>518,'6'=>518,'7'=>518,'8'=>518,'9'=>518,':'=>274,';'=>289,'<'=>518,'='=>518,'>'=>518,'?'=>409,'@'=>582,'A'=>602, 
      'B'=>606,'C'=>605,'D'=>643,'E'=>567,'F'=>553,'G'=>639,'H'=>640,'I'=>268,'J'=>268,'K'=>623,'L'=>485,'M'=>805,'N'=>666,'O'=>688,'P'=>597,'Q'=>726,'R'=>613,'S'=>486,'T'=>530,'U'=>629,'V'=>624,'W'=>914, 
      'X'=>571,'Y'=>532,'Z'=>562,'['=>386,'\\'=>549,']'=>386,'^'=>468,'_'=>342,'`'=>537,'a'=>586,'b'=>565,'c'=>558,'d'=>590,'e'=>558,'f'=>341,'g'=>570,'h'=>611,'i'=>275,'j'=>289,'k'=>508,'l'=>322,'m'=>873, 
      'n'=>586,'o'=>560,'p'=>588,'q'=>576,'r'=>371,'s'=>411,'t'=>357,'u'=>597,'v'=>569,'w'=>877,'x'=>545,'y'=>602,'z'=>483,'{'=>356,'|'=>253,'}'=>356,'~'=>537,chr(127)=>822,chr(128)=>822,chr(129)=>822,chr(130)=>822,chr(131)=>822, 
      chr(132)=>822,chr(133)=>822,chr(134)=>822,chr(135)=>822,chr(136)=>822,chr(137)=>822,chr(138)=>822,chr(139)=>822,chr(140)=>822,chr(141)=>822,chr(142)=>822,chr(143)=>822,chr(144)=>822,chr(145)=>822,chr(146)=>822,chr(147)=>822,chr(148)=>822,chr(149)=>822,chr(150)=>822,chr(151)=>822,chr(152)=>822,chr(153)=>822, 
      chr(154)=>822,chr(155)=>822,chr(156)=>822,chr(157)=>822,chr(158)=>822,chr(159)=>822,chr(160)=>244,chr(161)=>567,chr(162)=>319,chr(163)=>470,chr(164)=>591,chr(165)=>470,chr(166)=>486,chr(167)=>674,chr(168)=>304,chr(169)=>486,chr(170)=>486,chr(171)=>488,chr(172)=>562,chr(173)=>491,chr(174)=>562,chr(175)=>562, 
      chr(176)=>292,chr(177)=>586,chr(178)=>214,chr(179)=>293,chr(180)=>556,chr(181)=>423,chr(182)=>411,chr(183)=>376,chr(184)=>193,chr(185)=>411,chr(186)=>411,chr(187)=>459,chr(188)=>483,chr(189)=>406,chr(190)=>483,chr(191)=>483,chr(192)=>613,chr(193)=>602,chr(194)=>602,chr(195)=>602,chr(196)=>602,chr(197)=>470, 
      chr(198)=>605,chr(199)=>596,chr(200)=>605,chr(201)=>567,chr(202)=>528,chr(203)=>567,chr(204)=>567,chr(205)=>268,chr(206)=>268,chr(207)=>643,chr(208)=>659,chr(209)=>666,chr(210)=>666,chr(211)=>688,chr(212)=>688,chr(213)=>688,chr(214)=>688,chr(215)=>537,chr(216)=>613,chr(217)=>629,chr(218)=>629,chr(219)=>629, 
      chr(220)=>629,chr(221)=>532,chr(222)=>464,chr(223)=>541,chr(224)=>371,chr(225)=>586,chr(226)=>586,chr(227)=>586,chr(228)=>586,chr(229)=>341,chr(230)=>558,chr(231)=>558,chr(232)=>558,chr(233)=>558,chr(234)=>558,chr(235)=>558,chr(236)=>558,chr(237)=>224,chr(238)=>224,chr(239)=>698,chr(240)=>590,chr(241)=>586, 
      chr(242)=>586,chr(243)=>560,chr(244)=>560,chr(245)=>560,chr(246)=>560,chr(247)=>537,chr(248)=>371,chr(249)=>597,chr(250)=>597,chr(251)=>597,chr(252)=>597,chr(253)=>602,chr(254)=>357,chr(255)=>148); 
    $fpdf_charwidths['telluralB']=$fpdf_charwidths['tellural']; 
    $fpdf_charwidths['telluralI']=$fpdf_charwidths['tellural']; 
    $fpdf_charwidths['telluralBI']=$fpdf_charwidths['tellural']; 
    $enc='iso-8859-2'; 
    $diff='128 /.notdef 130 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 142 /.notdef 145 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef 158 /.notdef /.notdef 161 /Aogonek /breve /Lslash 165 /Lcaron /Sacute 169 /Scaron /Scedilla /Tcaron /Zacute 174 /Zcaron /Zdotaccent 177 /aogonek /ogonek /lslash 181 /lcaron /sacute /caron 185 /scaron /scedilla /tcaron /zacute /hungarumlaut /zcaron /zdotaccent /Racute 195 /Abreve 197 /Lacute /Cacute 200 /Ccaron 202 /Eogonek 204 /Ecaron 207 /Dcaron /Dcroat /Nacute /Ncaron 213 /Ohungarumlaut 216 /Rcaron /Uring 219 /Uhungarumlaut 222 /Tcommaaccent 224 /racute 227 /abreve 229 /lacute /cacute 232 /ccaron 234 /eogonek 236 /ecaron 239 /dcaron /dmacron /nacute /ncaron 245 /ohungarumlaut 248 /rcaron /uring 251 /uhungarumlaut 254 /tcommaaccent /dotaccent'; 
    $file='tellural.z'; 
    $originalsize=64356; 
    ?> 

.

예를 들어 Write()/Cell()의 기능 중 하나에서 PHP 인쇄를 사용하는 경우 인보이스 자체에만 올바른 문자가 나타나지 않습니다.

답변

1

시도해보십시오. Dejavu 글꼴. 나는이 문자를 체코 문자와 UTF-8로 사용했으며, 완벽하게 작동합니다. 사용 : 또한 PHP 멀티 바이트 기능을 사용하여 유니 코드에 대한 지원이있는 FPDF 프로젝트의 포크입니다 TFPDF을 사용할 수 있습니다

$pdf->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true); 
$pdf->SetFont('DejaVu','',14); 
//the rest 
관련 문제