如何将文本方向转换为正常

时间:2016-08-25 11:42:37

标签: c# .net pdf devexpress

我正在使用c#在内存中阅读阿拉伯语本地化的pdf文档,在阅读完文本之后我就像这样了

٩٠/٤٠/٧٣٤١ ٩١/١٠/٦١٠٢

但pdf中此文字的正确方向为٢٠١٦/٠١/١٩ ١٤٣٧/٠٤/٠٩

有人可以指导如何将此文本方向更改为正确的方向,因为它出现在pdf中。

修改

这是我正在使用的功能。我正在使用Devexpress Document服务器,我正在跳到第36行,因为我不需要第36行之前的数据。

 private void button1_Click(object sender, EventArgs e)
        {

            using (var documentStream = new FileStream(@"D:\Data\Projects\DotNet\ElectricBillReader\electricbill.pdf", FileMode.Open, FileAccess.Read))
            {
                using (PdfDocumentProcessor documentProcessor = new PdfDocumentProcessor())
                {
                    documentProcessor.LoadDocument(documentStream);

                    using (var sr = new StringReader(documentProcessor.Text))
                    {
                        var counter = 0;
                        string line = string.Empty;
                        do
                        {
                            line = sr.ReadLine();
                            if (counter > 36)
                            {
                                if (line != null)
                                {

                                }
                            }
                            counter++;
                        } while (line!=null);
                    }
                }
            }
        }

2 个答案:

答案 0 :(得分:1)

你需要一个实现Unicode bidirectional algorithm的库,我不知道任何为.NET做这个的库,但是需要努力移植{{3}到.NET ICU

另外,请检查一下:here

答案 1 :(得分:0)

您是否考虑过将字符串反转?

public static string Reverse( string s )
{
    char[] charArray = s.ToCharArray();
    Array.Reverse( charArray );
    return new string( charArray );
}

Source