Verifique a linearização e a visualização rápida do PDF
A linearização de PDF é uma organização estrutural criada para que um visualizador compatível mostre a primeira página enquanto o restante de um documento remoto ainda está sendo baixado.
Executar grátis
Este verificador recebe o sinalizador booleano de linearização gerado por uma ferramenta de inspeção de PDF e o transforma em uma conclusão objetiva, pronta para um relatório. Ele informa se a visualização rápida na web está disponível, explica o efeito prático, separa otimização de entrega de validade do arquivo e recomenda o próximo passo sem enviar nem regravar o PDF.
Interprete corretamente o sinalizador estrutural
Um inspetor de PDF pode apresentar a linearização como um sinalizador booleano, às vezes ao lado de rótulos como Visualização rápida na web ou Otimizado para web. Informe esse resultado estrutural exato no campo linearized: true significa que o dicionário e a ordem esperados da linearização foram reconhecidos; false indica que o arquivo não anuncia essa organização. O verificador exige o sinalizador em vez de tentar deduzi-lo pelo nome, tamanho, velocidade de download ou rótulo de metadados. Esses indícios indiretos não determinam como os objetos estão ordenados dentro do documento. O resultado repete o booleano normalizado, oferece um valor de status estável para fluxos automatizados e redige um resumo claro para relatórios técnicos. Se a saída da inspeção não trouxer o sinalizador, não use false como substituto. Uma observação ausente significa que o status é desconhecido, enquanto false é uma constatação estrutural definida. Por isso, a capacidade retorna erro de entrada quando o sinalizador não existe ou não é booleano, impedindo que uma conclusão sem base entre em uma auditoria ou registro de qualidade.
Entenda o que muda na visualização rápida
Um PDF linearizado posiciona perto do início do arquivo as informações necessárias para a exibição antecipada e inclui dicas que ajudam um leitor compatível a solicitar intervalos de bytes úteis. Quando o arquivo está hospedado em um servidor que aceita solicitações por intervalo, o navegador ou visualizador pode renderizar a página inicial antes de receber todos os bytes. Isso melhora a percepção de resposta em documentos grandes, conexões lentas e consultas apenas às primeiras páginas. O relatório usa linguagem cuidadosa porque o sinalizador estrutural cria uma condição favorável, mas não garante desempenho. O comportamento real também depende da entrega HTTP, cache, latência da rede, implementação do visualizador, complexidade do documento e transformações posteriores. A linearização não comprime o PDF, reduz páginas, certifica acessibilidade, valida assinaturas nem prova que o documento inteiro está bem-formado. Da mesma forma, um PDF não linearizado pode abrir rapidamente se for pequeno ou estiver em cache. Portanto, a conclusão deve descrever a preparação para entrega progressiva, sem afirmar um ganho de velocidade medido.
Use a conclusão em relatórios e fluxos
Em um resultado positivo, registre que o PDF está linearizado e aceita visualização rápida na web, mantendo a ressalva de que as condições de entrega determinam o benefício percebido. Em um resultado negativo, informe que essa modalidade não é anunciada e que a exibição remota da primeira página pode exigir o download de uma parte maior do arquivo. Não chame o documento de corrompido: PDFs não linearizados são comuns e podem ser totalmente válidos. A recomendação é condicional: linearize quando a visualização HTTP progressiva for importante e inspecione novamente o resultado regravado. Editar, otimizar, assinar, combinar ou regenerar um PDF pode mudar sua ordem interna e remover uma estrutura antes válida. Em publicações automatizadas, faça a inspeção estrutural após a etapa final de geração, envie aqui o sinalizador booleano e guarde o status e a explicação com as evidências da versão. Os campos estáveis também facilitam políticas: um fluxo para web pode exigir true, enquanto arquivamento ou distribuição local pode aceitar qualquer valor e manter o resultado apenas como informação.
Casos de uso
Documentar uma verificação para publicação web
Transforme o sinalizador estrutural de um inspetor em uma conclusão consistente antes de publicar um PDF grande em um site.
Padronizar a saída do controle de qualidade
Converta true ou false em campos de status estáveis e texto de relatório que verificações posteriores possam armazenar e comparar.
Explicar com segurança um resultado negativo
Esclareça que a falta de otimização para visualização rápida afeta a entrega progressiva, mas não torna o PDF inválido por si só.
Perguntas frequentes
Qual entrada o verificador exige?
Ele exige o sinalizador booleano de linearização obtido em uma inspeção estrutural do PDF: true ou false. Um valor ausente ou desconhecido não é aceito como false.
Esta capacidade inspeciona ou envia o arquivo PDF?
Não. Ela interpreta um sinalizador estrutural já produzido por outra etapa de inspeção do PDF.
Um PDF linearizado sempre abre mais rápido?
Não. A linearização permite entrega progressiva, mas a experiência depende do servidor, visualizador, conexão, cache, complexidade e tamanho do documento.
Um PDF não linearizado está corrompido?
Não. A ausência de linearização é uma constatação sobre otimização de entrega, não uma prova de corrupção ou invalidade.
Uma edição pode remover a linearização?
Sim. Regravar, combinar, assinar ou otimizar o arquivo pode alterar a ordem dos objetos; inspecione novamente o artefato final.
Quanto custa uma solicitação da API?
Cada solicitação da API custa US$ 0,002. A versão para navegador executa localmente a mesma interpretação determinística.
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-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"linearized":true}'const res = await fetch("https://api.kit.forhosting.com/pdf/linearize-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"linearized": true
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/linearize-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"linearized": true
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/linearize-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"linearized":true}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"linearized":true}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/linearize-check", 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
{
"linearized": true
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.linearize_check",
"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. |