从PDF格式提取阿拉伯语到字符串c#

时间:2017-12-01 22:17:30

标签: c# pdf itext extract arabic

好的,我知道这个问题重复了很多次。但直到现在我还没有找到解决方案。 我正在使用iTextSharp从pdf中提取。对于英语它很好,但对于阿拉伯语它总是显示“???????”在控制台和.txt中的“ÓåæáÉ” 这是我的代码

private static string ReadPdfFile(string fileName)
    {
        StringBuilder text = new StringBuilder();


        if (File.Exists(fileName))
        {
            PdfReader pdfReader = new PdfReader(fileName);
            ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
            string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, 1, strategy);
            //currentText = Encoding.UTF8.GetString(UTF8Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
            text.Append(currentText);
        }

        return text.ToString();
    }

更新

通过将UTF8用于输出文件来解决问题 现在我还有2个问题

它显示“التقديمممم”而不是“تمالتقديم” 这样:

  1. 我需要删除字母之间的空格。

  2. “订单被颠倒。”

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码将“ÓåæáÉ”转换为“سهولة”

public static string Arabic1256ToUtf8(string data)
{
    var latin = Encoding.GetEncoding("ISO-8859-1");
    var bytes = latin.GetBytes(data); // get the bytes for your ANSI string

    var arabic = Encoding.GetEncoding("Windows-1256"); // decode it using the correct encoding
    return arabic.GetString(bytes);
}
相关问题