O que esta ferramenta faz
Este divisor pega num único PDF e extrai exatamente as páginas que pedires, como ficheiros novos. Larga um PDF, escreve uma ou mais gamas (1-3, 5, 7-9) e decide se cada gama se torna o seu próprio download ou se o conjunto colapsa numa só saída combinada. Não há etapa de upload: o PDF de origem é lido para memória, dissecado com pdf-lib, e os ficheiros resultantes são guardados pelo fluxo normal de download do navegador. O TaskKit nunca vê o ficheiro.
Quando usar
- Extrair um único capítulo ou secção de um livro ou relatório PDF longo, para o destinatário não receber a obra completa.
- Separar uma digitalização agregada (um PDF que contém vários documentos) num PDF por documento.
- Recortar uma fatura ou contrato de um pacote consolidado de fim de mês para arquivo ou reencaminhamento.
- Produzir um manual redigido selecionando apenas as páginas que é seguro partilhar.
- Dividir uma submissão grande para caber sob um limite de upload num portal que não aceita o teu PDF inteiro.
Como funciona
O campo das gamas aceita entradas separadas por vírgulas. Cada entrada é uma única página (5) ou uma gama com hífen (7-9); o whitespace à volta de vírgulas e hífenes é ignorado. O parser valida cada entrada contra a contagem de páginas da origem antes de qualquer saída ser construída — sintaxe inválida ou valores fora do alcance aparecem como um erro legível em vez de um ficheiro escrito a meio.
Para cada gama, é criado um novo PDFDocument e as páginas correspondentes são puxadas com copyPages, que preserva fontes embutidas, imagens, anotações e campos de formulário. O resultado é serializado com save() e descarregado com um nome gerado como origem-paginas-1-3.pdf ou origem-pagina-5.pdf. Como o Chrome às vezes bloqueia um separador que dispara muitos eventos de download seguidos, os downloads são espaçados com cerca de 150 ms para que a fila seja sempre respeitada.
Com Combinar todas as gamas num PDF ativado, a mesma seleção é concatenada numa única saída (origem-extraida.pdf). A ordem segue a ordem das gamas que escreveste, não a ordem original das páginas — por isso 5, 1-3 produz um PDF que começa com a página 5.
Notas
PDFs cifrados são suportados? Parcialmente. PDFs com "open password" padrão geralmente carregam (o pdf-lib é permissivo); PDFs com cifra de conteúdo ou DRM podem falhar o parse. Se o ficheiro falhar a carregar, o painel mostra um erro e nada é escrito.
Porque é que os downloads estão espaçados? Os navegadores suprimem heuristicamente separadores que emitem muitos downloads sequenciais, tratando isso como comportamento drive-by. Um pequeno setTimeout entre cada a.click() mantém o burst abaixo do limite e continua a parecer instantâneo a um humano.
As referências de página são preservadas? Os links internos que apontam para dentro da gama mantida continuam a funcionar. Os links que apontam para uma página que não passou tornam-se âncoras mortas — o pdf-lib não inventa um substituto. O mesmo se aplica ao outline da tabela de conteúdos, que é regenerada apenas para as páginas sobreviventes.
Posso reordenar páginas? Sim — a saída segue a ordem das gamas que listas. 5, 1-3, 7 produz uma saída que começa na página 5, depois 1, 2, 3 e termina na página 7. Esta é a forma mais fácil de usar o divisor como ferramenta de reordenação rápida quando combinada com o toggle "PDF único".
Ferramentas relacionadas
- Junção de PDFs — junta PDFs na direção contrária
- PDF para imagens — quando queres PNG/JPEG em vez de PDF
- Gerador de hashes — fingerprint das saídas antes de reencaminhar