Como fazer o PDF abrir na hora no navegador
Linearizar um PDF — o chamado “fast web view” — reorganiza a estrutura interna do arquivo para que o navegador mostre a primeira página imediatamente, enquanto o resto ainda baixa. É o ajuste certo para catálogos, cardápios e manuais publicados no seu site: o visitante no 4G não fica encarando tela branca.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Por que o PDF comum trava no celular
Um PDF tradicional guarda o índice das páginas no final do arquivo. O navegador precisa baixar tudo — ou quase tudo — antes de conseguir desenhar a primeira página. No escritório, com fibra, ninguém percebe; no celular da rua, um catálogo de 8 MB vira dez segundos de espera e o visitante desiste. A maior parte do abandono em PDFs publicados na web vem daí, não do conteúdo.
O que a linearização muda por dentro
O serviço reordena os objetos internos do arquivo: o necessário para exibir a página 1 vai para o início, e o restante fica organizado para carregamento progressivo. O conteúdo não muda uma vírgula — texto, imagens e links continuam idênticos. Muda a experiência: a capa aparece na hora, o leitor começa a rolar e as páginas seguintes chegam enquanto ele lê. Qualquer leitor de PDF moderno aproveita; nos antigos, o arquivo abre normalmente, sem prejuízo.
Status beta, preço e quando entra no ar
A capacidade está marcada como beta e em fase de implantação: ainda não aceita execuções, e publicamos isso com todas as letras para você não montar integração em cima de expectativa. O preço já está definido — US$ 0,042 por chamada mais US$ 0,0025 por documento, com limite de 25 MB e 200 páginas por arquivo. Vale lembrar: linearizar é etapa de publicação; sempre que você atualizar o PDF do site, o arquivo novo precisa passar pelo processo de novo.
Casos de uso
Cardápio em PDF que abre antes de o cliente desistir
Um restaurante de Recife publica o cardápio em PDF no link da bio. Linearizado, o arquivo mostra a primeira página com as entradas em um segundo, mesmo no 4G da praia — em vez de uma tela branca que manda o cliente para o concorrente.
Catálogo de distribuidora com 120 páginas
A Distribuidora Horizonte Verde S.A. envia por WhatsApp o link do catálogo mensal. Com o fast web view, o lojista vê a capa e as primeiras ofertas de imediato e vai rolando enquanto o resto baixa em segundo plano.
Edital publicado em portal público
Uma organização que publica editais e regulamentos no próprio site lineariza os PDFs antes de subir. Quem acessa da lan house ou do celular lê a primeira página do edital sem esperar os anexos carregarem.
Manual do produto no QR Code da embalagem
Uma fabricante imprime QR Code na caixa apontando para o manual em PDF. Linearizado, o manual abre na dobra certa em qualquer celular — a primeira dúvida do cliente se resolve antes de o download completar.
Perguntas frequentes
Linearizar altera o conteúdo ou a qualidade do PDF?
Nada. Texto, imagens, links e marcadores ficam idênticos; só a ordem interna dos dados muda. O arquivo resultante é o mesmo documento, apenas organizado para a web.
E em leitor de PDF antigo, quebra alguma coisa?
Não. Um PDF linearizado é 100% compatível: leitores que não entendem o carregamento progressivo simplesmente abrem o arquivo do jeito tradicional.
Atualizei o arquivo do site. Preciso linearizar de novo?
Sim. A otimização vale para aquele arquivo específico; qualquer versão nova precisa passar pelo processo antes de ser publicada.
Qual é o custo para otimizar meu catálogo todo mês?
Cada documento processado custa US$ 0,042 pela chamada + US$ 0,0025 por arquivo. Doze catálogos por ano ficam em cerca de US$ 0,53 — preço em dólar, pago por uso.
O arquivo que eu enviar fica armazenado com vocês?
Fica apenas o tempo de você retirar o resultado; depois é apagado. Nenhum uso secundário, em linha com a LGPD.
Por que ainda não consigo executar?
A capacidade está em implantação (e em beta). Preferimos publicar o preço e os limites antes de abrir as execuções do que abrir algo pela metade. Quando estiver no ar, esta página passa a aceitar chamadas.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/pdf/linearize \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/linearize", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/linearize",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/linearize", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/linearize", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"pdf": "https://ejemplo.com/documento.pdf"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.linearize",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 25 |
max_pages | 200 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
413 | input_too_large | A entrada passou do tamanho máximo desta tarefa. Confira os limites publicados. |