创建iTextSharp pdf时是否可以显示西里尔字体? [英] Is possible to display Cyrillic font when iTextSharp pdf is created ?

查看:54
本文介绍了创建iTextSharp pdf时是否可以显示西里尔字体?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

DataTable dt = new DataTable();

BaseFont baseFont = BaseFont.CreateFont(Environment.GetEnvironmentVariable(windir)+ @\ fonts\arial.ttf,BaseFont.IDENTITY_H ,BaseFont.EMBEDDED);

iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont,10,0);

dt.Columns.Add( Тарифенброј,Type.GetType(System.String));

dt.Columns.Add(Количина,Type.GetType(System.String));

dt.Columns.Add(Вредност,Type.GetType(System.String));

dt.Columns.Add(давачки,Type.GetType(System。字符串));

for(int i = 0; i< 15; ++ i)

{

dt.Rows。添加();

dt.Rows [i] [Тарифенброј] =(i + 1).ToString();

dt.Rows [i] [ Количина] =Item+ i.ToString();

dt.Rows [i]Вр едност] =(i + 1).ToString();

dt.Rows [i] [Давачки] =(i + 2).ToString();



}

this.dataGridView1.DataSource = dt;

}





private void btnExportPdf_Click(object sender,EventArgs e)

{

int count = 0;

int Total = 0;

int Total2 = 0;

for(int i = 0;我< dataGridView1.Rows.Count; i ++)

{

BaseFont baseFont2 = BaseFont.CreateFont(Environment.GetEnvironmentVariable(windir)+ @\ fonts\arial.ttf,BaseFont.IDENTITY_H ,BaseFont.EMBEDDED);

iTextSharp.text.Font font1 = new iTextSharp.text.Font(baseFont2,10,0);



Font ColFont = new iTextSharp.text.Font(font1);

Chunk chunkCols = new Chunk(dataGridView1.Columns [1] .ToString(),ColFont);

count = Convert.ToInt32(dataGridView1.Rows [i] .Cells [Тарифенброј/Артикл(Шифра,Назив)]。值);

总计+ = Convert.ToInt32(dataGridView1.Rows [ i] .Cells [Вредностнаматеријали]。值);

Total2 + = Convert.ToInt32(dataGridView1.Rows [i] .Cells [Давачкинараздолжување]。值);

当我创建pdf文件时,西里尔字母不显示在文件中。解决方案

这只是PDF默认编码是愚蠢的CP-1252。 (可惜,不是吗?)你需要指定你需要使用Unicode。



请在这里看到答案:http://stackoverflow.com/questions/10329863/display-unicode-characters-in-converting-html -to-pdf [ ^ ]。


$ b $bВипосакувамуспех!

-SA

DataTable dt = new DataTable();
BaseFont baseFont = BaseFont.CreateFont(Environment.GetEnvironmentVariable("windir") + @"\fonts\arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, 10, 0);
dt.Columns.Add("Тарифен број, Type.GetType("System.String"));
dt.Columns.Add("Количина", Type.GetType("System.String"));
dt.Columns.Add("Вредност", Type.GetType("System.String"));
dt.Columns.Add("давачки", Type.GetType("System.String"));
for (int i = 0; i < 15; ++i)
{
dt.Rows.Add();
dt.Rows[i]["Тарифен број"] = (i + 1).ToString();
dt.Rows[i]["Количина"] = "Item " + i.ToString();
dt.Rows[i]"Вредност"] = (i + 1).ToString();
dt.Rows[i]["Давачки"] = (i + 2).ToString();

}
this.dataGridView1.DataSource = dt;
}


private void btnExportPdf_Click(object sender, EventArgs e)
{
int count = 0;
int Total = 0;
int Total2 = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
BaseFont baseFont2 = BaseFont.CreateFont(Environment.GetEnvironmentVariable("windir") + @"\fonts\arial.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
iTextSharp.text.Font font1 = new iTextSharp.text.Font(baseFont2, 10, 0);

Font ColFont = new iTextSharp.text.Font(font1);
Chunk chunkCols = new Chunk(dataGridView1.Columns[1].ToString(), ColFont);
count = Convert.ToInt32(dataGridView1.Rows[i].Cells["Тарифен број / Артикл (Шифра, Назив)"].Value);
Total += Convert.ToInt32(dataGridView1.Rows[i].Cells["Вредност на материјали"].Value);
Total2 += Convert.ToInt32(dataGridView1.Rows[i].Cells["Давачки на раздолжување"].Value);
When i create pdf file Cyrillic letters don't show on file.

解决方案

It's just that PDF default encoding is stupid CP-1252. (A shame, isn't it?) You need to specify that you need to use Unicode.

Please see the answer here: http://stackoverflow.com/questions/10329863/display-unicode-characters-in-converting-html-to-pdf[^].

Ви посакувам успех!
—SA


这篇关于创建iTextSharp pdf时是否可以显示西里尔字体?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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