【发布时间】:2010-12-20 07:51:30
【问题描述】:
我正在尝试使用 iTextSharp 库排版 pdf,但我无法在任何地方找到如何处理变音符号。由于我找到了两本关于 iTextSharp 的书的目录,其中变音符号有一个部分,我认为这是可行的。所以问题是
How to typeset "ř" ?
另外,有没有关于这个问题的一些指南或链接?
提前致谢。
【问题讨论】:
标签: c# java pdf itextsharp diacritics
我正在尝试使用 iTextSharp 库排版 pdf,但我无法在任何地方找到如何处理变音符号。由于我找到了两本关于 iTextSharp 的书的目录,其中变音符号有一个部分,我认为这是可行的。所以问题是
How to typeset "ř" ?
另外,有没有关于这个问题的一些指南或链接?
提前致谢。
【问题讨论】:
标签: c# java pdf itextsharp diacritics
变音符号只是 unicode 字符。您必须在 PDF 中嵌入 unicode 字体。 有关 Java 示例,请参阅 this thread,我假设它们在 C# 中几乎相同
【讨论】:
您需要弄清楚变音字符的 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);
【讨论】:
我已尝试实施 glaxaco 建议的答案,但对我不起作用。
我尝试使用 AcroFields 填写 pdf 表格,但变音符号 ţşŢŞăîĂÎ 等不会出现。 (使用 Arial 字体)
最后我求助于stripping the diacritics
很奇怪,因为当我手动介绍它们时,就像在手动填写表格时一样,变音符号显示得很好。
希望有人能找到解决此问题的方法。 :(
【讨论】:
CreateFont 方法具有编码重载 => 类似 BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, false);