PDF2PlanilhaVet é uma ferramenta em Python que automatiza a extração de dados de exames veterinários em PDF e gera uma planilha Excel estruturada, facilitando o controle financeiro e o arquivamento.
- 🗂️ Suporte a múltiplos layouts de PDF (com ou sem tabela), via padrão Strategy
- 🔍 Extração automática de:
- Nome do paciente
- Data do exame
- Procedimentos e seus respectivos valores
- 🧠 Correspondência inteligente de exames usando sinônimos e similaridade
- 🔄 Processamento em lote de diversos PDFs
- 📊 Geração automática de planilhas
.xlsxcom:- Aba "Dados completos" com todos os exames
- Aba "Resumo" com contagem por procedimento
- 💻 Executável
.exeincluído para uso sem precisar instalar Python
PDF2PlanilhaVet/
├── arquivos/ # PDFs dos exames a serem processados
├── planilhas_geradas/ # Planilhas de saída
├── pdf_valores_exames/
│ └── valores.pdf # PDF com os valores dos exames
├── extratores/
│ ├── base.py # Classe base abstrata (interface)
│ ├── com_tabela.py # Extrator para PDFs com tabela
│ ├── sem_tabela.py # Extrator para PDFs sem tabela
│ └── fabrica.py # Fábrica que escolhe o extrator adequado
├── utils/
│ └── functions.py # Funções auxiliares (normalização, resumo, etc.)
├── gerar_planilha.py # Script principal
├── download_executavel.bat # Script para baixar o executável
├── README.md # Este arquivo
- Coloque seus arquivos
.pdfde exames na pastaarquivos/ - Insira o PDF com os valores de exames em
pdf_valores_exames/valores.pdf - Execute:
- Via
.exe:- Clique em
download_executavel.bat - Extraia o
.zip - Clique em
gerar_planilha.exe
- Clique em
- Ou via terminal com Python (ver seção abaixo)
- Via
- A planilha será gerada automaticamente em
planilhas_geradas/, com o nome no formatoaaaa-mm-dd.xlsx, contendo:- Aba "Dados completos" com todos os exames
- Aba "Resumo" com a quantidade total de cada procedimento
- Nenhum! O
.exefunciona sem instalar nada. - Para uso via Python:
- Python 3.10+
- Bibliotecas:
pdfplumber,pandas,openpyxl
- Verifica se há arquivos na pasta
arquivos/ - Verifica o tamanho esperado das páginas
- Detecta e ignora arquivos mal formatados
- Exibe logs detalhados com:
- Match por sinônimo
- Match por similaridade
- Procedimentos sem valor encontrado
| Exames | Data | Valor |
|---|---|---|
| fosfatase alcalina - Meg | 06/04/2024 | R$ 20,00 |
| alt tgp - Meg | 06/04/2024 | R$ 20,00 |
| pesquisa de hemoparasitas - Meg | 26/04/2025 | R$ 30,00 |
| TOTAL | R$ 70,00 |
| Procedimento | Quantidade |
|---|---|
| alt tgp | 3 |
| creatinina | 5 |
| ureia | 5 |
| fosfatase alcalina | 3 |
A seleção do método de extração é feita dinamicamente:
ExtratorComTabela: usa a primeira tabela da página para extrair os procedimentosExtratorSemTabela: extrai com base em posições fixas no layout
Implementado com o padrão de projeto Strategy, facilitando a adição de novos tipos de layout no futuro.
Correspondência robusta com apoio de sinônimos para identificar exames mesmo com variações no nome, como:
"alt tgp" → "transaminase piruvica - alt"
"ggt", "gama gt" → "ggt - gama glutamil transferase"
"colesterol" → "colesterol total"
"triglicerideos" → "triglicerides"
"raspado de pele" → "raspado pele"- Exportação opcional em
.csv - Interface gráfica com Tkinter
- OCR para leitura de PDFs digitalizados
- Reconhecimento inteligente de sinônimos e variantes
- Exportação de log detalhado (erros, correspondências, etc.)
pip install pyinstaller
pyinstaller --onefile gerar_planilha.py --distpath .
Isso criará
gerar_planilha.exedireto na pasta principal (semdist/).
Este projeto está licenciado sob a Licença MIT – veja o arquivo LICENSE para mais detalhes.