Skip to content

Converte arquivos CSV em relatórios PDF formatados com correção automática de caracteres corrompidos (mojibake). Detecta codificação, organiza arquivos e gera layouts adaptativos com detecção automática.

License

Notifications You must be signed in to change notification settings

soumichel/csv-to-pdf-processor

Repository files navigation

Processador de CSV para PDF

Sistema para processar arquivos CSV com correção automática de codificação e geração de relatórios PDF formatados.

📂 Estrutura do Projeto

📁 projeto/
├── 📄 process_csv_generate_pdf.py  # Script principal
├── 📄 csv_processor.py            # Processamento de CSV
├── 📄 pdf_generator.py            # Geração de PDF
├── 📄 utils.py                    # Funções utilitárias
├── 📄 requirements.txt            # Dependências
├── 📄 .gitignore                  # Arquivos ignorados pelo Git
├── 📄 README.md                   # Esta documentação
├── 📄 LICENSE                     # Licença do projeto
├── 📁 csv/                        # Pasta para arquivos CSV
│   ├── 📄 arquivo1.csv            # Arquivos CSV de entrada
│   ├── 📄 arquivo2.csv            # Mais arquivos CSV
│   └── 📁 corrigidos/             # CSVs corrigidos (auto-gerados)
│       ├── 📄 arquivo1_corrigido.csv
│       └── 📄 arquivo2_corrigido.csv
└── 📁 relatorios/                 # Relatórios PDF gerados
    ├── 📄 Relatorio_arquivo1.pdf
    └── 📄 Relatorio_arquivo2.pdf

🎯 Funcionalidades

csv_processor.py

  • Detecção automática de codificação (UTF-8, Latin-1, CP1252, etc.)
  • Correção de mojibake UTF-8 malformado
  • Detecção automática de separadores CSV (vírgula, ponto e vírgula, tab)
  • Análise de estrutura dos dados (tipos de coluna, estatísticas)
  • Exportação de CSV corrigido

pdf_generator.py

  • Layout adaptativo baseado no número de colunas
  • Cálculo inteligente de larguras de colunas
  • Formatação especial para emails e datas
  • Quebra automática de texto em células

utils.py

  • Busca automática de arquivos CSV
  • Geração de nomes de arquivos de saída
  • Criação de títulos baseados no nome do arquivo

process_csv_generate_pdf.py

  • Interface de linha de comando (argparse)
  • Coordenação entre módulos
  • Fluxo principal de processamento

🚀 Como Usar

Pré-requisitos

  • Python 3.9+
  • Dependências listadas em requirements.txt

Instalação

# (Opcional) Criar ambiente virtual
python -m venv .venv
.\.venv\Scripts\Activate.ps1

# Instalar dependências
pip install -r requirements.txt

Organização dos Arquivos

  1. Crie a pasta csv/ (caso não exista) na raiz do projeto
  2. Coloque seus arquivos CSV na pasta csv/
  3. Execute o script (detecta automaticamente os arquivos)
  4. PDFs são gerados na pasta relatorios/
  5. CSVs corrigidos vão para csv/corrigidos/

💻 Execução

Uso Básico (Detecção Automática)

python process_csv_generate_pdf.py

O sistema automaticamente:

  • Detecta arquivos CSV na pasta csv/
  • Escolhe automaticamente se houver apenas um
  • Processa com configurações otimizadas

Especificar Arquivo

# Busca arquivo na pasta csv/ automaticamente
python process_csv_generate_pdf.py --input "dados.csv"

# Ou especifica o caminho completo
python process_csv_generate_pdf.py --input "csv/dados.csv"

Controle Total de Saída

python process_csv_generate_pdf.py -i "csv/entrada.csv" -o "relatorio.pdf" -c "custom/saida.csv"

Parâmetros Disponíveis

Parâmetro Abreviação Descrição Obrigatório
--input -i Arquivo CSV de entrada ❌ (detecção automática)
--output-pdf -o Nome do PDF de saída ❌ (nome automático)
--output-csv -c Nome do CSV corrigido ❌ (nome automático)

✨ Recursos Principais

Detecção Automática

  • Codificação: UTF-8 (com/sem BOM), Latin-1, CP1252, ISO-8859-1, CP850, ANSI
  • Separadores: Vírgula, ponto e vírgula, tab, pipe
  • Cabeçalhos: Localiza automaticamente linhas de cabeçalho válidas
  • Arquivos: Busca automática na pasta csv/

Correção de Dados

  • Mojibake: Corrige InformaçãoInformação
  • Unicode: Normalização NFC para acentuação consistente
  • Linhas vazias: Remove automaticamente
  • Espaços: Limpa espaços desnecessários

Layout PDF Inteligente

  • Orientação adaptativa: Portrait (≤5 colunas) / Landscape (>5 colunas)
  • Larguras proporcionais: Baseadas no comprimento real do conteúdo
  • Formatação especial:
    • Emails: Trunca endereços longos
    • Datas: Remove informações de timezone desnecessárias
  • Quebra automática: Texto longo quebrado em múltiplas linhas

📁 Arquivos Gerados

O sistema gera automaticamente os seguintes arquivos organizados:

  • relatorios/Relatorio_{nome_arquivo}.pdf: Relatório formatado com layout adaptativo
  • csv/corrigidos/{nome_arquivo}_corrigido.csv: CSV com codificação e caracteres corrigidos

Exemplo

Entrada: "csv/dados_usuarios.csv"
Saídas:
├── relatorios/Relatorio_dados_usuarios.pdf     # PDF formatado
└── csv/corrigidos/dados_usuarios_corrigido.csv # CSV limpo

🛠️ Tecnologias

Biblioteca Propósito
ReportLab Geração de PDFs profissionais
chardet Detecção automática de codificação
csv Processamento de arquivos CSV
unicodedata Normalização de caracteres Unicode

Licença

Este repositório está licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.


                            Projeto desenvolvido por Michel Alexandrino de Souza

About

Converte arquivos CSV em relatórios PDF formatados com correção automática de caracteres corrompidos (mojibake). Detecta codificação, organiza arquivos e gera layouts adaptativos com detecção automática.

Topics

Resources

License

Stars

Watchers

Forks

Languages