3.8 KiB
3.8 KiB
📋 Especificação de Escopo — PDF Toolkit
1. Visão Geral do Produto & Personas
O PDF Toolkit é uma plataforma utilitária completa de processamento, otimização e saneamento de arquivos PDF desenvolvida para resolver as necessidades diárias de manipulação documental de forma rápida, privada e desacoplada de soluções em nuvem públicas de terceiros.
Personas:
- Consultores Técnicos & Usuários Administrativos: Necessitam compactar arquivos pesados para envio por e-mail/WhatsApp, converter arquivos restritos no padrão PDF/A para PDF editável, rotacionar digitalizações e unir/separar relatórios através de uma interface web simples e interativa.
- Desenvolvedores & Agentes Autônomos de IA: Necessitam de uma API REST stateless de alto desempenho para submeter fluxos de arquivos e receber PDFs transformados ou dados extraídos (texto/imagens/metadados) em pipelines de automação.
2. Requisitos Funcionais do MVP (In-Scope)
-
Otimização & Compressão Inteligente:
- Compressão de arquivos através da reamostragem e re-compressão de imagens rasterizadas com algoritmo LANCZOS.
- Quatro presets pré-configurados:
screen(30% / 1200px),ebook(60% / 2000px),printer(85% / 3500px) eprepress(95% / 5000px). - Mecanismo de guarda anti-inflação: se a regravação gerar um arquivo maior, o sistema descarta e entrega o original intacto.
-
Saneamento & Gestão de PDF/A:
- Detecção automática de conformidade PDF/A via análise de metadados XMP (
pdfaid:part/conformance) e/OutputIntents. - Conversão e desregulamentação (
pdfa-to-regular): remoção cirúrgica de restrições PDF/A mantendo a fidelidade visual das páginas. - Compressão preservando a estrutura PDF/A (
compress-pdfa).
- Detecção automática de conformidade PDF/A via análise de metadados XMP (
-
Operações Estruturais de Páginas:
- Merge (Concatenação): Junção ordenada de múltiplos arquivos PDF com preservação de estrutura.
- Split (Divisão): Separação de documentos em intervalos de páginas configuráveis.
- Extract Pages: Extração pontual de listas de páginas (ex: 1, 3, 5-8) em um único arquivo de saída.
- Rotate: Rotação de páginas individuais ou em lote em ângulos de 90°, 180° ou 270°.
-
Extração de Informações:
- Extração de Texto: Extração de texto bruto indexável por página.
- Extração de Imagens: Localização e download de todas as imagens embutidas no documento no formato PNG/JPEG.
- Inspeção de Metadados: Análise de número de páginas, tamanho, integridade e diagnóstico de conformidade PDF/A.
-
Interfaces & Acesso:
- Interface Web (Streamlit): GUI em abas temáticas, drag-and-drop, sliders interativos e cálculo de delta de compressão.
- API REST (FastAPI): Endpoints assíncronos, documentação interativa Swagger (
/docs) e Redoc (/redoc), suporte a autenticação porX-API-Key.
-
Containerização & Deploy:
- Empacotamento em Docker multi-container com
docker-composepara execução simultânea da API (:8555) e da Web (:8550).
- Empacotamento em Docker multi-container com
3. Limites do MVP (Anti-Scope)
- ❌ OCR (Optical Character Recognition) Complexo: O MVP não executa OCR com Tesseract/EasyOCR em imagens escaneadas sem camada de texto (extração de texto limita-se ao texto vetorial/digital existente).
- ❌ Linearização Binária True Fast Web View: Não inclui reestruturação de baixo nível com dependências binárias C (qpdf/Ghostscript) para manter a portabilidade 100% Python.
- ❌ Assinatura Digital Criptográfica / PKCS#7: Não realiza assinatura de certificados A1/A3 (ICP-Brasil) ou aposição de carimbos do tempo nesta versão.
- ❌ Persistência de Histórico de Arquivos em Banco de Dados: A aplicação é 100% stateless; arquivos processados não são salvos em banco nem retidos após a entrega do stream.