Conversor automático de arquivos PDF e ePUB para formato Markdown estruturado.
Book2MD é uma ferramenta Python para converter facilmente arquivos PDF e ePUB para Markdown estruturado. O script utiliza o Docling como conversor principal, com fallback para o Calibre em arquivos ePUB que o Docling não consegue processar adequadamente.
- Conversão de PDFs para Markdown estruturado usando Docling
- Conversão de ePUBs para Markdown usando Docling ou Calibre (fallback automático)
- Modo de escaneamento único (processamento em lote)
- Modo de observação contínua (processamento de novos arquivos)
- Logs detalhados de cada execução
- Suporte a configuração via variáveis de ambiente (.env)
- Python 3.7 ou superior
- pip (gerenciador de pacotes Python)
- Calibre (para conversão de fallback de ePUBs)
-
Clone o repositório:
git clone https://github.com/marcelomuz/book2md.git cd book2md -
Instale as dependências:
pip install -r requirements.txt
-
Configure o ambiente:
cp .env.example .env # Edite o arquivo .env com seus caminhos
Para processar todos os arquivos PDF e ePUB no diretório de entrada:
python -m scripts.convertPara iniciar o modo de observação que processa novos arquivos automaticamente:
python -m scripts.convert --watchAs configurações podem ser definidas através de variáveis de ambiente ou do arquivo config/config.yml. As variáveis de ambiente têm precedência sobre as configurações no arquivo YAML.
BOOK2MD_INPUT_DIR: Diretório onde estão os arquivos a serem convertidosBOOK2MD_OUTPUT_MD: Diretório onde serão salvos os arquivos MarkdownBOOK2MD_OUTPUT_LOGS: Diretório onde serão salvos os logsBOOK2MD_RETRY_ATTEMPTS: Número de tentativas para converter um arquivoBOOK2MD_WATCH_MODE: Modo de observação habilitado por padrão (true/false)
book2md/
├── config/
│ └── config.yml # Configurações principais
├── input/ # Diretório de entrada para PDFs/ePUBs
├── output/
│ ├── md/ # Arquivos Markdown convertidos
│ └── logs/ # Logs de execução
└── scripts/
├── convert.py # Script principal de conversão
└── utils.py # Funções auxiliares
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.