IRONSOFTWAREHOME
USANDO O IRONPDF

Como converter uma imagem para PDF em C# [Tutorial com exemplo de código]

Curtis Chau
Curtis Chau
Updated: 19 de julho de 2026

Extrair dados estruturados de tabelas a partir de documentos PDF é uma necessidade frequente para desenvolvedores C#, sendo crucial para análise de dados, geração de relatórios ou integração de informações em outros sistemas. No entanto, os PDFs são projetados principalmente para uma apresentação visual consistente, e não para uma extração de dados direta. Isso pode tornar a leitura programática de tabelas de arquivos PDF em C# uma tarefa desafiadora, especialmente porque as tabelas podem variar bastante — desde grades simples baseadas em texto até layouts complexos com células mescladas, ou mesmo tabelas incorporadas como imagens em documentos digitalizados.

Este guia fornece um tutorial completo em C# sobre como extrair tabelas de PDFs usando o IronPDF . Vamos explorar principalmente como aproveitar os poderosos recursos de extração de texto do IronPDF para acessar e analisar dados tabulares de PDFs baseados em texto. Discutiremos a eficácia desse método, forneceremos estratégias para análise sintática e ofereceremos insights sobre como lidar com as informações extraídas. Além disso, abordaremos estratégias para lidar com cenários mais complexos, incluindo PDFs digitalizados.


Etapas essenciais para extrair dados de tabelas de PDFs em C#

  1. Instale a biblioteca IronPDF C# ( IronPDF ) para processamento de PDF.
  2. (Passo opcional do demo) Crie um PDF de exemplo com uma tabela a partir de uma string HTML usando a RenderHtmlAsPdf do IronPDF. (Veja a seção: (Passo de Demonstração) Criar um Documento PDF com Dados de Tabela)
  3. Carregue qualquer documento PDF e use o método ExtractAllText para recuperar o conteúdo bruto do texto. (See section: Extract All Text Containing Table Data from the PDF)
  4. Implemente a lógica em C# para analisar o texto extraído e identificar as linhas e células da tabela. (See section: Parsing Extracted Text to Reconstruct Table Data in C#)
  5. Exiba os dados da tabela estruturada ou salve-os em um arquivo CSV para uso posterior. (See section: Parsing Extracted Text to Reconstruct Table Data in C#)
  6. Considere técnicas avançadas como OCR para PDFs digitalizados (discutido posteriormente).

IronPDF - Biblioteca PDF em C#

IronPDF é uma biblioteca C# .NET para manipulação de PDFs em .NET ( IronPDF ), que ajuda desenvolvedores a ler, criar e editar documentos PDF facilmente em seus aplicativos de software. Seu robusto mecanismo Chromium renderiza documentos PDF a partir de HTML com alta precisão e velocidade. Permite que os desenvolvedores convertam arquivos de diferentes formatos para PDF e vice-versa de forma integrada. Ele oferece suporte às versões mais recentes do .NET Framework, incluindo .NET 7, .NET 6, 5, 4, .NET Core e Standard.

Além disso, a API IronPDF .NET também permite que os desenvolvedores manipulem e editem PDFs, adicionem cabeçalhos e rodapés e, principalmente, extraiam texto, imagens e (como veremos) dados de tabelas de PDFs com facilidade.

Algumas características importantes incluem:

Passos para Extrair Dados de Tabela em C# usando a Biblioteca IronPDF

Para extrair dados de tabelas de documentos PDF, vamos configurar um projeto em C#:

  1. Visual Studio: Certifique-se de ter o Visual Studio (por exemplo, 2022) instalado. Caso contrário, faça o download no site do Visual Studio ( https://visualstudio.microsoft.com/downloads/ ).

  2. Create Project:

    • Abra o Visual Studio 2022 e clique em Criar um novo projeto .

      Como Ler Tabela PDF em C#, Figura 1: Tela inicial do Visual Studio Tela inicial do Visual Studio

    • Selecione "Aplicativo de console" (ou o tipo de projeto C# de sua preferência) e clique em Avançar .

      Como Ler Tabela PDF em C#, Figura 2: Criar um novo Aplicativo de Console no Visual Studio Crie um novo aplicativo de console no Visual Studio.

    • Dê um nome ao seu projeto (por exemplo, "ReadPDFTableDemo") e clique em Avançar . Como Ler Tabela PDF em C#, Figura 3: Configurar o aplicativo recém-criado Configure o aplicativo recém-criado.

    • Escolha a versão do .NET Framework desejada (por exemplo, .NET 6 ou posterior). Como Ler Tabela PDF em C#, Figura 4: Selecionar um .NET Framework Selecione uma .NET Framework.

    • Clique em Criar . O projeto do console será criado.

  3. Instale o IronPDF:

    • Usando o Gerenciador de Pacotes NuGet do Visual Studio:

      • Clique com o botão direito do mouse no seu projeto no Solution Explorer e selecione "Gerenciar Pacotes NuGet ..."

        Como Ler Tabela PDF em C#, Figura 5: Ferramentas & Gerenciar Pacotes NuGet Ferramentas e gerenciamento de pacotes NuGet

      • No Gerenciador de Pacotes NuGet, procure 'IronPDF' e clique em 'Instalar'. Como Ler Tabela PDF em C#, Figura 6: Ferramentas & Gerenciar Pacotes NuGet Ferramentas e gerenciamento de pacotes NuGet

    • Baixe o pacote NuGet diretamente: Visite a página do pacote NuGet do IronPDF ( https://www. NuGet.org/packages/IronPDF/ ).

    • Baixe a biblioteca IronPDF .DLL: Faça o download no site oficial do IronPDF e adicione uma referência ao arquivo DLL em seu projeto.

(Etapa de demonstração) Criar um documento PDF com dados em forma de tabela

Para este tutorial, primeiro criaremos um PDF de exemplo contendo uma tabela simples a partir de uma string HTML. Isso nos fornece uma estrutura de PDF conhecida para demonstrar o processo de extração. Em um cenário real, você carregaria seus arquivos PDF já existentes.

Adicione o namespace IronPDF e, opcionalmente, defina sua chave de licença (o IronPDF é gratuito para desenvolvimento, mas requer uma licença para implantação comercial sem marcas d'água):

using IronPdf;
using System;       // For StringSplitOptions, Console
using System.IO;    // For StreamWriter

// Apply your license key if you have one. Otherwise, IronPDF runs in trial mode.
// License.LicenseKey = "YOUR-TRIAL/PURCHASED-LICENSE-KEY";

Aqui está a string HTML para nossa tabela de exemplo:

string HTML = "<html>" +
        "<style>" +
            "table, th, td {" +
                "border:1px solid black;" +
            "}" +
        "</style>" +
        "<body>" +
            "<h1>A Simple table example</h1>" + // Corrected typo: h1 not h2
            "<table>" +
                "<tr>" +
                    "<th>Company</th>" +
                    "<th>Contact</th>" +
                    "<th>Country</th>" +
               "</tr>" +
                "<tr>" +
                    "<td>Alfreds Futterkiste</td>" +
                    "<td>Maria Anders</td>" +
                    "<td>Germany</td>" +
                "</tr>" +
                "<tr>" +
                    "<td>Centro comercial Moctezuma</td>" +
                    "<td>Francisco Chang</td>" +
                    "<td>Mexico</td>" +
                "</tr>" +
            "</table>" +
            "<p>To understand the example better, we have added borders to the table.</p>" +
        "</body>" +
        "</html>";
HTML

Agora, use ChromePdfRenderer para criar um PDF a partir deste HTML:

var renderer = new ChromePdfRenderer();
PdfDocument pdfDocument = renderer.RenderHtmlAsPdf(HTML);
pdfDocument.SaveAs("table_example.pdf");
Console.WriteLine("Sample PDF 'table_example.pdf' created.");

O método SaveAs salva o PDF. O table_example.pdf gerado ficará assim (imagem conceitual com base no HTML):

Como Ler Tabela PDF em C#, Figura 7: Pesquisar IronPDF na UI do Gerenciador de Pacotes NuGet Pesquise por IronPDF na interface do Gerenciador de Pacotes NuGet.

Extrair todo o texto contendo dados de tabela do PDF

Para extrair dados de tabela, primeiro carregamos o PDF (seja aquele que acabamos de criar ou qualquer PDF existente) e usamos o método ExtractAllText. Este método recupera todo o conteúdo textual das páginas do PDF.

// Load the PDF (if you just created it, it's already loaded in pdfDocument)
// If loading an existing PDF:
// PdfDocument pdfDocument = PdfDocument.FromFile("table_example.pdf"); 
// Or use the one created above:
string allText = pdfDocument.ExtractAllText();

A variável allText agora contém todo o conteúdo de texto do PDF. Você pode exibi-lo para ver a extração bruta:

Console.WriteLine("\n--- Raw Extracted Text ---");
Console.WriteLine(allText);

Como Ler Tabela PDF em C#, Figura 8: O arquivo PDF para extrair texto O arquivo PDF para extrair o texto

Análise de Texto Extraído para Reconstruir Dados de Tabela em C#

Com o texto bruto extraído, o próximo desafio é analisar essa sequência para identificar e estruturar os dados tabulares. Esta etapa depende muito da consistência e do formato das tabelas em seus PDFs.

Estratégias gerais de análise sintática:

  1. Identificar Delimitadores de Linha: Caracteres de nova linha (\n ou \r\n) são separadores de linha comuns.
  2. Identificar delimitadores de coluna: As células dentro de uma linha podem ser separadas por múltiplos espaços, tabulações ou caracteres específicos conhecidos (como '|' ou ';'). Às vezes, se as colunas estiverem visualmente alinhadas, mas não tiverem delimitadores de texto claros, você pode inferir a estrutura com base em padrões de espaçamento consistentes, embora isso seja mais complexo.
  3. Filtrar Conteúdo Não-Tabular: O método ExtractAllText obtém todo o texto. Você precisará de lógica para isolar o texto que realmente compõe sua tabela, possivelmente procurando por palavras-chave no cabeçalho ou ignorando o texto do preâmbulo/posâmbolo.

O método C# String.Split é uma ferramenta básica para isso. Aqui está um exemplo que tenta extrair apenas as linhas da tabela da nossa amostra, filtrando as linhas com pontos (uma heurística simples para este exemplo específico):

Console.WriteLine("\n--- Parsed Table Data (Simple Heuristic) ---");
string[] textLines = allText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string line in textLines)
{
    // Simple filter: skip lines with a period, assuming they are not table data in this example
    // and skip lines that are too short or headers if identifiable
    if (line.Contains(".") || line.Contains("A Simple table example") || line.Length < 5) 
    {
        continue;
    }
    else
    {
        // Further split line into cells based on expected delimiters (e.g., multiple spaces)
        // This part requires careful adaptation to your PDF's table structure
        // Example: string[] cells = line.Split(new[] { "  ", "\t" }, StringSplitOptions.None);
        Console.WriteLine(line); // For now, just print the filtered line
    }
}

Este código divide o texto em linhas. A condição if é um filtro muito básico para este exemplo específico de texto não-tabular. Em cenários reais, você precisaria de uma lógica mais robusta para identificar e analisar linhas e células da tabela com precisão.

Resultado do texto filtrado simples:

Como Ler Tabela PDF em C#, Figura 9: O Console exibe textos extraídos O Console exibe os textos extraídos.

Considerações importantes para o método de análise de texto:

  • Ideal para: PDFs baseados em texto com estruturas de tabela simples e consistentes e delimitadores de texto claros.
  • Limitações: Este método pode ter dificuldades com:
    • Tabelas com células mescladas ou estruturas aninhadas complexas.
    • Tabelas onde as colunas são definidas por espaçamento visual em vez de delimitadores de texto.
    • Tabelas incorporadas como imagens (requerendo OCR).
    • Variações na geração do PDF resultam em ordem inconsistente de extração de texto.

Você pode salvar as linhas filtradas (que idealmente representam as linhas da tabela) em um arquivo CSV:

using (StreamWriter file = new StreamWriter("parsed_table_data.csv", false))
{
    file.WriteLine("Company,Contact,Country"); // Write CSV Header
    foreach (string line in textLines)
    {
        if (line.Contains(".") || line.Contains("A Simple table example") || line.Length < 5)
        {
            continue;
        }
        else
        {
            // For a real CSV, you'd split 'line' into cells and join with commas
            // E.g., string[] cells = line.Split(new[] {"  "}, StringSplitOptions.RemoveEmptyEntries);
            // string csvLine = string.Join(",", cells);
            // file.WriteLine(csvLine);
            file.WriteLine(line.Replace("  ", ",").Trim()); // Basic replacement for this example
        }
    }
}
Console.WriteLine("\nFiltered table data saved to parsed_table_data.csv");

Estratégias para Extração de Tabelas em PDF Mais Complexas em C#

Extrair dados de tabelas PDF complexas ou baseadas em imagens geralmente requer técnicas mais avançadas do que a simples análise de texto. O IronPDF oferece recursos que podem ajudar:

  • Usando as Capacidades do IronOCR para Tabelas Escaneadas: Se as tabelas estiverem dentro de imagens (por exemplo, PDFs escaneados), apenas ExtractAllText() não as capturará. A funcionalidade de detecção de texto do IronOCR pode primeiro converter essas imagens em texto.
// Conceptual OCR usage (refer to IronOCR's documentation for detailed implementation)
// Install Package IronOcr
using IronOcr;
using (var ocrInput = new OcrInput("scanned_pdf_with_table.pdf"))
{
     ocrInput.TargetDPI = 300; // Good DPI for OCR accuracy
     var ocrResult = new IronOcr().Read(ocrInput);
     string ocrExtractedText = ocrResult.Text;
     // Now, apply parsing logic to 'ocrExtractedText'
     Console.WriteLine("\n--- OCR Extracted Text for Table Parsing ---");
     Console.WriteLine(ocrExtractedText);
}

Para obter orientações detalhadas, visite a documentação do IronOCR (https://ironsoftware.com/csharp/ocr/ ). Após o OCR, você analisaria a sequência de texto resultante.

  • Extração de Texto Baseada em Coordenadas (Avançado): Embora o ExtractAllText() do IronPDF forneça o fluxo de texto, alguns cenários podem se beneficiar de conhecer as coordenadas x,y de cada fragmento de texto. Se o IronPDF oferecer APIs para obter texto com suas informações de caixa delimitadora (verifique a documentação atual), isso poderá permitir uma análise espacial mais sofisticada para reconstruir tabelas com base no alinhamento visual.

  • Converter PDF para outro formato: O IronPDF pode converter PDFs para formatos estruturados como HTML. Muitas vezes, analisar uma tabela HTML é mais simples do que analisar o texto bruto de um PDF.

PdfDocument pdfToConvert = PdfDocument.FromFile("your_document.pdf");
string htmlOutput = pdfToConvert.ToHtmlString();
// Then use an HTML parsing library (e.g., HtmlAgilityPack) to extract tables from htmlOutput.
  • Reconhecimento de padrões e expressões regulares: Para tabelas com padrões muito previsíveis, mas delimitadores inconsistentes, expressões regulares complexas aplicadas ao texto extraído podem, por vezes, isolar os dados da tabela.

A escolha da estratégia correta depende da complexidade e da consistência dos seus PDFs de origem. Para muitos documentos empresariais comuns com tabelas baseadas em texto, o ExtractAllText do IronPDF em combinação com lógica de análise inteligente em C# pode ser muito eficaz. Para tabelas baseadas em imagem, suas capacidades de OCR são essenciais.

Resumo

Este artigo demonstrou como extrair dados de tabela de um documento PDF em C# usando o IronPDF, focando principalmente em alavancar o método ExtractAllText() e a subsequente análise de strings. Observamos que, embora essa abordagem seja eficaz para tabelas baseadas em texto, cenários mais complexos, como tabelas baseadas em imagens, podem ser resolvidos usando os recursos de OCR do IronPDF ou convertendo os PDFs para outros formatos primeiro.

O IronPDF oferece um conjunto de ferramentas versátil para desenvolvedores .NET , simplificando muitas tarefas relacionadas a PDFs, desde a criação e edição até a extração completa de dados. Ele oferece métodos como ExtractTextFromPage para extração específica de páginas e suporta conversões de formatos como markdown ou DOCX para PDF.

O IronPDF é gratuito para desenvolvimento e oferece uma licença de avaliação gratuita para testar todos os seus recursos comerciais. Para implantação em produção, estão disponíveis diversas opções de licenciamento.

Para obter mais detalhes e casos de uso avançados, explore a documentação e os exemplos oficiais do IronPDF (https://ironpdf.com/ )

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.