Merhabalar,
Daha önce yazıya döktüğüm makalemde "fpdf" kütüphanesini kullanarak php ile nasıl pdf dosyaları oluşturabileceğimizi anlatmıştım.
http://www.kodyazma.com/2013/05/php-pdf-olusturma.html
Bir arkadaşımızdan gelen Türkçe karakter sorunu üzerine problemi araştırdım ve çözümünü anlatmak istedim.
Farklı dil sistemlerini fdpf'de kullanabilmek font dosyası için ayar yapmamız gerekiyor. Bunun için "makefont" klasörü içerisindeki "makefont.php" dosyasını kullanacağız. Ana klasör içerisine oluşturduğumuz dosyaya aşağıdaki kodları ekleyerek, php dosyamızı çalıştıralım. Font seçimini kendi bilgisayarınızdaki font dosyalarına göre değiştirebilirsiniz.
Php komutlarını çalıştırdıktan sonra 2 adet dosya oluşacaktır. "arial.php" ve "arial.z" isimli 2 adet dosyayı "FPDF" kütüphanesi içerisindeki "font" klasörü içerisine yerleştiriyoruz.
Böylece Türkçe karakterleri pdf dosyamızda sorunsuzca kullanabiliriz. Farklı dillerin karakterleri için aşağıdaki tabloyu da paylaşalım.
Daha önce yazıya döktüğüm makalemde "fpdf" kütüphanesini kullanarak php ile nasıl pdf dosyaları oluşturabileceğimizi anlatmıştım.
http://www.kodyazma.com/2013/05/php-pdf-olusturma.html
Bir arkadaşımızdan gelen Türkçe karakter sorunu üzerine problemi araştırdım ve çözümünü anlatmak istedim.
Farklı dil sistemlerini fdpf'de kullanabilmek font dosyası için ayar yapmamız gerekiyor. Bunun için "makefont" klasörü içerisindeki "makefont.php" dosyasını kullanacağız. Ana klasör içerisine oluşturduğumuz dosyaya aşağıdaki kodları ekleyerek, php dosyamızı çalıştıralım. Font seçimini kendi bilgisayarınızdaki font dosyalarına göre değiştirebilirsiniz.
<?php include("makefont/makefont.php"); MakeFont("C:\Windows\Fonts\arial.ttf", "ISO-8859-9") ; ?>
Php komutlarını çalıştırdıktan sonra 2 adet dosya oluşacaktır. "arial.php" ve "arial.z" isimli 2 adet dosyayı "FPDF" kütüphanesi içerisindeki "font" klasörü içerisine yerleştiriyoruz.
$pdf->AddFont('arial','','arial.php'); $pdf->SetFont('Arial','',14); $turkce_icerik = iconv('utf-8', 'ISO-8859-9', 'ŞüİĞ gibi harfleri artık kullanabiliriz');
Böylece Türkçe karakterleri pdf dosyamızda sorunsuzca kullanabiliriz. Farklı dillerin karakterleri için aşağıdaki tabloyu da paylaşalım.
- cp1250 (Central Europe)
- cp1251 (Cyrillic)
- cp1252 (Western Europe)
- cp1253 (Greek)
- cp1254 (Turkish)
- cp1255 (Hebrew)
- cp1257 (Baltic)
- cp1258 (Vietnamese)
- cp874 (Thai)
- ISO-8859-1 (Western Europe)
- ISO-8859-2 (Central Europe)
- ISO-8859-4 (Baltic)
- ISO-8859-5 (Cyrillic)
- ISO-8859-7 (Greek)
- ISO-8859-9 (Turkish)
- ISO-8859-11 (Thai)
- ISO-8859-15 (Western Europe)
- ISO-8859-16 (Central Europe)
- KOI8-R (Russian)
- KOI8-U (Ukrainian)
Son olarak daha önceki makalemde paylaşmış olduğum kodlarımızın güncel halini (oluşturulan font dosyasının ekli olduğu) paylaşayım.
selam güzel bir anlatım , var olan pdf i açıp içerisine ekleme yapabiliyor muyuz.
YanıtlaSilMerhaba, benim sorunum aşağıdaki karakterleri yazdıramamak veya bozuk yazması, bu konuda yardımcı olabilir misiniz?
YanıtlaSil" yerine " yazıyor
' yerine ' yazıyor
+ boş alan bırakıyor
& boş alan geliyor ve sonrasındaki hiç bir karakteri yazmıyor.
" yerine & q u o t ; yazıyor
Sil' yerine & # 0 3 9 ; yazıyor
merhaba, öncelikle teşekkürler.
YanıtlaSilşöyle bir sorun yaşadım: türkçe karakterleri elle yazınca sorun yok fakat veritabanından çektiklerimde sadece ı harfinde y olarak basıyor. bunun bir çözümü var mıdır? veritabanında da utf8 ayarlı.
merhaba bende de aynı sorun vardı, farkettim ki bold olarak kullandığımda küçük ı harflerini basmıyor. SetFont('Arial','B'); şeklinde kullanım varsa kaldır düzeliyor.
SilMerhaba öncelikle emeğinize sağlık teşekkür ederim.Yalnız bir sorun yaşıyorum.ı İ gibi Türkçe harfleri hatalı basıyor. Notepade ++ ile yazarken utf-8 bomlu bomsuz denedim ancak bir türlü çözemedim.Şimdiden desteğiniz için teşekkür ederim.
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSilİyi Günler pdf belgesi içindeki satırlarda hala türkçe karakter sorunu var
YanıtlaSilNotepad kuullanlar içinÜST MENÜDEN encoding-->chracter sets-->turkish-->ISO-8859-9 SEÇİN
YanıtlaSil