首页 >后端开发 >C++ >如何在 C# 中使用 iTextSharp 从 PDF 中提取非英文文本而不输出乱码?

如何在 C# 中使用 iTextSharp 从 PDF 中提取非英文文本而不输出乱码?

DDD
DDD原创
2025-01-11 06:36:41631浏览

How Can I Extract Non-English Text from PDFs Using iTextSharp in C# Without Garbled Output?

使用 iTextSharp 读取非英语 PDF 内容

在使用 C# 中的 iTextSharp 从 PDF 文档中提取文本时,如果内容是非英语语言(例如波斯语或阿拉伯语),用户可能会遇到问题。这可能会导致文本乱码,因为内置的编码方法无法处理这些字符集。

为了解决这个问题,务必避免对从 PDF 获得的文本执行任何不必要的编码转换。在 iTextSharp 中,PdfTextExtractor.GetTextFromPage() 方法从 PDF 页面提取原始文本。应稍后以受控方式处理转换为 Unicode。

提供的代码片段尝试使用 Encoding.UTF8 重新编码文本,这是错误的方法。以下简化的代码片段说明了正确的方法:

<code class="language-csharp">public string ReadPdfFileWithoutEncoding(string fileName)
{
    StringBuilder text = new StringBuilder();

    if (File.Exists(fileName))
    {
        PdfReader pdfReader = new PdfReader(fileName);

        for (int page = 1; page <= pdfReader.NumberOfPages; page++)
        {
            text.Append(PdfTextExtractor.GetTextFromPage(pdfReader, page));
        }
        pdfReader.Close();
    }

    return text.ToString();
}</code>

请注意,务必确保您的应用程序使用的是最新版本的 iTextSharp。旧版本在处理非英语文本方面可能存在限制。此外,负责显示提取文本的应用程序必须支持 Unicode 字符。

以上是如何在 C# 中使用 iTextSharp 从 PDF 中提取非英文文本而不输出乱码?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn