Menu fechado

Como Extrair Dados de PDF Usando Python e GitHub

Extrair dados de arquivos PDF com Python é uma tarefa bastante útil para automatizar relatórios, documentos, notas fiscais, contratos, tabelas e grandes volumes de informação.

Entre as bibliotecas mais utilizadas atualmente estão PyMuPDF, pypdf e pdfplumber. O PyMuPDF, em particular, oferece extração de texto, tabelas, imagens, metadados e até OCR para PDFs digitalizados.

Neste tutorial, vamos mostrar como criar um pequeno projeto Python para extrair informações de um PDF e colocar o código no GitHub.

1. Instale o Python

Primeiro, tenha o Python instalado no computador.

Depois, abra o terminal ou Prompt de Comando e verifique:

python --version

Em alguns sistemas, pode ser necessário utilizar:

python3 --version

2. Crie uma pasta para o projeto

Crie uma pasta para o programa:

extrator-pdf

Dentro dela, podemos organizar o projeto assim:

extrator-pdf/
├── main.py
├── documento.pdf
├── resultado.txt
└── requirements.txt

O arquivo main.py será responsável pela extração.


3. Instale o PyMuPDF

Uma das opções mais práticas atualmente é o PyMuPDF.

Instale utilizando:

pip install pymupdf

O projeto oficial disponibiliza o pacote para instalação pelo pip e possui suporte para extração de texto, tabelas, imagens e OCR.


4. Extraindo texto do PDF

Crie o arquivo:

main.py

Coloque:

import pymupdf

pdf = pymupdf.open("documento.pdf")

for pagina in pdf:
    texto = pagina.get_text()
    print(texto)

pdf.close()

Agora execute:

python main.py

O programa abrirá o PDF e imprimirá no terminal o texto encontrado em cada página.


5. Salvar o texto em um arquivo

Em vez de apenas mostrar o conteúdo no terminal, podemos salvar tudo em um arquivo .txt.

import pymupdf

pdf = pymupdf.open("documento.pdf")

with open("resultado.txt", "w", encoding="utf-8") as arquivo:

    for numero, pagina in enumerate(pdf, start=1):

        texto = pagina.get_text()

        arquivo.write(f"\n===== PÁGINA {numero} =====\n\n")
        arquivo.write(texto)

pdf.close()

print("Extração concluída!")

Depois de executar:

python main.py

será criado:

resultado.txt

6. Extrair apenas uma página

Também é possível trabalhar somente com uma página específica.

Por exemplo, a primeira página:

import pymupdf

pdf = pymupdf.open("documento.pdf")

pagina = pdf[0]

texto = pagina.get_text()

print(texto)

pdf.close()

No Python, a primeira página corresponde ao índice 0.

Portanto:

pdf[0]

representa a primeira página.


7. Extrair uma página específica

Para extrair, por exemplo, a página 5:

import pymupdf

pdf = pymupdf.open("documento.pdf")

pagina = pdf[4]

print(pagina.get_text())

pdf.close()

Isso acontece porque a numeração começa em zero:

Índice 0 → Página 1
Índice 1 → Página 2
Índice 2 → Página 3
Índice 3 → Página 4
Índice 4 → Página 5

8. Descobrir quantas páginas existem

Você também pode descobrir automaticamente o número de páginas:

import pymupdf

pdf = pymupdf.open("documento.pdf")

print("Número de páginas:", len(pdf))

pdf.close()

Isso é útil para criar programas que processam documentos de qualquer tamanho.


9. Extrair dados de uma tabela

O PyMuPDF também possui recursos para localizar tabelas dentro das páginas.

Um exemplo:

import pymupdf

pdf = pymupdf.open("documento.pdf")

for numero, pagina in enumerate(pdf, start=1):

    tabelas = pagina.find_tables()

    if tabelas.tables:

        print(f"Tabelas encontradas na página {numero}")

        for tabela in tabelas.tables:
            print(tabela.extract())

pdf.close()

Isso é especialmente interessante para PDFs contendo:

  • Tabelas financeiras;
  • Listas de produtos;
  • Relatórios;
  • Notas;
  • Dados estatísticos;
  • Planilhas exportadas para PDF.

10. Transformar uma tabela em DataFrame

Se você trabalha com análise de dados, pode transformar uma tabela encontrada no PDF em um DataFrame do Pandas.

import pymupdf

pdf = pymupdf.open("documento.pdf")

pagina = pdf[0]

tabelas = pagina.find_tables()

if tabelas.tables:

    tabela = tabelas.tables[0]

    df = tabela.to_pandas()

    print(df)

pdf.close()

A partir daí, você pode utilizar normalmente o Pandas para:

df.head()
df.describe()
df.to_csv("dados.csv", index=False)

11. Extrair informações específicas

Imagine que o PDF contenha:

Nome: Alexandre
Idade: 35
Cidade: Rio de Janeiro

Você pode extrair todo o texto e depois procurar determinados termos.

import pymupdf

pdf = pymupdf.open("documento.pdf")

texto_completo = ""

for pagina in pdf:
    texto_completo += pagina.get_text()

if "Nome:" in texto_completo:
    print("O documento possui informação de nome.")

if "Cidade:" in texto_completo:
    print("O documento possui informação de cidade.")

pdf.close()

Isso permite criar sistemas automatizados para localizar informações dentro de documentos.


12. Utilizando expressões regulares

Para extrair informações estruturadas, o módulo re do Python pode ser muito útil.

Por exemplo:

import pymupdf
import re

pdf = pymupdf.open("documento.pdf")

texto = ""

for pagina in pdf:
    texto += pagina.get_text()

cpf = re.search(r"\d{3}\.\d{3}\.\d{3}-\d{2}", texto)

if cpf:
    print("CPF encontrado:", cpf.group())

pdf.close()

Você pode adaptar as expressões regulares para procurar:

  • CPF;
  • CNPJ;
  • CEP;
  • datas;
  • valores;
  • números de documentos;
  • códigos;
  • e-mails;
  • telefones.

13. Extrair e-mails do PDF

Por exemplo:

import pymupdf
import re

pdf = pymupdf.open("documento.pdf")

texto = ""

for pagina in pdf:
    texto += pagina.get_text()

emails = re.findall(
    r"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}",
    texto
)

for email in emails:
    print(email)

pdf.close()

Assim, o programa procura automaticamente todos os endereços de e-mail encontrados no documento.


14. Extrair imagens do PDF

O PyMuPDF também permite acessar imagens incorporadas no PDF.

Exemplo:

import pymupdf
import os

pdf = pymupdf.open("documento.pdf")

os.makedirs("imagens", exist_ok=True)

for numero_pagina, pagina in enumerate(pdf):

    imagens = pagina.get_images()

    for numero_imagem, imagem in enumerate(imagens):

        xref = imagem[0]

        pix = pymupdf.Pixmap(pdf, xref)

        if pix.n > 4:
            pix = pymupdf.Pixmap(pymupdf.csRGB, pix)

        nome = f"imagens/pagina_{numero_pagina + 1}_imagem_{numero_imagem + 1}.png"

        pix.save(nome)

pdf.close()

O resultado será uma pasta:

imagens/
├── pagina_1_imagem_1.png
├── pagina_1_imagem_2.png
├── pagina_2_imagem_1.png
└── ...

15. Quando o PDF é escaneado

Existe uma diferença importante entre dois tipos de PDF.

Um PDF pode conter texto real:

PDF
↓
Texto selecionável
↓
Python consegue extrair

Ou pode ser simplesmente uma imagem digitalizada:

PDF
↓
Imagem
↓
Nenhum texto real

Nesse segundo caso, get_text() pode retornar pouco ou nenhum conteúdo.

É necessário utilizar OCR, reconhecimento óptico de caracteres. O PyMuPDF possui suporte a OCR através do Tesseract.

Um exemplo básico:

import pymupdf

pdf = pymupdf.open("documento-escaneado.pdf")

for pagina in pdf:

    pagina_texto = pagina.get_textpage_ocr()

    texto = pagina.get_text(textpage=pagina_texto)

    print(texto)

pdf.close()

Para esse recurso, o ambiente precisa ter os dados necessários do Tesseract disponíveis.


16. Outra opção: pypdf

Outra biblioteca bastante conhecida é o pypdf.

Instalação:

pip install pypdf

Uso básico:

from pypdf import PdfReader

reader = PdfReader("documento.pdf")

for pagina in reader.pages:

    texto = pagina.extract_text()

    print(texto)

O pypdf é uma biblioteca Python voltada para manipulação de PDF e também oferece extração de texto e metadados.


17. PyMuPDF ou pypdf?

Para uma tarefa simples de extração de texto, ambas podem funcionar.

BibliotecaMelhor utilização
PyMuPDFTexto, tabelas, imagens, OCR e processamento geral
pypdfExtração de texto e manipulação de PDFs
pdfplumberTexto, estrutura e tabelas

O PyMuPDF é uma escolha particularmente interessante quando o projeto precisa trabalhar com diferentes elementos do PDF, não apenas texto.


18. Usando pdfplumber

O pdfplumber também é bastante utilizado para extração detalhada de texto e tabelas.

Instale:

pip install pdfplumber

Depois:

import pdfplumber

with pdfplumber.open("documento.pdf") as pdf:

    for pagina in pdf.pages:

        texto = pagina.extract_text()

        print(texto)

Para tabelas:

import pdfplumber

with pdfplumber.open("documento.pdf") as pdf:

    for pagina in pdf.pages:

        tabelas = pagina.extract_tables()

        for tabela in tabelas:

            for linha in tabela:
                print(linha)

19. Criando o requirements.txt

Para colocar o projeto no GitHub, é interessante criar:

requirements.txt

Por exemplo:

pymupdf

Se utilizar Pandas:

pymupdf
pandas

Assim, outra pessoa poderá instalar as dependências com:

pip install -r requirements.txt

20. Criando o .gitignore

Não é uma boa ideia enviar todos os PDFs para o GitHub, especialmente se forem documentos particulares.

Crie:

.gitignore

E coloque:

*.pdf
*.txt
__pycache__/
.venv/
venv/

Dessa maneira, os documentos utilizados localmente não serão adicionados acidentalmente ao repositório.


21. Criando o repositório no GitHub

Depois de criar o projeto, inicialize o Git:

git init

Adicione os arquivos:

git add .

Faça o primeiro commit:

git commit -m "Criar extrator de dados de PDF"

Depois associe o projeto ao seu repositório GitHub e envie os arquivos:

git branch -M main
git push -u origin main

O repositório poderá conter:

extrator-pdf/
├── main.py
├── requirements.txt
├── .gitignore
└── README.md

22. Crie um README.md

Um projeto no GitHub fica muito mais fácil de entender quando possui um README.

Exemplo:

# Extrator de Dados de PDF

Projeto em Python para extrair texto e dados de arquivos PDF.

## Instalação

```bash
pip install -r requirements.txt
```

## Utilização

Coloque o PDF na pasta do projeto com o nome:

documento.pdf

Depois execute:

```bash
python main.py
```

O texto extraído será exibido no terminal.

23. Um extrator completo simples

Podemos juntar tudo em um programa mais organizado:

import pymupdf
import sys
from pathlib import Path


def extrair_pdf(caminho):

    arquivo = Path(caminho)

    if not arquivo.exists():
        print("Arquivo não encontrado.")
        return

    if arquivo.suffix.lower() != ".pdf":
        print("O arquivo precisa ser um PDF.")
        return

    pdf = pymupdf.open(arquivo)

    texto_total = []

    for numero, pagina in enumerate(pdf, start=1):

        texto = pagina.get_text()

        texto_total.append(
            f"\n===== PÁGINA {numero} =====\n\n{texto}"
        )

    pdf.close()

    resultado = "\n".join(texto_total)

    saida = arquivo.with_suffix(".txt")

    with open(saida, "w", encoding="utf-8") as arquivo_saida:
        arquivo_saida.write(resultado)

    print(f"Extração concluída: {saida}")


if __name__ == "__main__":

    if len(sys.argv) < 2:
        print("Uso: python main.py documento.pdf")
        sys.exit(1)

    extrair_pdf(sys.argv[1])

Agora você pode executar:

python main.py documento.pdf

E o programa criará automaticamente:

documento.txt

24. Transformando o projeto em uma ferramenta

A partir desse código, dá para evoluir bastante o projeto.

Por exemplo:

PDF
 ↓
Python
 ↓
Extração de texto
 ↓
Identificação de dados
 ↓
Banco de dados
 ↓
CSV / Excel
 ↓
API
 ↓
Inteligência artificial

Você pode criar um sistema que recebe centenas de PDFs, identifica informações específicas e transforma tudo em dados estruturados.

Conclusão

Extrair dados de PDF usando Python não precisa ser complicado.

Para começar, o PyMuPDF oferece uma solução bastante completa para trabalhar com texto, tabelas, imagens e OCR.

O fluxo básico é:

Python
   ↓
PyMuPDF
   ↓
Abrir PDF
   ↓
Ler páginas
   ↓
Extrair texto
   ↓
Identificar informações
   ↓
Salvar os dados
   ↓
Enviar o código para o GitHub

Para PDFs simples, poucas linhas de Python já são suficientes. Para documentos complexos, é possível avançar para extração de tabelas, OCR, expressões regulares, Pandas, bancos de dados e processamento automático de centenas ou milhares de documentos.

Por: Alexandre lavrador. Opinião do Blogueiro.

Por favor, não esqueça de colocar este link como Referência Bibliográfica em sua Publicação:

Please complete the required fields.




🙏 POR FAVOR COMPARTILHE ISSO 👇

Assistir Online Grátis Como Extrair Dados de PDF Usando Python e GitHub, Ver Online de Graça Como Extrair Dados de PDF Usando Python e GitHub, Filme Online Grátis Como Extrair Dados de PDF Usando Python e GitHub, Assistir Online de Graça Como Extrair Dados de PDF Usando Python e GitHub, Filme Completo de Graça Como Extrair Dados de PDF Usando Python e GitHub, Assista o que é Como Extrair Dados de PDF Usando Python e GitHub? Entenda a notícia sobre o que aconteceu sobre Como Extrair Dados de PDF Usando Python e GitHub.

Caso o título Como Extrair Dados de PDF Usando Python e GitHub esteja protegido por direitos autorais, você assistirá, neste artigo, a um filme gratuito disponível no YouTube que seja o mais parecido, sem ferir os direitos autorais de Como Extrair Dados de PDF Usando Python e GitHub. Aqui no Flogão, funciona de forma semelhante à banca de sucos do Chaves: “-O que parece de limão é de groselha e tem gosto de tamarindo. -Isso isso isso isso...”

Deixe um comentário

Nova denúncia

Fechar