2014-11-17 4 views
2

Я хочу добавить арабский текст в мой pdf. Мне нужно сделать выравнивание RTL. Hebrew text in PDF дает ответ, как это сделать, используя PdfpTable.RTL выравнивание в itextsharp C#

И используя

table.RunDirection = PdfWriter.RUN_DIRECTION_RTL; 

я могу сделать это. Но есть ли другой способ сделать это, когда я вообще не создаю PdfPTable?

+0

Я бы sugest вам itextsharp не используется. Я предлагаю вам использовать wkhtmltopdf, в котором вы можете создать html, чтобы выглядеть так, как хотите, и использовать его; любая настройка, которую вы сделаете в html (включая css), будет переведена в pdf. Это только мое мнение. Мы использовали itextsharp и сбрасывали его из-за его ограничений. – HellBaby

+0

@HellBaby Спасибо. Я обязательно рассмотрю ваше предложение. Но сейчас мне нужно знать это. было бы неплохо, если бы вы могли помочь. –

+0

в соответствии с этим: http://stackoverflow.com/a/7048709/1707033 вы можете установить его на элементе, который добавлен в документ. – HellBaby

ответ

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(); 
      } 
     } 
    } 
} 
Смежные вопросы