# 🗺️ Roadmap de Execução & Fases — PDF Toolkit Documento de acompanhamento do ciclo de vida e marcos do **PDF Toolkit**. --- ## 🟢 Fase 1: Arquitetura Base & Motor Orquestrador (`core/`) - [x] Configuração central em `config.py` com limites de payload, presets e portas. - [x] Criação do validador de integridade e magic bytes (`core/validators.py`). - [x] Implementação da fachada orquestradora `PDFEngine` (`core/engine.py`). - [x] Testes unitários do motor base com geração de PDFs sintéticos. --- ## 🟢 Fase 2: Módulo de Otimização & Compressão - [x] Algoritmo de reamostragem de imagens via Pillow com filtro LANCZOS (`core/compress.py`). - [x] Mapeamento dos 4 presets padrão (`screen`, `ebook`, `printer`, `prepress`). - [x] Implementação de guarda defensiva anti-inflação de arquivo. - [x] Coleta de métricas e estatísticas comparativas de redução. --- ## 🟢 Fase 3: Detecção & Higienização de PDF/A - [x] Detecção de nós XMP `` / `conformance` via regex (`core/pdfa.py`). - [x] Detecção de `/OutputIntents` no dicionário raiz. - [x] Conversão de PDF/A para PDF comum (`strip_pdfa`) removendo restrições. - [x] Compressão compatível com PDF/A (`compress_pdfa`). --- ## 🟢 Fase 4: Operações Estruturais & Extração - [x] Concatenação de múltiplos arquivos (`merge_pdfs` em `core/operations.py`). - [x] Divisão por intervalos de páginas (`split_pdf`). - [x] Extração de páginas específicas (`extract_pages`). - [x] Rotação de páginas em 90°, 180° e 270° (`rotate_pages`). - [x] Extração de texto bruto (`extract_text`). - [x] Extração de imagens embutidas (`extract_images`). --- ## 🟢 Fase 5: Interface Web Interativa (Streamlit) - [x] Criação da aplicação Streamlit (`app.py`). - [x] Aba de compressão com slider de preset e cálculo de economia percentual. - [x] Aba de conversão e saneamento de PDF/A. - [x] Abas de operações estruturais (Merge, Split, Extract, Rotate). - [x] Aba de extração de texto e imagens com download imediato. - [x] Aba de inspeção e metadados com badge de conformidade. --- ## 🟢 Fase 6: API REST & Documentação OpenAPI (FastAPI) - [x] Criação dos endpoints em `api.py` correspondentes a todas as operações. - [x] Documentação automática Swagger UI (`/docs`) e Redoc (`/redoc`). - [x] Middleware CORS para conexões externas. - [x] Autenticação opcional por header `X-API-Key`. - [x] Endpoint de monitoramento de integridade (`GET /health`). --- ## 🟢 Fase 7: Containerização & Scripts de Execução - [x] Criação de `Dockerfile.web` (Streamlit) e `Dockerfile.api` (FastAPI). - [x] Configuração de `docker-compose.yml` para orquestração de ambos os serviços. - [x] Scripts de inicialização Linux `scripts/run-web.sh` e `scripts/run-api.sh`. --- ## 🟢 Fase 8: Testes Automatizados & Qualidade - [x] Criação da suíte de testes em `tests/test_core.py`. - [x] Validação de compressão, detecção PDF/A, rotação, extração e merge. - [x] Verificação de integridade dos streams gerados. --- ## 🟢 Fase 9: Integração com Obsidian Vault & Memória Técnica - [x] Criação da ficha mestra `00_Index.md` em `03_Dev_Projetos/PDF_Toolkit/`. - [x] Criação do documento `padroes-arquitetura.md` no cofre. - [x] Criação do registro `gotchas-e-bugs.md` no cofre. - [x] Documentação de Architecture Decision Records (ADR-001, ADR-002, ADR-003). - [x] Criação do arquivo de ponte para agentes `AGENTS.md` na raiz do repositório. - [x] Especificação de escopo em `docs/escopo.md` e roadmap em `docs/fases.md`. --- ## 🟡 Fase 10: Próximas Evoluções (Backlog Futuro) - [ ] Módulo opcional de OCR com suporte a Tesseract para PDFs digitalizados. - [ ] Processamento assíncrono em segundo plano com Celery / Redis para lotes maciços (> 50 arquivos). - [ ] Suporte a Linearização ("Fast Web View") via integração opcional com binário `qpdf`. - [ ] Endpoint para assinatura de carimbo d'água personalizado com transparência.