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