Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memaparkan Aksara Czech (Č, Ć, dsb.) Dengan Betul Apabila Menjana PDF?
Isu pengekodan aksara dalam penjanaan PDF
Aksara Czech seperti "Č" dan "Ć" telah dipaparkan secara tidak betul semasa menjana PDF. Masalah ini berpunca daripada pelbagai faktor, termasuk pengekodan aksara dan pemilihan fon.
Nota Pengekodan
Pertama sekali, adalah penting untuk membezakan antara abjad Cyrillic dan Latin yang digunakan dalam bahasa Eropah Tengah dan Timur. Halaman kod 1250 dan 1251 mewakili pengekodan aksara yang berbeza untuk wilayah ini.
Amalan Pengekodan Teks
Unicode ialah standard pengekodan teks yang disyorkan untuk aplikasi moden. Walau bagaimanapun, menyimpan fail kod dalam teks biasa boleh menyebabkan kerosakan data jika pengekodan ditukar secara tidak sengaja. Pertimbangkan untuk menggunakan notasi u untuk mewakili aksara khas dan bukannya memasukkannya terus dalam kod anda.
Pemilihan fon
Helvetica tidak sesuai untuk memaparkan aksara Czech. Arial atau FreeSans adalah pilihan yang lebih baik. Selain itu, menetapkan parameter benam kepada benar memastikan fon disertakan dalam PDF untuk pemaparan yang konsisten merentas sistem yang berbeza.
Pengekodan fon
Apabila menggunakan fon terbenam, anda boleh menentukan pengekodan fon. Cp1250 menentukan pengekodan halaman kod 1250, menghasilkan perwakilan bait tunggal untuk setiap aksara. Sebagai alternatif, IDENTITY_H mewakili pengekodan Unicode, yang menggunakan berbilang bait setiap aksara. Untuk piawaian moden seperti PDF/A dan PDF/UA, pengekodan Unicode disyorkan.
Contoh
Kod berikut menunjukkan penyelesaian menggunakan fon FreeSans dalam pengekodan Cp1250 dan IDENTITY_H:
<code class="language-java">public static void createPdf(String dest) throws IOException, DocumentException { Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(dest)); document.open(); // Cp1250 编码 Font f1 = FontFactory.getFont("resources/fonts/FreeSans.ttf", "Cp1250", true); Paragraph p1 = new Paragraph("测试字母 \u010c,\u0106,\u0160,\u017d,\u0110", f1); document.add(p1); // Unicode 编码 Font f2 = FontFactory.getFont("resources/fonts/FreeSans.ttf", BaseFont.IDENTITY_H, true); Paragraph p2 = new Paragraph("测试字母 \u010c,\u0106,\u0160,\u017d,\u0110", f2); document.add(p2); document.close(); }</code>
Kesimpulan
Mengendalikan aksara antarabangsa dalam penjanaan PDF bukanlah satu tugas yang mudah. Pengendalian pengekodan aksara dan pemilihan fon yang betul adalah penting untuk perwakilan teks yang tepat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaparkan Aksara Czech (Č, Ć, dsb.) Dengan Betul Apabila Menjana PDF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!