首頁 > 後端開發 > C++ > 在 C# 中使用 iTextSharp 從 PDF 中提取文字時如何解決編碼問題?

在 C# 中使用 iTextSharp 從 PDF 中提取文字時如何解決編碼問題?

Mary-Kate Olsen
發布: 2025-01-11 06:26:42
原創
461 人瀏覽過

How Can I Resolve Encoding Issues When Extracting Text from PDFs Using iTextSharp in C#?

C# 中的 iTextSharp PDF 文字擷取問題排查

在 C# 中使用 iTextSharp 從 PDF 中提取文字可能會帶來挑戰,尤其是在處理非英語字元時。 波斯語或阿拉伯語等語言經常出現問題,導致輸出損壞或無法閱讀。

修正編碼錯誤

這些問題的主要原因通常在於不必要的編碼轉換。 避免這個常見的陷阱:

currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));
登入後複製

此程式碼嘗試多次編碼轉換,這經常會引入錯誤。 相反,簡化您的文字擷取:

currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
登入後複製

這種簡化的方法直接檢索文本,最大限度地減少編碼相關問題的風險。

其他需要考慮的要點

除了編碼之外,請確認您的文字顯示機製完全支援 Unicode 字元。 也建議使用最新的 iTextSharp 函式庫。

即使進行了這些更正,文本可能仍然顯示無序,特別是在阿拉伯語等從右到左的語言中。這是一個已知的限制,源自於某些 PDF 處理文字渲染的方式(如 PDF 2008 規範 14.8.2.3.3 中詳述)。 要解決此問題,需要對 PDF 的結構進行更深入的分析,以正確地對提取的文本進行重新排序。

以上是在 C# 中使用 iTextSharp 從 PDF 中提取文字時如何解決編碼問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板