使用 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中文网其他相关文章!