如何使用C#中的itextsharp创建具有Tamil字体的PDF文件?

时间:2012-09-18 05:54:47

标签: c# asp.net c#-4.0 itextsharp

我们通过传递TAMIL文本(印度语之一)在我们的C#应用​​程序中创建pdf文件。因此,我已经为我的泰米尔语言字体安装了AVVAIYAR.TTF(tamil字体之一)字体。但是当我运行时在下面提到的pgm中,创建的pdf文件不包含任何tamil字体显示。它显示空行而不是tamil文本...

C#代码:

Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"C:\pdfout.pdf", FileMode.Create));
document.Open();

PdfContentByte pcb = writer.DirectContent;
Font ft = new Font();
FontFactory.Register(@"C:\WINDOWS\Fonts\AVVAIYAR.TTF", "AVVAIYAR");
ft = FontFactory.GetFont("AVVAIYAR");

Paragraph pr1 = new Paragraph("இது முதல் பேரா", ft);
Paragraph pr2 = new Paragraph("This is a Sub Paragraph");
Paragraph pr3 = new Paragraph("This is the Second Paragraph");

document.Add(pr1);
document.Add(pr2);
document.Add(pr3);
document.Close();

我的输出pdf文件是:

<blank line>
This is a Sub Paragraph
This is the Second Paragraph

此外,我还需要支持更多的印度语言来创建PDF文件。

3 个答案:

答案 0 :(得分:1)

您可以尝试以下代码段吗?

string fontpath = Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\AVVAIYAR.TTF";
BaseFont basefont = BaseFont.CreateFont(fontpath, BaseFont.IDENTITY_H, true);
Font AVVAIYARFont = new iTextSharp.text.Font(basefont, 24, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLUE); /*For test color blue is placed with some foramtting.*/

Paragraph pr1 = new Paragraph("இது முதல் பேரா", AVVAIYARFont);

这应该有用......

开箱即用的想法,iText目前还没有完全支持所有的指数语言......见here他们说他们没有足够的志愿者来支持这一点。

答案 1 :(得分:1)

我已经提到了ARIALUNI.TTF。我试过这样,

string fontpath = Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\ARIALUNI.TTF"; 
BaseFont basefont = BaseFont.CreateFont(fontpath, BaseFont.IDENTITY_H, true);
Font font = new iTextSharp.text.Font(basefont, 24, iTextSharp.text.Font.NORMAL, iTextSharp.text.Color.BLUE);
Paragraph pr1 = new Paragraph("இது முதல் பேரா", AVVAIYARFont);

所以,现在tamil字体显示在pdf文件中。但简单的简单拼写错误......所以我正在阅读那个问题......

答案 2 :(得分:0)

Procees 1:

第1步:转到http://software.nhm.in/services/converter网站

第二步:粘贴这个词படிவம்-டிடி்சீடசீடடுடுடுவிடுபவிடுபவிடுபடுவிடுபவிடுபவிடுபடைடைடைடைடைடைடைடைடை

步骤3:1。将第一个下拉列表更改为Unicode,2。将第二个下拉列表更改为TAB

步骤5:点击按钮转换器

step6.text将被分配。

第7步:主要流程从听到

开始

1.将第二个下拉更改为TSCII并单击转换。(不要惊慌,不存在任何更改)

2.现在将第一个下拉菜单自动更改为自动转换为泰铢文本将更改为“ÀÊÅõ-Ê°¾¢Â£ºÎ/Å¢ÎÎÒ«ð”;

3.复制内容并将其放在记事本中。

流程2:

1.首先下载TSC-Sri.ttf(http://www.eaglefonts.com/download.php?action=zip&image_id=129859

2.在c:\ Windows \ fonts

中保存或移动它

3.最后考虑c#程序中的以下代码

     string fontpath = Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\TSC-Sri.ttf";
    BaseFont basefont = BaseFont.CreateFont(fontpath, BaseFont.IDENTITY_H, true);
    iTextSharp.text.Font font = new iTextSharp.text.Font(basefont, 24, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.BLUE);
    Paragraph pr1 = new Paragraph("ÀÊÅõ-Ê °¾¢Âõ º£ðÎ /Å¢ÎôÒ «ð¨¼ ", font);

4.运行itextsharp pdf程序输出为例外100%工作。