Leitura de PDF com IA em C#: Ler e Extrair Dados

2026-09-29 08:04:36 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

Ler e processar arquivos PDF programaticamente em C# é um requisito comum para desenvolvedores .NET que criam sistemas de automação de documentos, extração de dados e geração de relatórios. Bibliotecas tradicionais de análise de PDF exigem código complexo para extrair texto, preservar a formatação e analisar tabelas. Elas frequentemente produzem resultados ruins para layouts irregulares, conteúdo desalinhado e estruturas de tabela não padrão.

Se você deseja uma maneira simples e com IA de ler PDFs em C# e exportar o conteúdo do PDF para outros formatos, Spire.Agent.Office é uma ótima escolha. Este SDK de agente de IA para .NET conduz fluxos de trabalho de análise e conversão de PDF usando instruções em linguagem natural. Ele funciona sem Adobe Acrobat ou softwares externos de terceiros para PDF.

Neste tutorial, apresentaremos como usar IA para ler PDF em C#, com exemplos de código completos e executáveis para:


Por que escolher o Spire.Agent.Office em vez de outros leitores de PDF com IA?

A internet está cheia de leitores de PDF genéricos com IA, mas a maioria carece de flexibilidade para desenvolvedores, segurança corporativa e precisão na análise estrutural. Spire.Agent.Office é um SDK de processamento de documentos com IA criado para o ecossistema .NET. Ele combina análise com IA com APIs de documentos de escritório. Você pode ler, analisar e converter arquivos PDF, Word, Excel e PowerPoint passando prompts simples em linguagem natural.

Principais vantagens para leitura de PDF com IA em C#:

  • SDK focado no desenvolvedor: Criado para integração perfeita de API em aplicativos personalizados, CRMs, pipelines de automação e sistemas de back-end
  • Precisão de dados estruturados: preservação superior de tabelas e layout
  • Segurança corporativa: opções de processamento local evitam que dados confidenciais de PDF vazem para ferramentas de nuvem de terceiros
  • Suporte a vários formatos: lê PDFs e documentos do Office em um único agente unificado
  • Código mínimo: substitua centenas de linhas de lógica de análise manual por chamadas simples de prompt de IA para acelerar o desenvolvimento.

Configuração: projeto, namespaces e token

  • 1. Instale o pacote NuGet

Crie seu projeto .NET e instale a biblioteca; todas as dependências são instaladas automaticamente.

Install-Package Spire.Agent.Office
  • 2. Adicione os namespaces

Três diretivas using fornecem tudo o necessário para processamento de PDF com IA:

using Spire.Agent.Office.AI;
using Spire.Agent.Office.Extensions;
using Spire.Pdf;
  • 3. Configurando o SpireToken

O Spire.Agent.Office exige uma chave SpireToken válida. Você pode solicitar uma chave temporária para avaliação aqui.

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

Exemplo 1: Extrair texto de PDF com agente de IA .NET

Extrair o conteúdo de texto bruto geralmente é o primeiro estágio de qualquer pipeline de processamento de documentos. O Spire.Agent.Office permite analisar o conteúdo do PDF e gravar os resultados diretamente em um arquivo TXT usando instruções em linguagem natural.

Casos de uso comuns: criação de índices de pesquisa, alimentação de pipelines de NLP downstream, registro de auditoria e detecção de alterações de conteúdo.

Código C#: PDF para 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);
    }
}

O arquivo TXT gerado mantém a estrutura de parágrafos do PDF. Para extrair texto simples sem formatação de parágrafo, altere a instrução de IA conforme necessário.

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


Exemplo 2: Converter PDF em Word editável com agente de IA .NET

PDFs padrão não são editáveis, o que dificulta a revisão e a reutilização de conteúdo. A IA do Spire.Agent.Office lê o layout do PDF, estilos de fonte e estrutura de parágrafos e, em seguida, converte PDFs estáticos em arquivos DOCX totalmente editáveis, mantendo a formatação consistente.

Caso de uso do mundo real: equipes de compras ou jurídicas recebem contratos de fornecedores em formato PDF e precisam de arquivos DOCX editáveis para revisão com controle de alterações, inserção de comentários e comparação de versões.

Código C#: PDF para 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);
    }
}

Principais benefícios

  • Retenção da estrutura de cláusulas: cláusulas legais numeradas permanecem devidamente estruturadas para marcação de alterações
  • Preservação de tabelas: tabelas de preços e cronogramas permanecem como tabelas reais do Word
  • Código mínimo: uma única instrução substitui o que tradicionalmente exigiria chamadas extensas de API para vários componentes

Convert PDF to editable Word using .NET AI agent


Exemplo 3: Ler tabelas de PDF para CSV/Excel com agente de IA .NET

Um dos recursos mais poderosos do Spire.Agent.Office é sua capacidade de entender e extrair dados estruturados de tabelas de PDF. Cenários de negócios incluem automação de contas a pagar, conciliação de extratos bancários e processamento de relatórios financeiros.

Código C#: Extrato bancário PDF para CSV

Se você baixa um extrato em PDF todos os meses e precisa importar transações para um software de contabilidade, este exemplo é para você.

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ódigo C#: Relatório financeiro em PDF para Excel

Para exportar tabelas de PDF para Excel, basta alterar o formato de saída (.xlsx) e ajustar as instruções. Por exemplo, se você tem um relatório trimestral em PDF com várias tabelas ao longo das páginas, pode extrair tudo para uma única pasta de trabalho com planilhas separadas:

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.";

Exemplo 4: Muitos PDFs, uma instrução (processamento em lote)

A maioria das cargas de trabalho de automação do mundo real lida com lotes de documentos (por exemplo, dezenas de PDFs de faturas). Use o parâmetro attachmentPaths:

  • Instancie um PdfDocument vazio.
  • Passe sua coleção de caminhos de arquivos PDF por meio de attachmentPaths.
  • Escreva uma instrução descrevendo como combinar ou agregar as saídas.

Esse padrão possibilita casos de uso como consolidar muitas faturas em uma única pasta de trabalho do Excel agregada.

Código C#: Processamento em lote de faturas em 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);
}

Visão geral da API

Componente da API Finalidade Método/Propriedade principal
AIOptions Objeto de configuração SpireToken, WorkDir, TimeoutMs
AIDocumentProcessor Ponto de entrada principal do processamento de IA ExecuteInstruction()
pdf.AI(options) Método de extensão em PdfDocument Retorna AIDocumentProcessor
AIResult Contrato de resultado da execução Success, TokenUsage
attachmentPaths Parâmetro de documentos de suporte Passado para ExecuteInstruction()

Práticas recomendadas para extração confiável

1. Escreva requisitos de saída específicos nas instruções

Evite prompts vagos como “extraia os dados”. Defina o formato de destino, colunas e estrutura (por exemplo, “exporte para uma pasta de trabalho do Excel, uma linha por item”).

2. Coloque a lógica de negócios nas instruções

Implemente filtragem, classificação e normalização nos prompts em vez de codificar deslocamentos posicionais ou coordenadas. A lógica permanece legível e de fácil manutenção.

3. Valide AIResult.Success

Verifique o status de execução em cada chamada. Falhas silenciosas podem interromper pipelines de automação não assistida.

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

4. Valide a saída.

Para dados financeiros ou de conformidade, execute suas próprias verificações no arquivo produzido — contagem de linhas, totais de colunas, conformidade de esquema. O agente produz o artefato; seu pipeline continua responsável pela correção.


Considerações finais

Os exemplos acima mostram como o SDK Spire.Agent.Office pode aproveitar a IA para ler PDF para TXT, reconstruir PDFs como documentos Word editáveis, extrair extratos bancários e tabelas financeiras para CSV ou Excel, e consolidar lotes de faturas em uma única pasta de trabalho. Em cada caso, o código permanece pequeno, as instruções permanecem legíveis e a saída continua estruturada o suficiente para automação downstream.

Se sua equipe passa tempo escrevendo lógica de análise frágil ou digitando novamente dados de PDF manualmente, o Spire.Agent.Office oferece um caminho prático a seguir. Instale o pacote NuGet, adicione seu token e comece com um fluxo de trabalho. A partir daí, você pode expandir para processamento em lote e criar pipelines de automação de documentos que são mais rápidos de desenvolver, mais fáceis de manter e mais resilientes a PDFs do mundo real.


Perguntas frequentes (FAQs)

P: Qual é a precisão da extração de tabelas?

O Spire.Agent.Office usa análise com IA que entende a estrutura da tabela, incluindo tabelas irregulares e células mescladas. Para melhores resultados, forneça instruções claras sobre o formato de saída esperado.

P: Posso processar PDFs protegidos por senha?

Sim. Você pode carregar PDFs protegidos por senha fornecendo a senha ao chamar pdf.LoadFromFile(inputPath, password).

P: Como lidar com grandes lotes de PDFs?

Use o parâmetro attachmentPaths para passar vários arquivos em uma única instrução. O agente de IA os processa coletivamente e produz uma saída consolidada.

P: Como defino um tempo limite para o processamento de IA?

Você pode configurar o tempo limite usando a propriedade TimeoutMs em AIOptions:

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

Mais exemplos