为iTextSharp罗马尼亚语设置什么编码

时间:2016-05-25 16:00:31

标签: vb.net winforms pdf itextsharp

我尝试使用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)

1 个答案:

答案 0 :(得分:6)

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

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