iTextSharp PDF: 中央ヨーロッパおよび東ヨーロッパの文字の処理
このガイドは、iTextSharp を使用して生成された PDF で中央ヨーロッパおよび東ヨーロッパの文字 (「Č」、「Ć」など) が正しく表示されないという一般的な問題に対処します。
問題: これらの文字を含む PDF を生成すると、レンダリング エラーが発生することがよくあります。
根本原因: この問題の原因としては、いくつかの要因が考えられます:
解決策: 段階的なアプローチ
正確なコード ページの選択: 特定の言語と文字セットに正しいコード ページを使用します (例: チェコ語の場合は「Cp1250」)。
Unicode エスケープ シーケンス: リテラルの特殊文字を使用する代わりに、Unicode エスケープ シーケンスを使用して、一貫したエンコード処理を実現します。
グリフ対応フォント: 必要なグリフを含むフォント (Arial.ttf や FreeSans.ttf など) を選択します。
フォントの埋め込み: 受信者のシステムでフォントが利用できない場合でも正しい表示を保証するために、フォントが PDF に埋め込まれていることを確認します (「埋め込み」パラメーターを true
に設定します)。
フォント エンコーディング定義: グリフの解釈に使用されるエンコーディングを明示的に定義します。 オプションには、コード ページの指定や横書き用の 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 サイトの他の関連記事を参照してください。