# API do pdf-toolkit Documentação interativa disponível em: - **Swagger UI**: http://localhost:8555/docs - **Redoc**: http://localhost:8555/redoc --- ## Base URL ``` http://localhost:8555 ``` --- ## Endpoints ### `GET /` Raiz informativa. **Resposta:** ```json { "app": "pdf-toolkit API", "version": "1.0.0", "docs": "/docs", "redoc": "/redoc" } ``` --- ### `GET /health` Health check. **Resposta:** ```json {"status": "ok", "version": "1.0.0"} ``` --- ### `POST /inspect` Inspeciona metadados de um PDF. **Parâmetros:** | Nome | Tipo | Obrigatório | |---|---|---| | `file` | arquivo PDF | ✅ | **Resposta:** ```json { "valid": true, "pages": 42, "error": "", "is_pdfa": false, "file_size_mb": 2.34, "filename": "relatorio.pdf", "level": null, "method": "none", "confidence": 0.0 } ``` --- ### `POST /compress` Comprime um PDF re-amostrando imagens. **Parâmetros:** | Nome | Tipo | Padrão | Obrigatório | |---|---|---|---| | `file` | arquivo | — | ✅ | | `preset` | string | `"ebook"` | ❌ | **Presets válidos:** `screen`, `ebook`, `printer`, `prepress` **Resposta:** PDF comprimido (download) --- ### `POST /pdfa-to-regular` Remove restrições PDF/A gerando PDF comum. **Parâmetros:** | Nome | Tipo | Obrigatório | |---|---|---| | `file` | arquivo PDF | ✅ | **Resposta:** PDF comum (download) --- ### `POST /compress-pdfa` Comprime imagens mantendo a estrutura PDF/A. **Parâmetros:** | Nome | Tipo | Padrão | Obrigatório | |---|---|---|---| | `file` | arquivo | — | ✅ | | `quality` | int (10-100) | 60 | ❌ | **Resposta:** PDF otimizado (download) --- ### `POST /merge` Junta múltiplos PDFs em um único arquivo. **Parâmetros:** | Nome | Tipo | Obrigatório | |---|---|---| | `files` | lista de arquivos | ✅ (mín: 2) | **Resposta:** PDF mesclado (download) --- ### `POST /split` Divide um PDF em múltiplos arquivos por intervalos de páginas. **Parâmetros:** | Nome | Tipo | Obrigatório | |---|---|---| | `file` | arquivo PDF | ✅ | | `ranges` | string | ✅ | **Exemplo de `ranges`:** `"1-3,5,7-9"` (1-indexado) **Resposta:** ZIP com os PDFs extraídos --- ### `POST /extract-pages` Extrai páginas específicas em ordem para um único PDF. **Parâmetros:** | Nome | Tipo | Obrigatório | |---|---|---| | `file` | arquivo PDF | ✅ | | `pages` | string | ✅ | **Exemplo de `pages`:** `"1,3,5"` (1-indexado) **Resposta:** PDF com as páginas selecionadas (download) --- ### `POST /rotate` Rotaciona páginas de um PDF. **Parâmetros:** | Nome | Tipo | Padrão | Obrigatório | |---|---|---|---| | `file` | arquivo | — | ✅ | | `pages` | string | — | ✅ | | `angle` | int | 90 | ❌ | **Exemplo de `pages`:** `"1,3,5"` ou `"todas"` **Resposta:** PDF rotacionado (download) --- ### `POST /extract-text` Extrai texto de todas as páginas do PDF. **Parâmetros:** | Nome | Tipo | Obrigatório | |---|---|---| | `file` | arquivo PDF | ✅ | **Resposta:** arquivo `.txt` (download) --- ### `POST /extract-images` Extrai todas as imagens embutidas no PDF. **Parâmetros:** | Nome | Tipo | Obrigatório | |---|---|---| | `file` | arquivo PDF | ✅ | **Resposta:** ZIP com as imagens extraídas --- ## Exemplos com curl ### Comprimir ```bash curl -X POST http://localhost:8555/compress \ -F "file=@documento.pdf" \ -F "preset=ebook" \ -o comprimido.pdf ``` ### Merge ```bash curl -X POST http://localhost:8555/merge \ -F "files=@parte1.pdf" \ -F "files=@parte2.pdf" \ -o merged.pdf ``` ### Split ```bash curl -X POST http://localhost:8555/split \ -F "file=@documento.pdf" \ -F "ranges=1-3,5,7-9" \ -o split.zip ``` ### Inspect ```bash curl -s -X POST http://localhost:8555/inspect \ -F "file=@documento.pdf" | jq . ``` ### Extract text ```bash curl -X POST http://localhost:8555/extract-text \ -F "file=@documento.pdf" \ -o texto.txt ```