C# 使用Itextsharp搜索PDF中的特定单词
这是我在StackOverflow的第一篇文章 我的系统驱动器中有一个PDF文件。。。我想用C#编写一个程序,使用Itextsharp.dll引用来搜索该PDF中的特定单词。。。假设我想搜索“StackOverFlow”。。。 如果PDF包含单词“StackOverFlow”,则应返回true 否则它应该返回false 我看了很多文章,但到现在还没有找到答案 到目前为止,我所尝试的是:C# 使用Itextsharp搜索PDF中的特定单词,c#,pdf,itextsharp,C#,Pdf,Itextsharp,这是我在StackOverflow的第一篇文章 我的系统驱动器中有一个PDF文件。。。我想用C#编写一个程序,使用Itextsharp.dll引用来搜索该PDF中的特定单词。。。假设我想搜索“StackOverFlow”。。。 如果PDF包含单词“StackOverFlow”,则应返回true 否则它应该返回false 我看了很多文章,但到现在还没有找到答案 到目前为止,我所尝试的是: public string ReadPdfFile(string fileName) {
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 = "2154/MUM/2012 A";// PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
text.Append(currentText);
}
pdfReader.Close();
}
return text.ToString();
}
publicstringreadpdffile(字符串文件名)
{
StringBuilder text=新的StringBuilder();
if(File.Exists(fileName))
{
PdfReader PdfReader=新PdfReader(文件名);
对于(int page=1;page而言,以下方法效果良好。它给出了找到文本的页面列表
public List<int> ReadPdfFile(string fileName, String searthText)
{
List<int> pages = new List<int>();
if (File.Exists(fileName))
{
PdfReader pdfReader = new PdfReader(fileName);
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
string currentPageText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
if (currentPageText.Contains(searthText))
{
pages.Add(page);
}
}
pdfReader.Close();
}
return pages;
}
public List ReadPdfFile(字符串文件名,字符串searthText)
{
列表页=新列表();
if(File.Exists(fileName))
{
PdfReader PdfReader=新PdfReader(文件名);
对于(int page=1;page,您有PdfTextExtractor.GetTextFromPage(pdfReader,page,strategy)。
并且您有您搜索的字符串。您是否检查了您的搜索字符串是否在GetTextFromPage
方法的结果中?如果不是,您是否检查了该方法的返回结果(毕竟是一个字符串)?我想你的文本参数有一个lisp;@Lalitya我需要在每次迭代中创建一个新的SimpleTextActionStrategy实例吗?@Lalitya我知道这是一个旧答案…但是…你也能找到文本位置(x和y)吗在页面上?@ToKa是的,你需要,我试过了,如果你重复使用simpletextractionstrategy
,它会复制你循环通过的所有页面。