Anasayfa / Php / DomPDF Türkçe Karakter Sorunu ve Çözümü
dompdf

DomPDF Türkçe Karakter Sorunu ve Çözümü

Laravel ile proje geliştirirken raporlama işlemi için DomPdf kullanmam gerekti. Her şey güzel sorun yok derken, pdf dosyalarında ki Türkçe karakterlerde sorun olduğunu fark ettim. Birçok yöntem denememe rağmen sorun çözülmedi. Son olarak yabancı bir sitede gördüğüm yöntem ile sorunu çözdüm. Bu sorun için denediğim fakat çözüm olmayan yöntemleri de yazmak istiyorum.

Dil Kodlamasını UTF-8 Olarak Değiştirmek

Bu ilk denediğim yöntem oldu. Çünkü Dompdf download sayfasında dil kodlaması ile sorun yaşayanların meta etiketini UTF-8 yapmaları gerektiği yazıyordu. Hemen head etiketi arasına aşağıdaki kodu yapıştırdım.

Sonra ne mi oldu. Sorun tabi ki çözülmedi.

Yazı Fontunu Değiştirmek

Yukarıda ki yöntem işe yaramadığı için çözüm bulmak için araştırma yaparken https://stackoverflow.com/questions/5136067/dompdf-special-characters konulu yazıya denk geldim. Burada yazı fontundan kaynaklı problem olabileceği vurgulanmış. Hemen Arial, Tahoma, Verdana, DeJaVu Sans Mono, monospace gibi fontlarla şansımı denedim. Ama değişen bir şey olmadı.

Eğer sizde şansınızı denemek istiyorsanız stil dosyanızın altına yukarıdaki css kodlarını yazarak sorunu çözmeye çalışabilirsiniz.

DomPdf Ayar Dosyası Değişiklikleri Yapmak

Bu yöntemde gayet mantıklı geldi. Dompdf ayar dosyası php ile proje geliştiriyorsanız dompdf_config.inc.php adıyla indirdiğiniz klasör içerisinde yer alıyor. Laravel için ayar dosyasına ulaşmak için DomPdf’yi kurduktan sonra php artisan vendor:publish komutuyla ayar dosyası oluşturabiliyorsunuz. Bu dosya üzerinde varsayılan birçok ayar değiştirilebiliyor. Varsayılan yazı tipini değiştirmekte buna dahil.

Yukarıdaki kodlar gibi birçok varyasyon denedim ama bir çözüme ulaşamadım.

DomPDF’ye Unicode Desteği Sağlamak

Son olarak yabancı bir sitede bu başlığa rastladım. Biraz zahmetli olsa da denediğimde sorun ortadan kalktı. Eğer yukarıdaki yöntemlerin hiçbiri işe yaramdıysa son olarak bunu deneyebilirsiniz. Sadece Türkçe karakter değil tüm diller için sorunun çözüleceğini belirtmek isterim.

Adım 1: Türkçe dil desteği olan bir font bulun. Bunun için google fonts içerisinde arama yaparak istediğiniz fontu kolayca bilgisayarınıza indirebilirsiniz.

google fonts download

Adım 2: Github üzerinde Dompdf’nin kendi sunduğu eklentiler arasında load_font.php dosyası bulunuyor. Bu bağlantıdan dosyayı indirin. https://github.com/dompdf/utils

Adım 3: İndirmiş olduğunuz yazı fontunu ve load_font.php dosyasını projenizin ana dizinine kopyalayın.

Adım 4: load_font.php dosyasını aşağıdaki şekilde düzenleyin.

Bu kısımda son kodun oluşturulacak font dosyalarının kaydedileceği dizin olduğunu söyleme gerek. Eğer siz oluşturulacak dosyaları farklı bir dizine kaydetmek istiyorsanız son kısmı ona göre düzeltin. Laravel kullanıyorsanız son kısımda değişiklik yapmayın.

Adım 5: Komut satırını kullanarak projenizin ana dizinine gelin. Eğer projeniz bir sunu üzerindeyse aynı işlemi terminal/putty kullanarak yapabilirsiniz. Sonrasında aşağıdaki kodu çalıştırın.

Bu kodda font name olarak belirtilen yere istediğiniz bir font ismi yazabilirsiniz. Ben olduğu gibi kalması için aynı bıraktım.

Adım 6: Komutu çalıştırdığınızda belirttiğiniz klasörün içerisinde aşağıdaki dosyaların oluştuğunu göreceksiniz.

Adım 7: Artık font yükleme işlemi tamamlandı. Css kodlarını kullanarak metini yukarıda ki oluşturduğunuz yazı tipinde kullanabilirsiniz.

Adım 8: Artık Türkçe karakter sorunu olmaksızın pdf dosyalarını görüntülüyor olmanız lazım. Son olarak projenizin ana dizininde bulunan font dosyasını ve load_font.php dosyasını silmeyi unutmayın.

İlginizi Çekebilir!

wordpress tema yapımı

WordPress Tema Yapımı: Dosya ve Dizin Yapısı

WordPress ile tema yapımı derslerinin ikincisi, sürekli ihtiyaç duyacağımız dosya ve dizinlerin ne işe yaradığını ...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Time limit is exhausted. Please reload the CAPTCHA.