【问题标题】:What Encoding to set for iTextSharp Romanian language为 iTextSharp 罗马尼亚语设置什么编码
【发布时间】:2026-01-15 00:25:01
【问题描述】:

我尝试使用 iTextSharp 版本 5.5.9.0(我从 NuGet 添加)创建一个 PDF 文件。一切正常,但不是罗马尼亚变音符号(ȘşȚțăĂÂâ)。我阅读了很多关于解决方案的文章,但没有任何效果。现在我建立了一个解决方案,从所有变音符号中只出现 "ăĂÂ" 其他不出现。 那是我的代码:

Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250, False)
Dim normalFont As New iTextSharp.text.Font(bf, 9, Font.NORMAL)
Dim par As New Paragraph("ȘșȚțăĂÂâ", normalFont)
pdfDoc.Add(par)

谁能告诉我我必须写什么编码才能拥有所有罗马尼亚变音符号。

解决方案:来自“Paulo Soares”是正确的。我只做了一些更正。 我从这个网站下载了一种支持罗马尼亚语的字体: https://www.fontsquirrel.com/fonts/list/language/romanian/ 比我用编码 BaseFont.IDENTITY_H 将它加载到 myBaseFont 代码如下:

Dim ttfPath As String = "C:\Test\DejaVuSerif.ttf" 'Path to font file
Dim bf As BaseFont = BaseFont.CreateFont(ttfPath, BaseFont.IDENTITY_H, False)
Dim normalFont As New iTextSharp.text.Font(bf, 9, iTextSharp.text.Font.NORMAL)

【问题讨论】:

    标签: vb.net winforms pdf itextsharp


    【解决方案1】:

    BaseFont.TIMES_ROMAN这样的内置字体没有罗马尼亚语变音符号。你需要一个外部字体,比如 times.ttf:

    Dim bf As BaseFont = BaseFont.CreateFont("c:\windows\fonts\times.ttf", BaseFont.IDENTITY_H, True)
    

    【讨论】:

      最近更新 更多