首頁 > 後端開發 > C++ > 產生PDF時如何正確顯示捷克語字元(Č、Ć等)?

產生PDF時如何正確顯示捷克語字元(Č、Ć等)?

Linda Hamilton
發布: 2025-01-13 21:46:52
原創
735 人瀏覽過

How Can I Correctly Display Czech Characters (Č, Ć, etc.) When Generating PDFs?

PDF 產生中的字元編碼問題

在產生 PDF 時,捷克字元(如“Č”和“Ć”)顯示不正確。此問題源自於多種因素,包括字元編碼和字體選擇。

編碼注意事項

首先,區分用於中歐和東歐語言的西里爾字母和拉丁字母非常重要。代碼頁 1250 和 1251 代表這些區域的不同字元編碼。

文本編碼實務

Unicode 是現代應用程式推薦的文字編碼標準。但是,如果意外更改編碼,則以純文字儲存程式碼檔案可能會導致資料損壞。考慮使用 u 表示法表示特殊字符,而不是直接將它們包含在代碼中。

字型選擇

Helvetica 不適合渲染捷克字元。 Arial 或 FreeSans 是更好的選擇。此外,將嵌入參數設為 true 可確保字體包含在 PDF 中,以便在不同系統上保持一致的渲染效果。

字型編碼

使用內嵌字體時,您可以指定字體編碼。 Cp1250 指定代碼頁 1250 編碼,從而為每個字元產生單字節表示。或者,IDENTITY_H 表示 Unicode 編碼,它每個字元使用多個位元組。對於 PDF/A 和 PDF/UA 等現代標準,建議使用 Unicode 編碼。

範例

以下程式碼示範了在 Cp1250 和 IDENTITY_H 編碼中使用 FreeSans 字型的解決方案:

<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>
登入後複製

結論

在 PDF 產生中處理國際字元並非易事。正確處理字元編碼和字體選擇對於準確表示文字至關重要。

以上是產生PDF時如何正確顯示捷克語字元(Č、Ć等)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板