title: Arabic in pdf using iTextSharp in c#
body: <p>I want to create a PDF file with Arabic text content in C#. I'm using iTextSharp to create this. I followed the instruction in <a href="http://geekswithblogs.net/JaydPage/archive/2011/11/02/using-itextsharp-to-correctly-display-hebrew--arabic-text-right.aspx" rel="nofollow noreferrer">http://geekswithblogs.net/JaydPage/archive/2011/11/02/using-itextsharp-to-correctly-display-hebrew--arabic-text-right.aspx</a>. I want to insert the following Arabic sentence in pdf.</p>
  
  <blockquote>
    <p>تم إبرام هذا العقد في هذا اليوم [●] م الموافق [●] من قبل وبين .</p>
  </blockquote>
  
  <p>The [●] need to be replaced by dynamic English words. I tried to implement this by using ARIALUNI.TTF [This tutorial link suggested it]. The code is given below.</p>
  
  <pre><code>public void WriteDocument()
  {
      //Declare a itextSharp document 
      Document document = new Document(PageSize.A4);
  
      //Create our file stream and bind the writer to the document and the stream 
      PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"D:\Test.Pdf", FileMode.Create));
  
      //Open the document for writing 
      document.Open();
  
      //Add a new page 
      document.NewPage();
  
      //Reference a Unicode font to be sure that the symbols are present. 
      BaseFont bfArialUniCode = BaseFont.CreateFont(@"D:\ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
      //Create a font from the base font 
      Font font = new Font(bfArialUniCode, 12);
  
      //Use a table so that we can set the text direction 
      PdfPTable table = new PdfPTable(1);
      //Ensure that wrapping is on, otherwise Right to Left text will not display 
      table.DefaultCell.NoWrap = false;
  
      //Create a regex expression to detect hebrew or arabic code points 
      const string regex_match_arabic_hebrew = @"[\u0600-\u06FF,\u0590-\u05FF]+";
      if (Regex.IsMatch("م الموافق", regex_match_arabic_hebrew, RegexOptions.IgnoreCase))
      {
          table.RunDirection = PdfWriter.RUN_DIRECTION_RTL;
      }
  
      //Create a cell and add text to it 
      PdfPCell text = new PdfPCell(new Phrase(" : "+"من قبل وبين" + " 2007 " + "م الموافق" + " dsdsdsdsds " + "تم إبرام هذا العقد في هذا اليوم ", font));
      //Ensure that wrapping is on, otherwise Right to Left text will not display 
      text.NoWrap = false;
  
      //Add the cell to the table 
      table.AddCell(text);
  
      //Add the table to the document 
      document.Add(table);
  
      //Close the document 
      document.Close();
  
      //Launch the document if you have a file association set for PDF's 
      Process AcrobatReader = new Process();
      AcrobatReader.StartInfo.FileName = @"D:\Test.Pdf";
      AcrobatReader.Start();
  }
  </code></pre>
  
  <p>While calling this function, I got a PDF with some Unicode as given below.</p>
  
  <blockquote>
    <p>اذه يف دقعلا اذه ماربإ مت dsdsdsdsds قفاوملا م 2007 نيبو لبق نم 
    مويلا</p>
  </blockquote>
  
  <p>It is not matching with our hard coded Arabic sentence. Is this a issue of font? Please help me or suggest me any other method to implement the same.</p>