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