Masalah pencetakan dengan Hindi Unicode di Windows dan Ubuntu keduanya

Saya bekerja dengan Teks Hindi di pdf. Meskipun teks Hindi dibuat tetapi ditampilkan sebagai matra yang salah tempat. Misalkan saya memiliki kata seperti 'ज़िन्दगी' tetapi ditampilkan sebagai

masukkan deskripsi gambar di sini

Jika saya menyalin teks ini dan menempelkannya di Libre Office Writer maka cetakannya benar. Saya telah mencoba hampir dua font dengan tcpdf. Arial Unicode MS serta Lohit_hi

$tcpdf->SetFont('arialuni', 'B', 15, 'false');
$html = nl2br($result['Song']['hindi']);
$tcpdf->writeHTMLCell(0, 20, 20, 25, $html);

Mengapa itu menunjukkan karakter tetapi posisinya salah.


person Sankalp    schedule 01.09.2013    source sumber


Jawaban (3)


Jika saya menyalin dan menempelkan 'ज़िन्दगी' ke microsoft word, secara default tampilannya seperti ini:

masukkan deskripsi gambar di sini

Ini sebenarnya string karakter unicode yang sama persis (yaitu, िन diikuti oleh virama, diikuti oleh द), tetapi hanya dirender dengan cara yang berbeda, bergantung pada fontnya. Font Unicode memiliki logika kompleks untuk memutuskan kapan harus mengganti serangkaian karakter tertentu dengan mesin terbang yang berbeda, dan font yang digunakan oleh PDF Anda tidak mendukung substitusi tertentu yang Anda inginkan.

Anda hanya perlu menemukan font yang mendukung substitusi tersebut, dan pastikan PDF Anda menggunakan font tersebut. (Mungkin panggilan setFont Anda saat ini tidak berfungsi dengan benar, atau font yang Anda tentukan tidak tersedia pada saat Anda mengaturnya, sehingga menggunakan font default sistem untuk karakter hindi, yang tidak mendukung substitusi yang Anda maksud).

person joshua.paling    schedule 02.09.2013
comment
Terima kasih untuk informasi. Saya yakin itu masalah rendering. Bisakah Anda menjelaskan font Hindi mana yang didukung oleh tcpdf. Saya telah mencoba keduanya Arial Unicode MS serta Lohiti HIndi. Namun dalam kedua kasus tersebut, masalah rendering masih tetap ada. - person Sankalp; 02.09.2013
comment
Saya belum pernah menggunakan tcpdf, jadi saya tidak bisa memberi Anda lebih dari apa yang tersedia di sini: tcpdf. org/fonts.php - person joshua.paling; 02.09.2013
comment
Hai Joshua - sekadar klarifikasi: kata pertama adalah zindagi, dan kata kedua adalah zaneedagi. Apakah maksud Anda kedua kata tersebut memiliki ZNDG, tetapi interpretasi vokalnya bergantung pada font yang dipilih? - person Jay Sheth; 26.09.2013
comment
Jay, ya, itu adalah string karakter unicode yang sama persis - yaitu, ज lalu ़ि lalu न lalu ् dll. Font tidak mengubah urutan karakter dengan cara apa pun, tetapi mengubah cara mereka dirender bersama. - person joshua.paling; 27.09.2013
comment
kami memiliki masalah yang sama persis mpdf1.com/mpdf/index.php?page=Download berhasil untuk kami - person abksharma; 07.12.2013

Mengapa Anda tidak menggunakan writeHTML() daripada writeHTMLCell() ? Masalah Anda jelas berkorelasi dengan sel. Sepertinya tinggi garis salah atau bahkan ada atribut CSS untuk pengulangan latar belakang yang disetel (seharusnya background-repeat:none; ). writeHTML() akan mencegah hal ini.

person Hexodus    schedule 21.09.2013
comment
Itu tidak mungkin dilakukan. Saya sudah mencoba keduanya. Ada masalah rendering yang sama. - person Sankalp; 25.09.2013

Saya tidak yakin TCPDF dapat merender skrip Hindi dengan benar. Font saja tidak cukup untuk membuat skrip yang rumit. Kutipan berikut adalah kutipan dari rangkaian komentar mengenai rendering teks Saurashtra di TCPDF. Hal ini mungkin juga berlaku untuk bahasa Hindi. Sejauh yang saya tahu, Malayalam dan Gujarati juga tidak dapat dirender dalam TCPDF.

[Re: Merender teks Saurashtra di TCPDF] [...] Untuk TCPDF, font tipe sebenarnya perlu dikonversi ke format afm terlebih dahulu, kemudian untuk setiap skrip, diakritik atau aturan pengikat diimplementasikan di tcpdf itu sendiri. [...] Font saja tidak cukup untuk rendering, mesin pembentuk juga diperlukan untuk skrip kompleks guna menafsirkan aturan pembentukan mesin terbang. Inilah yang PyPDFLib coba selesaikan dengan menggunakan Pango untuk rendering skrip dan Kairo untuk grafik. Santosh -- Komentar tentang pembuatan ekosistem Bahasa baru- Sourashtra sebagai contoh

Contoh untuk mPDF tampaknya menunjukkan bahasa Hindi yang berfungsi, sebagaimana dirujuk pada jawaban untuk pertanyaan ini : Bahasa Hindi tidak ditampilkan dengan benar di tcpdf

person EPB    schedule 27.09.2013