【问题标题】:iTextSharp diacriticsiTextSharp 变音符号
【发布时间】:2010-12-20 07:51:30
【问题描述】:

我正在尝试使用 iTextSharp 库排版 pdf,但我无法在任何地方找到如何处理变音符号。由于我找到了两本关于 iTextSharp 的书的目录,其中变音符号有一个部分,我认为这是可行的。所以问题是

How to typeset "ř" ?

另外,有没有关于这个问题的一些指南或链接?

提前致谢。

【问题讨论】:

    标签: c# java pdf itextsharp diacritics


    【解决方案1】:

    变音符号只是 unicode 字符。您必须在 PDF 中嵌入 unicode 字体。 有关 Java 示例,请参阅 this thread,我假设它们在 C# 中几乎相同

    【讨论】:

      【解决方案2】:

      您需要弄清楚变音字符的 Unicode 表示形式是什么。您可以使用 \u[unicode value in hex] 将 Unicode characters 嵌入到字符串文字中;例如

      string s = "\u0159";  // Should be your character
      

      您可能还需要选择能够正确表示字符的字体:

      bf = BaseFont.CreateFont(...);
      font = new Font(bf, 12);
      document.Add(new Paragraph(s, font);
      

      【讨论】:

      • 问题不完全在于所选字体,而在于编码。我以前没有注意到,但是谢谢。顺便说一句,据我所知,c# 中的所有字符串都被翻译成 unicode 字符。
      • 确实如此。在通常用于答案的人为代码示例中,我们通常对字符串进行硬编码,但在实际使用中,问题通常是在从外部源(用户输入、文本文件、数据库、等)
      • 这里是罗马尼亚 Unicode 变音符号的链接en.wikipedia.org/wiki/ISO_8859-2
      【解决方案3】:

      我已尝试实施 glaxaco 建议的答案,但对我不起作用。

      我尝试使用 AcroFields 填写 pdf 表格,但变音符号 ţşŢŞăîĂÎ 等不会出现。 (使用 Arial 字体)

      最后我求助于stripping the diacritics

      很奇怪,因为当我手动介绍它们时,就像在手动填写表格时一样,变音符号显示得很好。

      希望有人能找到解决此问题的方法。 :(

      【讨论】:

      • CreateFont 方法具有编码重载 => 类似 BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, false);
      猜你喜欢
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 2011-03-24
      • 2010-10-23
      • 2017-01-19
      相关资源
      最近更新 更多