Adicionar campo de assinatura a um PDF
Um campo de 200 por 50 pontos colocado em 72, 72 numa página Letter de 612 por 792 cabe, com 340 pontos livres à direita e 670 acima, no quadrante inferior esquerdo. Valide a posição da assinatura antes de aplicá-la. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Largura da página
- 612
- Altura da página
- 792
- X
- 72
- Y
- 72
- Largura
- 200
- Altura
- 50
- Sistema de coordenadas
- pdf_points_origin_bottom_left
- Quadrante
- bottom_left
- Área (pontos)
- 10.000
- Porcentagem de cobertura
- 2,063115
Se qualquer borda ficar fora da página, ela rejeita o posicionamento com uma explicação precisa de qual limite foi cruzado, antes que você gaste uma operação de assinatura em um campo que ninguém jamais verá.
Por que o posicionamento de campos de assinatura falha em produção
E toda equipe que automatiza a assinatura de documentos acaba publicando um bug de layout — um modelo de contrato é refluído, uma página digitalizada chega em A4 em vez de Carta, uma coordenada calculada para uma página em retrato cai em uma em paisagem, e o campo de assinatura acaba fora da página visível. Em algumas ferramentas a assinatura ainda é aplicada, então o documento aparece como assinado no painel, mas nada aparece na página que uma pessoa abre. Uma chamada de validação substitui o incidente que viria depois.
Coordenadas, unidades e o que você recebe
Todos os valores são pontos PDF — setenta e dois por polegada — com a origem no canto inferior esquerdo da página, x crescendo para a direita e y para cima, exatamente o sistema de coordenadas que as anotações de campos de assinatura em PDF usam nativamente.
Em caso de sucesso, a resposta ecoa o retângulo normalizado, informa os quatro limites absolutos, a margem restante em cada lado da página, o ponto central, um quadrante legível como bottom-left, a área do campo em pontos quadrados e a porcentagem da página que ele cobre, além de uma descrição de uma linha que você pode colocar direto em um log ou trilha de auditoria.
Em caso de falha, a mensagem de erro traz os números ofensores: qual coordenada ficou abaixo de zero ou qual borda calculada excedeu qual dimensão da página. A aritmética é pura geometria de retângulos com valores arredondados para seis casas decimais, então a mesma requisição produz sempre uma saída idêntica byte a byte em qualquer máquina.
Onde ele se encaixa em um pipeline de assinatura
Use-o como portão antes de qualquer operação que grave um campo de assinatura: construtores de modelos validam cada campo ao salvar o modelo, trabalhos de assinatura em lote validam documento por documento logo antes de carimbar, e pipelines de ingestão validam quando há suspeita de incompatibilidade de tamanho de página entre o modelo e o arquivo recebido.
Como a capacidade é geometria pura sem E/S de arquivo, é rápida o bastante para rodar em cada documento de um lote sem pensar duas vezes, e determinística o bastante para que sua saída possa ser armazenada como evidência de um posicionamento verificado.
Casos de uso
Validar um modelo de assinatura antes de publicar
Valide cada campo de assinatura de um modelo contra o tamanho de página de destino ao salvá-lo, de modo que um campo mal posicionado seja detectado pelo autor, não pelo primeiro signatário.
Proteger um trabalho de assinatura em lote
Verifique o posicionamento por documento logo antes de carimbar; um trabalho que colocaria o campo fora da página falha ruidosamente naquele documento em vez de enviar silenciosamente uma assinatura invisível.
Depurar uma assinatura sumida reportada por um cliente
Reproduza o tamanho de página e o retângulo exatos do ticket de suporte e veja instantaneamente qual borda da página o campo cruzou, com os números que provam isso.
Perguntas frequentes
Quanto custa?
Também é grátis executar no seu navegador nesta página.
Ele modifica meu PDF?
Não. Ele valida apenas geometria — você envia seis números, não um arquivo. Nada é enviado, armazenado ou escrito.
Qual sistema de coordenadas ele usa?
Pontos PDF nativos: 72 pontos por polegada, origem no canto inferior esquerdo da página, x para a direita e y para cima — o mesmo sistema que as anotações de campos de assinatura usam.
Um campo exatamente na borda da página passa?
Sim. Um campo cuja borda direita coincide com a largura da página está totalmente dentro; apenas bordas estritamente além dos limites da página são rejeitadas.
O resultado é determinístico?
Sim. É aritmética pura de retângulos com arredondamento de seis casas decimais, então a mesma entrada sempre retorna uma saída idêntica byte a byte.
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/digital-sign-field \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"page_width":612,"page_height":792,"x":72,"y":72,"width":200,"height":50}'const res = await fetch("https://api.kit.forhosting.com/pdf/digital-sign-field", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"page_width": 612,
"page_height": 792,
"x": 72,
"y": 72,
"width": 200,
"height": 50
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/digital-sign-field",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"page_width": 612,
"page_height": 792,
"x": 72,
"y": 72,
"width": 200,
"height": 50
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/digital-sign-field", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"page_width":612,"page_height":792,"x":72,"y":72,"width":200,"height":50}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"page_width":612,"page_height":792,"x":72,"y":72,"width":200,"height":50}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/digital-sign-field", 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
{
"page_width": 612,
"page_height": 792,
"x": 72,
"y": 72,
"width": 200,
"height": 50
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.digital_sign_field",
"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
A API para adicionar campo de assinatura a um PDF verifica a única coisa que quebra fluxos de assinatura em silêncio: se o retângulo que você pretende usar para um campo de assinatura digital realmente cabe na página. Você envia o tamanho da página e a posição do campo em pontos PDF; a API confirma que o campo fica totalmente dentro dos limites da página e descreve o posicionamento — margens em cada lado, o quadrante onde cai o centro e quanto da página ele cobre.
Por que o posicionamento de campos de assinatura falha em produção
O endpoint add pdf signature field existe para capturar essa classe de bug no único momento em que é barato: antes de o campo ser criado. Você descreve a página e o retângulo, e a API confirma o posicionamento com uma descrição geométrica completa ou o rejeita, nomeando a borda exata que foi cruzada — pela esquerda, por baixo, além da borda direita ou além do topo.
Coordenadas, unidades e o que a API retorna
Você passa a largura e a altura da página mais o retângulo do campo como x, y, width e height.
Onde ele se encaixa em um pipeline de assinatura
O mesmo código que responde à API roda de graça no seu navegador nesta página, então um engenheiro de suporte pode reproduzir o posicionamento defeituoso de um cliente digitando os mesmos seis números que o pipeline enviou. Pague por chamada a US$ 0,002 apenas quando automatizar; explorar layouts e depurar uma coordenada específica que falha não custa nada.
Perguntas técnicas
O que acontece se o campo ficar fora da página?
A requisição falha com um erro invalid_input cuja mensagem nomeia o limite cruzado e mostra os números ofensores, por exemplo uma borda direita de 700pt em uma página de 612pt de largura.