我正在使用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);
}
}
}
}
答案 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 );
}