【发布时间】:2012-12-20 16:15:57
【问题描述】:
我正在使用 itextsharp 使用以下代码从 pdf 文档中提取文本:
public static bool does_document_text_have_keyword(string keyword,
string pdf_src, Report report_object) // TEST
{
try
{
PdfReader pdfReader = new PdfReader(pdf_src);
string currentText;
int count = pdfReader.NumberOfPages;
for (int page = 1; page <= count; page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
currentText = PdfTextExtractor.GetTextFromPage
(pdfReader, page, strategy);
currentText = Encoding.UTF8.GetString
(ASCIIEncoding.Convert
(Encoding.Default,
Encoding.UTF8,
Encoding.Default.GetBytes(currentText)));
report_object.log(currentText); // TEST
if (currentText.IndexOf
(keyword, StringComparison.OrdinalIgnoreCase) != -1) return true;
}
pdfReader.Close();
return false;
}
catch
{
return false;
}
}
但问题是,当我提取文本时,文本没有空格,就好像空格被替换为空字符串一样。然而在pdf文档中,里面有空格。有谁知道这里发生了什么?
【问题讨论】:
-
在致电
PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy)之后,您在currentText中有什么? -
@cheesemacfly,结果一样
-
@ray cheng,我需要空格,因为我提取文本来搜索单词
-
这个解决方案怎么样:stackoverflow.com/a/8448889/1443490
-
此外,如需确定性建议,请提供说明问题的示例文件。
标签: c# pdf itextsharp