我使用此代碼使用iTextSharp閱讀pdf內容。當內容是英語時它工作正常,但當內容是波斯語或阿拉伯語時不起作用
結果是這樣的:
Here是樣本非英文PDF測試。使用iTextSharp在C#中閱讀pdf內容
UZU>ناUU」بÙ~طثیؿیÙ> U〜زؾاUU>ÙØÙ」Ù,Ù>Ù... O ÛŒÙ」歐•Ø³Â ©卡爾·塞甘foppersian.codeplex.com www.codebetter.com 11個UU」بÙ~طثUZU>نایؿیÙ> U〜
همانرب لوصا یسیون مرن دیلوت رتهب رازÙا
什麼方案?
public string ReadPdfFile(string fileName)
{
StringBuilder text = new StringBuilder();
if (File.Exists(fileName))
{
PdfReader pdfReader = new PdfReader(fileName);
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
currentText = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.UTF8.GetBytes(currentText)));
text.Append(currentText);
pdfReader.Close();
}
}
return text.ToString();
}
我認爲阿拉伯字符,它正在打印他們相應的Unicode字符。所以在打印之前,你需要將它們轉換成正常的字符串/字符。 – vikiiii 2012-04-17 06:01:35
@vikiiii謝謝,你有什麼想法我該怎麼做? – Shahin 2012-04-17 06:20:03
[查看此答案](http://stackoverflow.com/questions/9447648/parse-a-persian-pdf-file-to-txt-and-its-images/9454073#9454073)爲例。但即使如此,那裏**是一個問題(IIRC與5.1.2),因爲波斯語/阿拉伯語是從右到左的語言。建議您嘗試最新版本或SVN並查看問題是否已得到解決。 – kuujinbo 2012-04-17 09:49:59