Limpar metadados de PDF
Envie os metadados lidos de um PDF, como Title, Author, Creator, CreationDate e um código de rastreamento interno, e eles voltam vazios com a lista ordenada dos cinco nomes removidos. O arquivo PDF em si não é alterado. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Remova os metadados de PDF depois que forem extraídos do documento e antes que o registro seja compartilhado, armazenado em log ou enviado para outra etapa. Forneça o bloco de metadados como objeto; esta capacidade retorna um objeto de metadados vazio e uma lista em ordem alfabética dos campos removidos. Ela não inspeciona nem reescreve os bytes do PDF. Em vez disso, oferece às aplicações um contrato de sanitização pequeno, determinístico e fácil de testar, auditar e combinar com um leitor ou gravador de PDF existente.
Forneça o bloco de metadados extraído
Comece com o objeto de metadados produzido por um analisador de PDF, serviço de documentos ou formulário. Coloque esse objeto no campo metadata da solicitação. As propriedades podem usar nomes comuns de informações de PDF, como Title, Author, Subject, Keywords, Creator, Producer, CreationDate ou ModDate, mas a capacidade não limita o vocabulário a uma lista fixa.
Propriedades personalizadas também são removidas. Isso é importante porque as organizações costumam acrescentar rótulos internos de fluxo de trabalho, identificadores de modelos, nomes de sistemas de origem ou configurações de exportação que podem revelar mais informações do que os campos padrão. A solicitação deve conter um objeto real.
Os valores podem ser strings, números, booleanos, nulos, arrays ou objetos aninhados, pois a remoção depende da presença do campo, e não da interpretação do conteúdo.
Entenda o resultado vazio e o relatório de remoção
Uma resposta bem-sucedida sempre contém metadata como um objeto vazio. Ela também inclui removed, um array em ordem alfabética com todos os campos próprios e enumeráveis encontrados no bloco de metadados fornecido. Informar os nomes torna a sanitização observável: você pode confirmar que Author, Creator, datas ou uma propriedade personalizada de rastreamento estavam presentes e foram apagados sem preservar o valor original na resposta.
A ordem alfabética é intencional. Objetos JavaScript podem ser montados em ordens de inserção diferentes, mas conjuntos equivalentes de campos devem produzir a mesma confirmação sempre que possível. Por isso, o algoritmo enumera os campos próprios do objeto, ordena seus nomes com uma localidade inglesa fixa e retorna somente esses nomes.
Ele nunca percorre propriedades herdadas, nunca contata outro serviço e nunca usa relógio nem fonte aleatória. Um objeto de metadados vazio é válido e produz uma lista removed vazia, o que é útil em fluxos idempotentes: limpar um registro já limpo não causa falha nem inventa uma alteração.
Posicione a operação corretamente no fluxo de PDF
Use esta capacidade entre a extração dos metadados e a etapa que grava, armazena ou compartilha o registro sanitizado. Se a entrega final for um arquivo PDF, um gravador de PDF ainda precisará aplicar o objeto vazio ao documento e remover dos bytes as propriedades do dicionário de informações ou XMP. Esta capacidade não afirma editar um documento binário.
Essa separação é útil quando seu sistema já controla o acesso aos arquivos, mas precisa de uma política única para limpar registros descritivos. Por exemplo, um serviço de recebimento de documentos pode ler os metadados, enviar o bloco para cá, registrar somente os nomes dos campos removidos em um evento de auditoria e instruir o gravador a persistir a substituição vazia. Considere a lista removed uma confirmação dos nomes dos campos, não uma prova de que outro arquivo PDF foi regravado.
Casos de uso
Sanitizar um registro de documento extraído
Substitua o bloco de metadados produzido por um analisador por um objeto vazio antes que o registro entre em outro serviço.
Criar um evento de auditoria com privacidade
Registre quais nomes de campos de metadados foram removidos sem copiar valores possivelmente sensíveis para os logs.
Aplicar uma política única de publicação
Ofereça a diferentes rotas de entrada e exportação de PDF a mesma regra determinística para limpar metadados padrão e personalizados.
Perguntas frequentes
Esta capacidade modifica os bytes do PDF?
Não. Ela opera em um objeto de metadados já extraído. Use um gravador de PDF para aplicar o resultado vazio a um arquivo de documento.
Quais campos de metadados são removidos?
Todos os campos próprios e enumeráveis do objeto fornecido, incluindo nomes de propriedades padrão e personalizadas.
Os valores dos metadados removidos são retornados?
Não. Somente os nomes dos campos removidos são informados, portanto a resposta não preserva os valores originais.
O que acontece se os metadados já estiverem vazios?
A chamada é concluída com um objeto de metadados vazio e um array removed vazio.
As propriedades personalizadas também são apagadas?
Sim. Qualquer entrada é removida, não só as padrão como Title ou Author. Rótulos internos de fluxo de trabalho, identificadores de modelo e nomes do sistema de origem também saem, e costumam revelar mais que os dados padrão.
Ferramentas relacionadas
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/strip-metadata \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"metadata":{"Title":"Board minutes","Author":"Example User","Creator":"Office Suite","CreationDate":"D:20260725103000Z"}}'const res = await fetch("https://api.kit.forhosting.com/pdf/strip-metadata", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"metadata": {
"Title": "Board minutes",
"Author": "Example User",
"Creator": "Office Suite",
"CreationDate": "D:20260725103000Z"
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/strip-metadata",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"metadata": {
"Title": "Board minutes",
"Author": "Example User",
"Creator": "Office Suite",
"CreationDate": "D:20260725103000Z"
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/strip-metadata", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"metadata":{"Title":"Board minutes","Author":"Example User","Creator":"Office Suite","CreationDate":"D:20260725103000Z"}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"metadata":{"Title":"Board minutes","Author":"Example User","Creator":"Office Suite","CreationDate":"D:20260725103000Z"}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/strip-metadata", 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
{
"metadata": {
"Title": "Board minutes",
"Author": "Example User",
"Creator": "Office Suite",
"CreationDate": "D:20260725103000Z"
}
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.strip_metadata",
"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. |
Notas técnicas
Forneça o bloco de metadados extraído
Uma string que contém JSON continua sendo uma string e é rejeitada, em vez de ser interpretada implicitamente; um array também é rejeitado porque entradas numeradas não representam um mapa de propriedades de metadados. Analise qualquer JSON serializado antes de chamar a capacidade para manter o contrato de entrada explícito e previsível.
Posicione a operação corretamente no fluxo de PDF
Um fluxo de publicação pode aplicar a mesma operação antes de expor detalhes do documento por uma API. Cada item custa US$ 0,002 pela API, e a implementação determinística, sem rede, também permite uso repetível no navegador.
Perguntas técnicas
Posso fornecer uma string JSON?
Não. Faça a análise antes. O campo metadata deve ser um objeto; strings ou arrays produzem um erro invalid_input.
Quanto custa uma chamada de API?
O processamento de um objeto de metadados custa US$ 0,002.