ogonki w klasie FDF

0

Hej

temat byl juz wielokrotnie poruszany, ale Ja mam z ogonkami straszny problem. Na stronie uzywam kodowania WINDOWS-1250 dlatego ze w bazie mam takie ustawienia i to jest swietosc, jest dobrze i <ort>w ogóle</ort>, ale nie w takiej byc moze znanej klasie FPDF- do tworzenia raportow PDF.

Tutaj w klasie, podalem w skrajnej rozpaczy podalem cos takiego :

		echo iconv("ISO-8859-2","UTF-8","ą ś ć ź ł ó ń ę")."<br>";
		echo iconv("ISO-8859-2","ISO-8859-1","ą ś ć ź ł ó ń ę")."<br>";
		echo iconv("ISO-8859-2","WINDOWS-1250","ą ś ć ź ł ó ń ę")."<p";
		
		echo iconv("WINDOWS-1250","UTF-8","ą ś ć ź ł ó ń ę")."<br>";
		echo iconv("WINDOWS-1250","ISO-8859-1","ą ś ć ź ł ó ń ę")."<br>";
		echo iconv("WINDOWS-1250","ISO-8859-2","ą ś ć ź ł ó ń ę")."<p>";
		
		echo iconv("UTF-8","WINDOWS-1250","ą ś ć ź ł ó ń ę")."<br>";
		echo iconv("UTF-8","ISO-8859-1","ą ś ć ź ł ó ń ę")."<br>";
		echo iconv("UTF-8","ISO-8859-2","ą ś ć ź ł ó ń ę")."<p>";

...i zadna z tych komend nie jest poprawna !. Pominalem iconv i standardowo za literke " ł " podstawia małe 3 , a za " ż " odwrocony lustrzanie pytajnik.
Gdybym znał ich wartość mogłbym podstawić za nie polskie znaki, a moze ktos rozpoznaje jakie to jest kodowanie.

0

jest jeszcze to co wysyla sam serwer np apache jak i to co jest ustawione w naglowku samej stron jak i to w jakim kodowaniu zapisales plik php. Moze zamiast abcde sprobuj dawac ciag znakow z bazy do testu.

mi w fpdfie w takiej sytuacji starczalo


$isowin2  = array('Ą','Ć','Ę','Ł','Ń','Ó','Ś','Ź','Ż','ą','ć','ę','ł','ń','ó','ś','ź','ż');
$isowin  =   array('ˇ','Ć','Ę','Ł','Ń','Ó','¦','¬','Ż','±','ć','ę','ł','ń','ó','¶','Ľ','ż');
$latin2 = array('&#260;',"&#262;",'&#280;','&#321;','&#323;','&#211;','&#346;','&#377;',
'&#379;','&#261;','&#263;','&#281;','&#322;','&#324;','&#243;','&#347;','&#378;','&#380;');//to ze znaczkow w bazie jakby byly
str_replace($isowin2,$isowin,"ąąąąąąąąąąąąą");
0

A uzywasz czcionek ktore wspieraja ogonki? Bo to tez moze byc problem

0

Masz tu funkcje konwertujaca w dowolne sposob kodowanie polskich literek.

    function plCharset($string, $type = 2) {
        $win2utf = array("\xb9" => "\xc4\x85", "\xa5" => "\xc4\x84","\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86", "\xea" => "\xc4\x99", "\xca" => "\xc4\x98", "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81", "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93", "\x9c" => "\xc5\x9b", "\x8c" => "\xc5\x9a", "\xbf" => "\xc5\xbc", "\x8f" => "\xc5\xbb", "\x9f" => "\xc5\xba", "\xaf" => "\xc5\xb9", "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83");
	$iso2utf = array("\xb1" => "\xc4\x85", "\xa1" => "\xc4\x84", "\xe6" => "\xc4\x87", "\xc6" => "\xc4\x86", "\xea" => "\xc4\x99", "\xca" => "\xc4\x98", "\xb3" => "\xc5\x82", "\xa3" => "\xc5\x81", "\xf3" => "\xc3\xb3", "\xd3" => "\xc3\x93", "\xb6" => "\xc5\x9b", "\xa6" => "\xc5\x9a", "\xbc" => "\xc5\xba", "\xac" => "\xc5\xb9", "\xbf" => "\xc5\xbc", "\xaf" => "\xc5\xbb", "\xf1" => "\xc5\x84", "\xd1" => "\xc5\x83");

	if ($type == 2)			# iso do utf
    	    return strtr($string, $iso2utf);
	if ($type == 1)			# utf do iso
    	    return strtr($string, array_flip($iso2utf));
	if ($type == 3)			# win do utf
    	    return strtr($string, $win2utf);
	if ($type == 4)			# utf do win
    	    return strtr($string, array_flip($win2utf));
	if ($type == 5)			# iso do win
    	    return strtr($string, "\xa1\xa6\xac\xb1\xb6\xbc","\xa5\x8c\x8f\xb9\x9c\x9f");
	if ($type == 6)			# win do iso
	    return strtr($string, "\xa5\x8c\x8f\xb9\x9c\x9f","\xa1\xa6\xac\xb1\xb6\xbc");
        if ($type == 7)			# bez polskich liter
            return strtr($string, "ę󱶳żĽćńĘÓˇ¦ŁŻ¬ĆŃ","eoaslzzcnEOASLZZCN");
  }

Wywolanie:

$zmienna = plCharset("tekst z polskimi literkami", [1|2|3|4|5|6|7]);

Gdzie:
1 - z UTF do ISO-8859-2
2 - ISO do UTF
3 - windows do UTF
4 - UTF do windows
5 - ISO do windows
6 - windows do ISO
7 - bez polskich znakow

domyslnie wybrany typ 2

0

dziala dla "iso win" ale tylko gdy z klasy pokaze komenda echo , a zapisuje dalej po swojemu, uzywam czcionki "times", podawalem tez inne jak arial, courier, krzaki ani rusza.

Nie mam sily z ta durna klasa......... !!!

0

Najpierw przekonwertuj ta funkcja zawartosc zmiennej do kodowania jakie chcesz uzyc a dopiero potem zapisuj to do pdfa! Moze oczywiscie sie zdarzyc ze czcionka nie ma w sobie znakow dla danego kodowania ale tym powinien sie martwic konwerter do pdfa.

0

Problem i rozwiazanie tkwi w tym

http://forum.php.pl/index.php?showtopic=40871&mode=linearplus

tylko martwia mnie pliki ttf i afm , ttf wiadomo ze istnieja w katalogu WINDOWS a afm sa w katalogu PHP.
Teraz jak dziala funkcja makefont hmm...

1 użytkowników online, w tym zalogowanych: 0, gości: 1