I have a problem with my code which generates an erroneous writing in Arabic.
This is my code
Excel.Workbook MyBook = null;
Excel.Application MyApp = null;
Excel.Worksheet MySheet = null;
MyApp = new Excel.Application();
MyApp.Visible = false;
MyBook = MyApp.Workbooks.Open("C:/Users/ADmin/Desktop/TESTCSHARP.xlsx");
MySheet = (Excel.Worksheet)MyBook.Sheets[1]; // Explicit cast is not required here
int lastRow_A = MySheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
iTextSharp.text.Rectangle REC = new iTextSharp.text.Rectangle(936, 454);
Document nouveauDocument = new Document(REC.Rotate());
try
{
    PdfWriter WRITER = PdfWriter.GetInstance(nouveauDocument, new FileStream("fichier_test.pdf", FileMode.Create));
    nouveauDocument.Open();
    try
    {
        PdfContentByte cb = WRITER.DirectContent;
        cb.BeginText();
        try
        {
            int XX = 15;
            cb.SetFontAndSize(BaseFont.CreateFont(), 10);
            float Y = (32 * (float)0.3937008) * 72;
            float X = (XX * (float)0.3937008) * 72;
            string arabname = "مرحبا العالم";
            string ARIALUNI_TFF = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF");
            BaseFont bf = BaseFont.CreateFont(ARIALUNI_TFF, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
            iTextSharp.text.Font f = new iTextSharp.text.Font(bf, 12, iTextSharp.text.Font.BOLD);
            cb.SetFontAndSize(f.BaseFont, 10);
            cb.ShowTextAligned(PdfContentByte.ALIGN_LEFT, arabname, (float)10.7 * (float)0.3937008 * 72, (float)6.8 * (float)0.3937008 * 72, -90);
            MyBook.Close();
        }
        finally
        {
            cb.EndText();
        }
    }
    finally
    {
        nouveauDocument.Close();
        WRITER.Close();
    }
}
catch (DocumentException de)
{
    Console.WriteLine("error " + de.Message);
}
catch (System.IO.IOException ioe)
{
    Console.WriteLine("error " + ioe.Message);
}
nouveauDocument.Close();
the result of this code in pdf is :
ر ي ن م
inversed and not bound like Arabic writing
and when i try to inverse the string with this code
char[] charArray = arabname.ToCharArray();
                    Array.Reverse(charArray);
                    arabname=charArray.ToString();
I have the same result.
while my need is to have منير linked like that, displayed in a PDF
Please help, Thanks.
                        
Try setting your font to embedded, changing this lines:
You'll also have to write this text to a
tablewithRunDirectionset toPdfWriter.RUN_DIRECTION_RTLto get the text written RTL. See Reversing Strings in Right To Left (BiDirectional) Languages in iTextSharp for more information.