Категория

Чтение PDF с помощью ИИ в C#: чтение и извлечение данных

2026-09-29 08:04:25 Jane Zhao
AI Summarize:
ChatGPT
ChatGPT ✓
Claude ✓
Grok ✓
Perplexity ✓
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

AI read pdf and extract data in C# with Spire.Agent.Office

Программное чтение и обработка PDF-файлов на C# — распространённая задача для .NET-разработчиков, создающих системы автоматизации документооборота, извлечения данных и генерации отчётов. Традиционные библиотеки анализа PDF требуют сложного кода для извлечения текста, сохранения форматирования и разбора таблиц. Они часто дают некачественный результат при нестандартных макетах, нарушенном выравнивании содержимого и нетиповых структурах таблиц.

Если вам нужен простой способ чтения PDF на C# с использованием ИИ и экспорта содержимого PDF в другие форматы, Spire.Agent.Office — отличный выбор. Этот SDK ИИ-агента для .NET управляет процессами анализа и преобразования PDF с помощью инструкций на естественном языке. Он работает без Adobe Acrobat и внешних сторонних PDF-программ.

В этом руководстве мы расскажем, как использовать ИИ для чтения PDF на C#, с полными готовыми примерами кода для:


Почему стоит выбрать Spire.Agent.Office вместо других средств чтения PDF на основе ИИ?

Интернет полон универсальных средств чтения PDF на основе ИИ, но большинству из них не хватает гибкости для разработчиков, корпоративной безопасности и точности структурного анализа. Spire.Agent.Office — это SDK обработки документов с ИИ, созданный для экосистемы .NET. Он объединяет ИИ-анализ с API офисных документов. Вы можете читать, анализировать и преобразовывать файлы PDF, Word, Excel и PowerPoint, передавая простые подсказки на естественном языке.

Ключевые преимущества чтения PDF с помощью ИИ на C#:

  • SDK, ориентированный на разработчиков: создан для бесшовной интеграции API в пользовательские приложения, CRM, конвейеры автоматизации и серверные системы
  • Точность структурированных данных: превосходное сохранение таблиц и макета
  • Корпоративная безопасность: возможности локальной обработки предотвращают утечку конфиденциальных данных PDF в сторонние облачные инструменты
  • Поддержка множества форматов: читает PDF и документы Office в одном унифицированном агенте
  • Минимум кода: замените сотни строк ручной логики анализа простыми вызовами ИИ-подсказок, чтобы ускорить разработку.

Настройка: проект, пространства имён и токен

  • 1. Установите пакет NuGet

Создайте проект .NET и установите библиотеку; все зависимости установятся автоматически.

Install-Package Spire.Agent.Office
  • 2. Добавьте пространства имён

Три директивы using дают всё необходимое для ИИ-обработки PDF:

using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;
  • 3. Настройка SpireToken

Spire.Agent.Office требует действительный ключ SpireToken. Вы можете запросить временный ключ для ознакомления здесь.

AIOptions options = new AIOptions();
options.SpireToken = "YOUR_SPIRE_TOKEN_KEY";

Пример 1: Извлечение текста PDF с помощью .NET ИИ-агента

Извлечение необработанного текстового содержимого обычно является первым этапом любого конвейера обработки документов. Spire.Agent.Office позволяет анализировать содержимое PDF и записывать результаты напрямую в файл TXT с помощью инструкций на естественном языке.

Типичные варианты использования: создание поисковых индексов, подача документов в последующие конвейеры NLP, ведение журнала аудита и обнаружение изменений содержимого.

Код C#: PDF в TXT

using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;

string inputPath = @"input0.pdf";
string outputPath = @"output.txt";
string key = "YOUR_SPIRE_TOKEN_KEY";

if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
    AIOptions options = new AIOptions();
    options.SpireToken = key;

    using (PdfDocument pdf = new PdfDocument())
    {
        pdf.LoadFromFile(inputPath);

        // Get the AI processor for PDF
        AIDocumentProcessor processor = pdf.AI(options);

        // Natural language instruction
        string instruction = "Read all text content from the PDF file, retain paragraph layout, and save as a TXT file";

        // Execute the AI instruction
        AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath);
    }
}

Созданный файл TXT сохраняет структуру абзацев PDF. Чтобы извлечь простой текст без форматирования абзацев, измените инструкцию ИИ по мере необходимости.

Extract text from PDF to TXT file using .NET AI agent


Пример 2: Преобразование PDF в редактируемый Word с помощью .NET ИИ-агента

Обычные PDF не редактируются, что затрудняет внесение правок и повторное использование содержимого. ИИ Spire.Agent.Office считывает макет PDF, стили шрифтов и структуру абзацев, а затем преобразует статические PDF в полностью редактируемые файлы DOCX, сохраняя единообразное форматирование.

Реальный вариант использования: закупочные или юридические команды получают договоры с поставщиками в формате PDF и нуждаются в редактируемых файлах DOCX для проверки с отслеживанием изменений, вставки комментариев и сравнения версий.

Код C#: PDF в Word

using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;

string inputPath = @"supplier_agreement.pdf";
string outputPath = @"supplier_agreement_editable.docx";
string key = "YOUR_SPIRE_TOKEN_KEY";

if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
    AIOptions options = new AIOptions();
    options.SpireToken = key;

    using (PdfDocument pdf = new PdfDocument())
    {
        pdf.LoadFromFile(inputPath);

        // Get the AI processor for PDF
        AIDocumentProcessor processor = pdf.AI(options);

        // Natural language instruction
        string instruction = "Convert this supplier agreement PDF into an editable Word document. " +
                    "Retain hierarchical clause numbering (1, 1.1, 1.2…), use Word's multilevel list, no hardcoded numbers. " +
                    "keep section headings in bold, and convert tables to native Word tables at original positions. " +
                    "Do not flatten the layout into plain paragraphs. Keep signature block formatting intact.";

        // Execute the AI instruction
        AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath);
    }
}

Ключевые преимущества

  • Сохранение структуры пунктов: нумерованные юридические пункты остаются правильно структурированными для внесения правок
  • Сохранение таблиц: таблицы цен и графики остаются настоящими таблицами Word
  • Минимальный код: одна инструкция заменяет то, что традиционно требовало множества вызовов API к нескольким компонентам

Convert PDF to editable Word using .NET AI agent


Пример 3: Чтение таблиц PDF в CSV/Excel с помощью .NET ИИ-агента

Одна из самых мощных возможностей Spire.Agent.Office — способность понимать и извлекать структурированные данные из таблиц PDF. Бизнес-сценарии включают автоматизацию кредиторской задолженности, сверку банковских выписок и обработку финансовых отчётов.

Код C#: банковская выписка PDF в CSV

Если вы каждый месяц скачиваете выписку в PDF и вам нужно импортировать транзакции в бухгалтерскую программу, этот пример для вас.

using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;

string inputPath = @"bank_statement_1.pdf";
string outputPath = @"bank_transactions.csv";
string key = "YOUR_SPIRE_TOKEN_KEY";

if (!string.IsNullOrEmpty(inputPath) && File.Exists(inputPath))
{
    AIOptions options = new AIOptions();
    options.SpireToken = key;

    using (PdfDocument pdf = new PdfDocument())
    {
        pdf.LoadFromFile(inputPath);

        // Get the AI processor for PDF
        AIDocumentProcessor processor = pdf.AI(options);

        // Natural language instruction
        string instruction = "Extract all transactions from this bank statement into a CSV." +
                    " Include: Transaction Date, Description, Reference Number, Debit Amount, Credit Amount," +
                    " and Running Balance. Use empty cells (not zeros) when a debit or credit field doesn't apply to a row." +
                    " Exclude opening balance, closing balance, and any summary totals." +
                    " Preserve the original transaction order as they appear on the statement.";

        // Execute the AI instruction
        AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath);
    }
}

Export PDF table to CSV using .NET AI agent

Код C#: финансовый отчёт PDF в Excel

Чтобы экспортировать таблицы PDF в Excel, просто измените выходной формат (.xlsx) и скорректируйте инструкции. Например, если у вас есть квартальный отчёт PDF с несколькими таблицами на разных страницах, вы можете извлечь всё в одну книгу с отдельными листами:

string inputPath = @"Q3_2024_financial_report.pdf";
string outputPath = @"Q3_2024_financials.xlsx";

string instruction = "This PDF contains multiple financial tables across several pages:" +
            " Revenue by Region, Cost of Goods Sold, Operating Expenses, and Cash Flow Summary." +
            " Extract each table into its own named worksheet in the output Excel file." +
            " Use the table's section heading as the sheet name. Keep column headers on the" +
            " first row of each sheet, ensure all currency values are numeric (strip out '{BODY_CONTENT}#39; and ',')," +
            " and preserve the original row and column order.";

Пример 4: Много PDF — одна инструкция (пакетная обработка)

Большинство реальных задач автоматизации обрабатывают пакеты документов (например, десятки PDF-счетов). Используйте параметр attachmentPaths:

  • Создайте пустой экземпляр PdfDocument.
  • Передайте коллекцию путей к PDF-файлам через attachmentPaths.
  • Напишите одну инструкцию, описывающую, как объединить или агрегировать выходные данные.

Этот шаблон позволяет реализовать такие сценарии, как объединение множества счетов в одну агрегированную книгу Excel.

Код C#: пакетная обработка PDF-счетов

using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;

string[] invoicePaths = Directory.GetFiles(@"F:\Invoices", "*.pdf");
string outputPath = @"consolidated_invoices.xlsx";
string key = "YOUR_SPIRE_TOKEN_KEY";

AIOptions options = new AIOptions();
options.SpireToken = key;

using (PdfDocument pdf = new PdfDocument())
{
    // Get the AI processor for PDF
    AIDocumentProcessor processor = pdf.AI(options);

    // Natural language instruction for batch processing
    string instruction = "Read all attached invoice PDFs and consolidate them into one Excel workbook. " +
        "Create one row per invoice with columns: Invoice Number, Vendor Name, Invoice Date, " +
        "Due Date, Subtotal, Tax, Total Amount. Sort by Invoice Date ascending.";

    // Execute with attachment paths
    AIResult result = processor.ExecuteInstruction(pdf, instruction, outputPath, invoicePaths);
}

Краткий обзор API

Компонент API Назначение Ключевой метод/свойство
AIOptions Объект конфигурации SpireToken, WorkDir, TimeoutMs
AIDocumentProcessor Основная точка входа ИИ-обработки ExecuteInstruction()
pdf.AI(options) Метод расширения для PdfDocument Возвращает AIDocumentProcessor
AIResult Контракт результата выполнения Success, TokenUsage
attachmentPaths Параметр вспомогательных документов Передаётся в ExecuteInstruction()

Рекомендации для надёжного извлечения

1. Указывайте конкретные требования к выходным данным в инструкциях

Избегайте расплывчатых подсказок вроде «извлеки данные». Определите целевой формат, столбцы и структуру (например, «экспортируй в книгу Excel, одна строка на позицию»).

2. Помещайте бизнес-логику в инструкции

Реализуйте фильтрацию, сортировку и нормализацию в подсказках вместо жёсткого задания позиционных смещений или координат. Логика остаётся понятной человеку и удобной в сопровождении.

3. Проверяйте AIResult.Success

Проверяйте статус выполнения при каждом вызове. Незаметные сбои могут нарушить работу автоматизированных конвейеров без оператора.

if (result == null || !result.Success)
{
    throw new InvalidOperationException(
        {BODY_CONTENT}quot;AI instruction failed: {result?.ErrorMessage ?? "Unknown error"}");
}

4. Проверяйте выходные данные.

Для финансовых данных или данных о соответствии нормативным требованиям выполняйте собственные проверки созданного файла — количество строк, итоги по столбцам, соответствие схеме. Агент создаёт артефакт; ваш конвейер по-прежнему отвечает за корректность.


Заключение

Приведённые выше примеры показывают, как SDK Spire.Agent.Office может использовать ИИ для чтения PDF в TXT, пересборки PDF в редактируемые документы Word, извлечения банковских выписок и финансовых таблиц в CSV или Excel, а также объединения пакетов счетов в одну книгу. В каждом случае код остаётся небольшим, инструкции — читаемыми, а выходные данные — достаточно структурированными для последующей автоматизации.

Если ваша команда тратит время на написание хрупкой логики анализа или ручной перенос данных из PDF, Spire.Agent.Office предлагает практичный путь вперёд. Установите пакет NuGet, добавьте свой токен и начните с одного рабочего процесса. Оттуда вы можете перейти к пакетной обработке и создавать конвейеры автоматизации документов, которые быстрее разрабатывать, легче сопровождать и которые более устойчивы к реальным PDF-файлам.


Часто задаваемые вопросы (FAQ)

Вопрос: Насколько точно извлекаются таблицы?

Spire.Agent.Office использует анализ на основе ИИ, который понимает структуру таблиц, включая нестандартные таблицы и объединённые ячейки. Для лучших результатов давайте чёткие инструкции об ожидаемом формате выходных данных.

Вопрос: Можно ли обрабатывать PDF-файлы, защищённые паролем?

Да. Вы можете загружать PDF-файлы, защищённые паролем, указав пароль при вызове pdf.LoadFromFile(inputPath, password).

Вопрос: Как обрабатывать большие пакеты PDF-файлов?

Используйте параметр attachmentPaths, чтобы передать несколько файлов в одной инструкции. ИИ-агент обрабатывает их совместно и формирует консолидированные выходные данные.

Вопрос: Как задать тайм-аут для ИИ-обработки?

Вы можете настроить тайм-аут с помощью свойства TimeoutMs в AIOptions:

AIOptions options = new AIOptions();
options.SpireToken = key;
options.TimeoutMs = 120000; // 2 minutes

Дополнительные примеры