You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PdfPig将PDF转为可检索列表时GetPages.add.ToList语句报错

问题原因

你代码里的错误来自两处多余的错误写法:

  • 你自己额外声明了public static object GetPages { get; private set; }这个完全无用的属性,和PdfPig的PdfDocument.GetPages()方法重名,你写的GetPages.add.ToList(pages)实际是在调用这个object类型的属性,object本身没有add成员,必然触发报错。
  • 你没有正确使用LINQ的ToList()方法,pdf.GetPages()返回的是IEnumerable<Page>类型,直接调用自身的ToList()扩展方法就可以转成列表,不需要多余的赋值操作。

修正后的代码

using System;
using System.Collections.Generic;
using System.Linq;
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content; // 引入Page类型的对应命名空间

namespace TrainingProject
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var pdf = PdfDocument.Open(@"C:\Users\name\desktop\blahblahblah.pdf"))
            {
                // 一次调用GetPages直接转列表即可,不需要重复调用
                List<Page> pages = pdf.GetPages().ToList();
                bool found = false;
                
                // 加数量判断避免PDF为空时索引越界
                if (pages.Count > 0)
                {
                    string pageText = pages[0].Text;
                    if (pageText.Contains("|BRE|"))
                    {
                        found = true;
                    }
                }

                // 如果需要检索所有页可以替换为下面的遍历逻辑
                // foreach (var page in pages)
                // {
                //     if (page.Text.Contains("|BRE|"))
                //     {
                //         found = true;
                //         break;
                //     }
                // }

                Console.WriteLine(found ? "Text Found" : "Text not found");
            }
        }
    }
}

补充说明

原代码里的foreach循环仅提取了每页文本但没有做存储、使用操作,属于冗余逻辑,修正版本已删除。

内容的提问来源于stack exchange,提问作者mobuspwnd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:45:08