There are issues with non-Arabic content like English words, numbers or any punctuation symbol coming in between the Arabic content. The arabic word that is next to English word is losing its first character and that is getting shifted to the left hand side of the English word. Also this issue is not only with English word, it is with any non-Arabic word/character. Please look at the attached screenshot, the word after ‘32’ is not correct as its first character has shifted on the left side of it. This is happening at every place wherever there is non-Arabic word/character coming in between Arabic content in pdf.
Thanks for your patience.
I have tested this scenario and I am able to notice that when Non-Arabic word is placed in between Arabic content, the last character of Arabic word present on Right hand side of English word is being placed on left hand side of English word. Please take a look over the attached screenshot (ArabicWord_CharacterIssue.png) for better understanding. For the sake of correction, I have logged this problem as PDFNET-27287 in our issue tracking system. We will further look into the details of this problem and will keep you updated on the status of correction.
I have used seg0.Content = "شكرا لاستخدام ASPOSE مكان الصور أثناء تقديم نص عربي."; to test this scenario.
If there are strings like 2/1 or %3 then they are still getting reversed rendered as ½ or 3% respectively.
I have tried reproducing this issue using seg0.Content = "شكرا لاستخدام ASPOSE مكان الصور أثناء 2/1 تقديم نص عربي."; but I am afraid I am unable to notice any issue. 1/2 is properly being displayed in resultant PDF. Can you please share some more details on how we can reproduce this issue ?
Consider the scenario in which we have an icon coming in between the Arabic text. Now since the Arabic text is RTL directed the image icon is coming on the right hand side instead of the left hand side. This means that RTL is also getting applied to the icon which should not happen. I have also tried applying alignment and diection to that icon segement to place it left hand side but still is not coming up left aligned. Please see the attached screenshot.
I have tried reproducing this issue using following code snippet but I am afraid I am unable to notice any issue. Can you please take a look over the following code snippet. For your reference, I have also attached the resultant PDF (Scenario3_Image-In-ArabicText.pdf) that I have generated.
// Instantiate an object PDF class
Pdf pdf = new Pdf();
//Create a section in the Pdf object
Aspose.Pdf.Section sec1 = pdf.Sections.Add();
Aspose.Pdf.Text text1 = new Aspose.Pdf.Text();
text1.TextInfo.IsRightToLeft = true;
Aspose.Pdf.Segment seg0 = text1.Segments.Add();
seg0.Content = "مكان الصور أثناء تقديم نص عربي.";
seg0.TextInfo.IsRightToLeft = true;
seg0.TextInfo.IsUnicode = true;
//Create rows in the table and then cells in the rows
Segment Image_Seg = text1.Segments.Add();
//create a Image object to contain logo gif.
Aspose.Pdf.Image img1 = new Aspose.Pdf.Image();
img1.ImageInfo.File = @"d:/pdftest/aspose-logo.png";
// set image type
img1.ImageScale = .55f;
img1.ImageInfo.ImageFileType = ImageFileType.Png;
//indicate seg2's InlineParagraph is a image.
Image_Seg.InlineParagraph = img1;
Aspose.Pdf.Segment seg1 = text1.Segments.Add();
seg1.Content = "Aspose شكرا لاستخدام";
seg1.TextInfo.IsRightToLeft = true
seg1.TextInfo.IsUnicode = true;
Besides this, I have observed that sequence of words is not correct when non-English text is placed inside Arabic content. Please take a look over attached (ArabicWord_SequenceIssue.png) which explains this issue. For the sake of correction, I have logged it as PDFNET-27288. We will further look into the details of this issue and will keep you updated on the status of correction. We are sorry for this inconvenience.