TK TaskKit
Ferramentas PDF

PDF para imagens

Converte cada página de um PDF em PNG ou JPEG, renderizada no teu navegador na resolução que escolheres.

Os ficheiros ficam no teu dispositivo. Os PDFs são lidos, juntados e gravados inteiramente dentro do teu navegador. Nunca recebemos um único byte do teu ficheiro.

O que esta ferramenta faz

Este conversor renderiza cada página de um PDF como imagem PNG ou JPEG, renderizada no teu navegador à resolução que escolheres. Larga um PDF e obténs uma grelha de miniaturas; escolhe um formato e uma escala, depois descarrega todas as páginas de uma vez ou guarda individuais. O PDF é parseado pelo pdf.js dentro do teu separador, desenhado em canvases off-screen, e só esses canvases passam por uma caixa de download. Não há upload.

Quando usar

  • Publicar uma página de PDF num fórum ou plataforma de chat que não aceita anexos PDF inline.
  • Gerar miniaturas para um site de portefólio sem montar um renderizador no servidor.
  • Tirar figuras de um artigo para colar em slides ou noutro documento.
  • Criar uma pré-visualização amigável para email de um PDF para destinatários em ligações lentas.
  • Produzir input para um pipeline de OCR que queira imagens raster, não PDF vetorial.

Como funciona

O pdf.js carrega o documento e expõe um método getPage(n) por página. Para cada página pedimos um viewport à escala escolhida (1×, 1,5×, 2×, 2,5× ou 3×) e desenhamos num <canvas> novo cuja largura e altura correspondem ao viewport em pixéis. O canvas é depois codificado com canvas.toBlob() (image/png ou image/jpeg com qualidade 0,92 para JPEG) e mostrado como miniatura ou guardado como download.

Mudar o formato é barato porque o canvas já está renderizado — basta recodificar os mesmos pixéis em PNG ou JPEG e atualizar as miniaturas. Mudar a escala é mais caro: uma escala diferente precisa de uma resolução de canvas diferente, por isso a ferramenta volta a correr a renderização do pdf.js no novo viewport. O limite rígido de 100 páginas é uma válvula de segurança para a thread principal do navegador; para além disso, o tempo de renderização e o uso de memória crescem desconfortavelmente para um separador.

O worker do pdf.js é carregado como recurso same-origin (o Vite emite-o no build), por isso não há CDN de terceiros envolvido. Depois de carregar, não há mais tráfego de rede — cada renderização de página e cada codificação de imagem é local.

Notas

PNG ou JPEG? PNG é sem perdas, maior e ótimo para páginas com texto ou gráficos nítidos. JPEG é mais pequeno e bem adequado a páginas com muita imagem (digitalizações, fotografias, mapas), mas pode introduzir artefactos de compressão visíveis nos limites do texto. O defeito é PNG; muda para JPEG quando o tamanho do ficheiro importa.

Porque é que a escala 3× se vê igual no meu ecrã? A densidade de pixéis do teu monitor limita o que consegues ver na pré-visualização, mas o ficheiro de saída é genuinamente 3× a resolução. A miniatura na grelha é reduzida pelo navegador; a imagem que descarregas tem o tamanho completo.

PDF cifrado funciona? PDFs com open-password padrão tipicamente renderizam pelo pdf.js. PDFs com cifra de conteúdo ou DRM podem falhar; o painel mostra um erro de carregamento e nada é renderizado.

Posso renderizar só uma página específica? A grelha mostra todas as páginas; clica no pequeno ícone de download numa miniatura única para guardar só essa página. Não há toggle separado de "renderizar só a página X" — à escala 1×, renderizar um PDF de 50 páginas é suficientemente rápido para o custo não ser significativo.

Ferramentas relacionadas