【问题标题】:Created PDF file is missing characters in Turkish language创建的 PDF 文件缺少土耳其语字符
【发布时间】:2018-04-29 12:09:44
【问题描述】:

好吧,我正在尝试将一些数据从我的 WinForms 应用程序导出到 PDF 文件。我已经下载了一些支持土耳其语言字符的字体。在土耳其语中,有一些字母,如ç,ğ,ş,ö,ü,ı。我的代码在显示 ç,ö,ü 方面没有问题,但不知何故,当用户输入 ğ、ş 或 ı 时,这些字母在 PDF 文件中被表示为空白。

我的代码如下:

Document doc= new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);
PdfWriter wri=PdfWriter.GetInstance(doc, new FileStream("Test.pdf", FileMode.Create));
doc.Open();

BaseFont bf = BaseFont.CreateFont(@"C:\aller.ttf", BaseFont.CP1252, BaseFont.EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(bf, 10, iTextSharp.text.Font.NORMAL);
Paragraph p1 = new Paragraph(new Chunk("çğşöüı", font));

doc.AddLanguage("tr-TR");
wri.SetLanguage("tr-TR");
doc.Add(p1);
doc.Close();

那么,我的错误在哪里?

【问题讨论】:

  • 你在BaseFont.CP1252中缺少字符吗?

标签: c# winforms itext


【解决方案1】:

经过尝试,我找到了答案;

BaseFont bF = BaseFont.CreateFont("C:\\windows\\fonts\\arial.ttf", "windows-1254", true);
 iTextSharp.text.Font f = new iTextSharp.text.Font(bF, 12f, iTextSharp.text.Font.NORMAL);
 Chunk c = new Chunk();
 c.Font = f;
 iTextSharp.text.Document document = new iTextSharp.text.Document();
 PdfWriter.GetInstance(document, new FileStream(@"C:\gorsel.pdf", FileMode.Create));
 string text = "küçük harf türkçe karakterler : ç ğ ı ö ş ü \n" +
 " BÜYÜK TÜRKÇE KARAKTERLER : Ç Ğ İ Ö Ş Ü";
 c.Append(text);
 document.Open();
 document.Add(new Paragraph(c));
 document.Close();

现在我可以在我的 PDF 文件中使用所有特殊字符了。

【讨论】:

    猜你喜欢
    • 2014-02-19
    • 2021-07-21
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    相关资源
    最近更新 更多