[英]How to Create PDF file with Tamil Font by using itextsharp in C#?
我们通过传递泰米尔语文本(一种印度语言)在我们的 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 文件。
你能试试下面的代码片段吗?
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 目前还没有完全支持所有印度语言......看到这里他们说他们没有足够的志愿者来支持这一点。
我已经引用了 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文件中。但是简单的拼写错误......所以我正在阅读这个问题......
进行1:
第 1 步:转到http://software.nhm.in/services/converter网站
step2:粘贴这个词படிவம்-டி ஊதியம் சீட்டு /விடுப்பு அட்டை
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.最后在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% 工作。
一个可行的替代方案是Quest PDF 。
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.PageColor(Colors.White);
page.DefaultTextStyle(x => x.FontSize(20));
page.DefaultTextStyle(x => x.FontFamily("Vijaya"));
page.Header()
.Text("தமிழ் PDF!")
.SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);
page.Content()
.PaddingVertical(1, Unit.Centimetre)
.Column(x =>
{
x.Spacing(20);
x.Item().Text("தமிழ் (Tamil language) தமிழர்களினதும் தமிழ் பேசும் பலரின் தாய்மொழி ஆகும். தமிழ், உலகின் உள்ள முதன்மையான மொழிகளில் ஒன்றும் செம்மொழியும் ஆகும்.");
});
page.Footer()
.AlignCenter()
.Text(x =>
{
x.Span("பக்கம் ");
x.CurrentPageNumber();
});
});
})
.GeneratePdf("தமிழ்.pdf");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.