C# 由abcpdf.net生成的阿拉伯字符串的反转

C# 由abcpdf.net生成的阿拉伯字符串的反转,c#,C#,我使用abcpdf.net通过read(pdfpath)和gettext()函数来转换阿拉伯语pdf,结果文本(字符串)看起来像这样,因为阿拉伯语是RTL语言,所以不可读。我的问题是现在我必须反转字符串的阿拉伯语部分以使其可读,但我不知道如何才能做到这一点。如何提取阿拉伯语部分,然后将其反转 我使用的是C#,下面是使用abcpdf.net库时从PDF中提取的字符串示例: 0.00 KCCUSER1 6:17:19PM28/10/2010ةعابطلا خيرات (200) لوادتملا

我使用abcpdf.net通过
read(pdfpath)
gettext()
函数来转换阿拉伯语pdf,结果文本(字符串)看起来像这样,因为阿拉伯语是RTL语言,所以不可读。我的问题是现在我必须反转字符串的阿拉伯语部分以使其可读,但我不知道如何才能做到这一点。如何提取阿拉伯语部分,然后将其反转

我使用的是C#,下面是使用abcpdf.net库时从PDF中提取的字符串示例:

0.00
KCCUSER1
 6:17:19PM28/10/2010ةعابطلا خيرات

(200) لوادتملا زكارمو تاكرح

ةصاقملل ةيتيوكلا ةكرشلا

28/10/2010

RBKPI012

لمعلا خيرات

عمجم/ ح - 88لجلا عيبلل افيا ةيلودلا ةيلاملا تاراشتسلا ةكرش  -  65646

C023

يحاتتفلا ديصرلا
伊萨拉比法

private bool IsArabic(字符)
{

如果(character>=0x600&&character=0x750&&character=0xfb50&&character=0xfe70&&character),则显示文本以正确呈现字符串的是应用程序的作业。它需要具有RTL意识。您尚未说明使用哪个应用程序查看它。
private string Convert(string source)
{
    string arabicWord = string.Empty;
    StringBuilder sbDestination = new StringBuilder();

    foreach (var ch in source)
    {
        if (IsArabic(ch))
            arabicWord += ch;
        else
        {
            if (arabicWord != string.Empty)
                sbDestination.Append(Reverse(arabicWord));

            sbDestination.Append(ch);
            arabicWord = string.Empty;
        }
    }

    // if the last word was arabic    
    if (arabicWord != string.Empty)
        sbDestination.Append(Reverse(arabicWord));

    return sbDestination.ToString();
}
private bool IsArabic(char character)
{
    if (character >= 0x600 && character <= 0x6ff)
        return true;

    if (character >= 0x750 && character <= 0x77f)
        return true;

    if (character >= 0xfb50 && character <= 0xfc3f)
        return true;

    if (character >= 0xfe70 && character <= 0xfefc)
        return true;

    return false;
}

// Reverse the characters of string
string Reverse(string source)
{
    return new string(source.ToCharArray().Reverse().ToArray());
}