创建的PDF文件缺少土耳其语字符 [英] Created PDF file is missing characters in Turkish language

查看:121
本文介绍了创建的PDF文件缺少土耳其语字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Well, I am trying to export some data from my WinForms application to a PDF file. I have downloaded some fonts which support Turkish language characters. In the Turkish language, there are some letters like ç,ğ,ş,ö,ü,ı. My code has no problems with showing ç,ö,ü but somehow when the user inputs ğ, ş or ı, these letters get represented as blank in the PDF file.

我的代码如下:

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();

那么,我的错误在哪里?

So, where is my mistake?

推荐答案

尝试后,我找到了答案;

after tryings, I found the answer;

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文件中使用所有特殊字符了.

now I can use all special characters in my PDF file.

这篇关于创建的PDF文件缺少土耳其语字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆