首頁 >後端開發 >C++ >如何在 C# 中使用 iTextSharp 從 PDF 提取非英文文字而不輸出亂碼?

如何在 C# 中使用 iTextSharp 從 PDF 提取非英文文字而不輸出亂碼?

DDD
DDD原創
2025-01-11 06:36:41632瀏覽

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