【问题标题】:How to Create PDF file with Tamil Font by using itextsharp in C#?如何在 C# 中使用 itextsharp 创建带有泰米尔语字体的 PDF 文件?
【发布时间】:2012-09-10 08:53:21
【问题描述】:

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

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 文件。

【问题讨论】:

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


    【解决方案1】:

    你能试试下面的代码sn-p吗?

    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 他们说他们没有足够的志愿者来支持这一点。

    【讨论】:

    • 但是我这样说,Paragraph pr1 = new Paragraph("english", AVVAIYARFont);而不是泰米尔语输入,我传递了英文输入,然后它在泰米尔语中创建了一些没有意义的文本......
    • 您是否检查了开箱即用的评论?
    • :我已经引用了ARIALUNI.TTF。我试过这样,string fontpath = Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\ARIALUNI.TTF";所以,现在泰米尔语字体显示在pdf文件中。但是简单的拼写错误......所以我正在阅读这个问题......
    • 太好了,这意味着当您将 ARIALUNI.TTF + AVVAIYAR.TTF 放在逻辑中时它可以工作。对吗?
    • 不,我只放 Arialuni.TTF...不要关心 avvaiyar.ttf
    【解决方案2】:

    我已经引用了 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);
    

    所以,现在泰米尔语字体显示在 pdf 文件中。但是简单的拼写错误......所以我正在阅读这个问题......

    【讨论】:

      【解决方案3】:

      进行 1:

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

      第二步:粘贴这个单词படிவம்-டி ஊதியம் சீட்டு /விடுப்பு அட்டை

      step3:1.将第一个下拉列表更改为 Unicode ,2.将第二个下拉列表更改为 TAB

      step5:点击按钮转换器

      step6.text 将被对齐。

      第 7 步:主进程从听到开始

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

      2.现在将第一个下拉菜单自动更改为 Unicode,泰米尔语文本将更改为“ÀÊÅõ-Ê °¾¢Âõ º£ðÎ /Å¢ÎôÒ «ð¨¼”;

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

      流程2:

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

      2.保存或移动到c:\Windows\fonts

      3.finally 将下面的代码贴在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% 工作。

      【讨论】:

        猜你喜欢
        • 2011-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-17
        • 1970-01-01
        • 2021-12-04
        相关资源
        最近更新 更多