在itextsharp中的RTL对齐c#

时间:2014-11-17 18:13:00

标签: c# itextsharp

我想在我的pdf中添加阿拉伯文字。我需要做一个RTL对齐。 Hebrew text in PDF给出了如何使用PdfpTable的答案。

并使用

table.RunDirection = PdfWriter.RUN_DIRECTION_RTL;

我能做到。但是,当我没有创建PdfPTable时,还有其他方法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用ColumnText并将其RunDirection设置为RUN_DIRECTION_RTL

using System;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace iTextSharpTests
{
   class Program
   {
       static void Main(string[] args)
       {
           using (var pdfDoc = new Document(PageSize.A4))
           {
               var pdfWriter = PdfWriter.GetInstance(pdfDoc, new FileStream("Test.pdf", FileMode.Create));
               pdfDoc.Open();

               var fontPath = Environment.GetEnvironmentVariable("SystemRoot") + "\\fonts\\tahoma.ttf";
               var baseFont = BaseFont.CreateFont(fontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
               var tahomaFont = new Font(baseFont, 10, Font.NORMAL, BaseColor.BLACK);

               ColumnText ct = new ColumnText(pdfWriter.DirectContent);
               ct.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
               ct.SetSimpleColumn(100, 100, 500, 800, 24, Element.ALIGN_RIGHT);

               var chunk = new Chunk("تست", tahomaFont);

               ct.AddElement(chunk);
               ct.Go();
           }
       }
   }
}