【问题标题】:Getting an error trying to convert a pdf into a list so I can search the document尝试将 pdf 转换为列表时出错,以便我可以搜索文档
【发布时间】:2021-12-08 08:22:57
【问题描述】:
using System;
using System.Linq;
using UglyToad.PdfPig;

namespace TrainingProject
{
    class Program
    {
        public static object GetPages { get; private set; }

        static void Main(string[] args)
        {
            using (var pdf = PdfDocument.Open(@"C:\Users\name\desktop\blahblahblah.pdf"))

            {
                foreach (var page in pdf.GetPages())

                {
                    // Extract based on grouping letters into words.
                    var pageText = string.Join(" ", page.GetWords());

                }

                bool found = false;

                {
                    var pages = pdf.GetPages();
                    GetPages.add.ToList(pages);
                    string pageText = pages[0].Text;
                    if (pageText.Contains("|BRE|"))
                    {
                        found = true;
                    }
                }

                if (found)
                {
                    Console.WriteLine("Text Found");
                }
                else
                {
                    Console.WriteLine("Text not found");
                }

            }
        }
    }

}

我正在使用 pdfPig 库将 pdf 转换为文本,然后我想将该字符串转换为列表,以便我可以在列表中搜索特定字符串。错误在 GetPages.add.ToList(pages);声明。

任何帮助或指导将不胜感激。 任何帮助将不胜感激。

【问题讨论】:

  • 错误说明了什么?另外,如果您将所有单词都放在一个字符串中,您可以在其中查看,为什么需要将其转换为列表?
  • 抱歉,我以为我包含了错误消息 - 'object' 不包含 'add' 的定义,并且找不到接受第一个参数类型为 'object' 的可访问扩展方法 'add' .

标签: c# list search


【解决方案1】:

同意 Mauricio,如果您只想搜索,则无需列表:

using (PdfDocument document = PdfDocument.Open(@"C:\Users\name\desktop\blahblahblah.pdf"))
{
    bool found = false;
    foreach (Page page in document.GetPages())
    {
        if (page.Text.Contains("|BRE|"))
        {
            found = true;
            break;
        }
    }

    if (found)
    {
        Console.WriteLine("Text Found");
    }
    else
    {
        Console.WriteLine("Text not found");
    }
}

如果您确实想在 .NET 中使用列表,请从 Generic Collections 开始:

    List<Page> pagesOfInterest = new List<string>();
    foreach (Page page in document.GetPages())
    {
        if (page.Text.Contains("|BRE|"))
        {
            pagesOfInterest.Add(page);
        }
    }

【讨论】:

  • 一位同事建议转换为列表。最终,我希望能够将数百个 pdf 转换为文本,然后在第一页搜索字符串。他建议转换为列表会更容易。我是 C# 的初学者,所以我只是尽可能地应付。
  • 尝试不同的方法永远不会有坏处,只要确保您了解每种方法的优缺点。
猜你喜欢
  • 1970-01-01
  • 2011-01-22
  • 2020-12-04
  • 2016-04-05
  • 2016-03-29
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多