ホームページ > バックエンド開発 > C++ > iTextSharp PDF で中央および東ヨーロッパの文字を正しく表示するにはどうすればよいですか?

iTextSharp PDF で中央および東ヨーロッパの文字を正しく表示するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-13 21:45:49
オリジナル
675 人が閲覧しました

How to Display Central and Eastern European Characters Correctly in iTextSharp PDFs?

iTextSharp PDF: 中央ヨーロッパおよび東ヨーロッパの文字の処理

このガイドは、iTextSharp を使用して生成された PDF で中央ヨーロッパおよび東ヨーロッパの文字 (「Č」、「Ć」など) が正しく表示されないという一般的な問題に対処します。

問題: これらの文字を含む PDF を生成すると、レンダリング エラーが発生することがよくあります。

根本原因: この問題の原因としては、いくつかの要因が考えられます:

  • 間違ったコード ページ: 間違ったコード ページが選択された可能性があります。
  • 文字エンコーディング: コード内の特殊文字の処理が不適切です。
  • フォント グリフのサポート: 選択したフォントには、これらの文字に必要なグリフが不足している可能性があります。
  • フォントの埋め込み: フォントは PDF に埋め込まれていない可能性があります。
  • エンコーディング定義: フォントのエンコーディングが正しく定義されていない可能性があります。

解決策: 段階的なアプローチ

  1. 正確なコード ページの選択: 特定の言語と文字セットに正しいコード ページを使用します (例: チェコ語の場合は「Cp1250」)。

  2. Unicode エスケープ シーケンス: リテラルの特殊文字を使用する代わりに、Unicode エスケープ シーケンスを使用して、一貫したエンコード処理を実現します。

  3. グリフ対応フォント: 必要なグリフを含むフォント (Arial.ttf や FreeSans.ttf など) を選択します。

  4. フォントの埋め込み: 受信者のシステムでフォントが利用できない場合でも正しい表示を保証するために、フォントが PDF に埋め込まれていることを確認します (「埋め込み」パラメーターを true に設定します)。

  5. フォント エンコーディング定義: グリフの解釈に使用されるエンコーディングを明示的に定義します。 オプションには、コード ページの指定や横書き用の Unicode の使用 (例: "Cp1250" BaseFont.IDENTITY_H) が含まれます。

コード例 (説明):

<code class="language-csharp">using iTextSharp.text;
using iTextSharp.text.pdf;

public class CEECharacterExample
{
    public void CreatePdf(string destination)
    {
        Document document = new Document();
        PdfWriter.GetInstance(document, new FileOutputStream(destination));
        document.Open();

        // Font with glyph support and code page
        Font fontCp1250 = FontFactory.GetFont("resources/fonts/FreeSans.ttf", "Cp1250", true);

        // Font with Unicode encoding
        Font fontUnicode = FontFactory.GetFont("resources/fonts/FreeSans.ttf", BaseFont.IDENTITY_H, true);

        // Paragraphs using different encodings
        Paragraph paragraphCp1250 = new Paragraph("Testing characters: \u010c, \u0106, \u0160, \u017d, \u0110", fontCp1250);
        Paragraph paragraphUnicode = new Paragraph("Testing characters: \u010c, \u0106, \u0160, \u017d, \u0110", fontUnicode);

        // Add paragraphs to the document
        document.Add(paragraphCp1250);
        document.Add(paragraphUnicode);

        document.Close();
    }
}</code>
ログイン後にコピー

これらの手順を実行すると、iTextSharp PDF の文字表示の問題が解決されるはずです。 "resources/fonts/FreeSans.ttf" をフォント ファイルへの実際のパスに置き換えることを忘れないでください。

以上がiTextSharp PDF で中央および東ヨーロッパの文字を正しく表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート