Um conversor robusto que transforma diversos tipos de documentos em arquivos Markdown, incluindo PDFs, DOCX, PPTX, Excel, TXT e RTF, com suporte especial para PDFs protegidos e digitalizados.
-
Suporte para múltiplos formatos:
- PDF (incluindo PDFs protegidos e digitalizados)
- DOCX (documentos Word)
- PPTX (apresentações PowerPoint)
- Excel (.xlsx, .xls)
- TXT (arquivos de texto)
- RTF (Rich Text Format)
-
Recursos avançados para PDFs:
- Múltiplos métodos de extração de texto
- Suporte a PDFs protegidos
- OCR para PDFs digitalizados
- Detecção automática do melhor método de extração
-
Recursos para Excel:
- Suporte a múltiplas planilhas
- Conversão de tabelas para formato Markdown
- Preservação de nomes das planilhas
- Suporte a formatos antigos (.xls) e novos (.xlsx)
-
Sistema de relatórios detalhados:
- Rastreamento de arquivos convertidos com sucesso
- Detalhamento de falhas de conversão
- Logs detalhados do processo
- Python 3.11 ou superior
- Tesseract OCR (para suporte a PDFs digitalizados)
- Poppler (necessário para pdf2image)
- Crie um ambiente virtual:
python -m venv venv
- Ative o ambiente virtual:
No macOS/Linux:
source venv/bin/activate
No Windows:
.\venv\Scripts\activate
- Após ativar o ambiente virtual, seu prompt deve mostrar
(venv)
no início.
- Instale o Tesseract OCR e os pacotes de idiomas:
brew install tesseract tesseract-lang
- Instale o Poppler:
brew install poppler
- Instale as dependências Python:
pip install -r requirements.txt
Execute o script especificando os diretórios de entrada e saída:
python document2md.py --input_dir <diretório_entrada> --output_dir <diretório_saída>
python document2md.py --input_dir ~/Documents/files --output_dir ~/Documents/markdown
Se você preferir usar Docker, fornecemos uma solução containerizada que inclui todas as dependências necessárias.
- Docker
- Docker Compose
Use o script fornecido para executar o conversor:
./run_converter.sh <diretório_entrada> <diretório_saída>
Exemplo:
./run_converter.sh ~/Documents/files ~/Documents/markdown
O script irá:
- Construir a imagem Docker com todas as dependências
- Montar os diretórios de entrada e saída no container
- Executar a conversão
- Os arquivos convertidos estarão disponíveis no diretório de saída especificado
Alternativamente, você pode definir as variáveis de ambiente e usar o docker-compose diretamente:
export INPUT_DIR=/caminho/para/entrada
export OUTPUT_DIR=/caminho/para/saida
docker-compose up --build
O script utiliza diferentes métodos para cada tipo de documento:
-
PDFs
- PyMuPDF (método principal)
- PDFPlumber (método alternativo)
- OCR com Tesseract (para PDFs digitalizados)
-
Excel
- Pandas para leitura de dados
- Conversão automática para tabelas Markdown
- Preservação da estrutura de múltiplas planilhas
-
Outros Formatos
- DOCX: python-docx
- PPTX: python-pptx
- RTF: striprtf
- TXT: leitura direta
O script gera:
-
Arquivos Markdown
- Um arquivo .md para cada documento convertido
- Mantém a estrutura de diretórios original
- Preserva títulos e formatação básica
- Tabelas formatadas para Excel
-
Relatório de Conversão
- Lista de arquivos convertidos com sucesso
- Detalhes de falhas de conversão
- Arquivos ignorados e motivos
- Timestamp para rastreamento
-
Logs Detalhados
- Arquivo conversion.log
- Informações sobre cada etapa do processo
- Mensagens de erro detalhadas
- Útil para diagnóstico de problemas
O script lida com vários cenários de erro:
- PDFs protegidos com senha
- Documentos corrompidos
- PDFs digitalizados
- Arquivos vazios
- Formatos não suportados
- OCR requer instalação do Tesseract
- Alguns PDFs fortemente protegidos podem não ser convertidos
- A qualidade do OCR depende da qualidade da digitalização
- Alguns elementos de formatação complexa podem ser perdidos
Contribuições são bem-vindas! Por favor, sinta-se à vontade para submeter pull requests ou reportar problemas.