Establecer metadatos PDF
Un título escrito con espacios de más vuelve como Quarterly Report, y las palabras clave Finance y finance se funden en una, con la primera grafía. Ordene las propiedades de un PDF antes de archivarlo o publicarlo; el archivo no se modifica. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Establezca metadatos PDF fiables antes de que un documento entre en un archivo, sistema editorial o canal de entrega. Esta capacidad comprueba que la entrada PDF use una representación admitida, exige un título significativo que no esté vacío y normaliza el autor, el asunto y las palabras clave en un objeto coherente. Elimina espacios accidentales, unifica espacios repetidos, descarta palabras clave vacías y quita duplicados conservando la primera grafía útil. El resultado es determinista y está listo para un escritor PDF posterior, sin acceso a la red ni cambios dependientes del estado de ejecución.
Prepare un PDF válido y un objeto de metadatos
La capacidad valida la representación, pero no descarga una URL remota ni reescribe los bytes del documento. Incluya las propiedades propuestas dentro del objeto de metadatos. El título es obligatorio porque un título vacío impide identificar el archivo en resultados de búsqueda, archivos, pestañas del navegador y sistemas de gestión documental.
Autor, asunto y palabras clave son opcionales. Cada propiedad escalar debe ser una cadena; las palabras clave pueden ser una matriz de cadenas o una cadena separada por comas o punto y coma. Esta forma explícita facilita diagnosticar fallos antes de que los valores lleguen a la escritura del PDF.
También separa el transporte de entrada de los datos descriptivos, de modo que los metadatos normalizados puedan registrarse, revisarse, compararse o pasarse a otra capacidad sin volver a extraerlos.
Comprenda cómo funciona exactamente la normalización
La normalización del texto es deliberadamente conservadora. Se eliminan los espacios iniciales y finales, y cualquier secuencia interna de espacios, tabulaciones o saltos de línea se convierte en un solo espacio normal. Se conservan las mayúsculas, la puntuación, los acentos y el contenido significativo.
Si un autor o asunto opcional queda vacío tras recortarlo, se omite del resultado en vez de devolverse como nulo o como marcador vacío. Las palabras clave reciben el mismo tratamiento. Se descartan las entradas vacías y los duplicados se comparan sin distinguir mayúsculas y minúsculas, por lo que «Informe anual» e «informe anual» producen una sola palabra clave y se conserva la grafía de la primera aparición.
El orden también sigue la primera aparición útil, lo que mantiene resultados predecibles para pruebas y cachés posteriores. El título aplica las mismas reglas, pero no puede desaparecer: un valor ausente, no textual o compuesto solo por espacios genera un error de entrada no válida.
Use el resultado normalizado en un flujo documental seguro
La respuesta devuelve la representación PDF validada junto con un objeto de metadatos que contiene el título normalizado obligatorio y solo los campos opcionales con contenido útil. Es una etapa de preparación y validación, no un editor binario de PDF. Un escritor posterior puede tomar la respuesta, establecer los campos de información PDF o XMP correspondientes y aplicar sus propias reglas de firmas, cifrado, conservación y serialización de bytes.
Esta división resulta útil cuando los metadatos proceden de formularios, hojas de cálculo, sistemas de contenido o exportaciones automáticas: rechace pronto los registros mal formados, revise por separado los valores limpios e invoque el procesamiento costoso únicamente para los registros aprobados. También ayuda en migraciones masivas, donde los espacios incoherentes y las palabras clave repetidas crean facetas de búsqueda ruidosas en miles de documentos. Como esta capacidad no solicita la red ni almacena estado, funciona de manera uniforme en navegador y servidor y ofrece el mismo contrato normalizado en ambos.
Qué puede hacer con ella
Validar formularios editoriales
Compruebe los títulos proporcionados por editores y normalice los campos descriptivos opcionales antes de escribir el PDF definitivo.
Depurar migraciones de archivos
Elimine espacios incoherentes y palabras clave duplicadas al preparar registros antiguos para un archivo nuevo.
Proteger la generación automática de PDF
Detenga informes sin título antes de iniciar una etapa costosa de renderizado o escritura de metadatos PDF.
Preguntas frecuentes
¿Esta capacidad modifica los bytes del PDF?
No. Valida la representación PDF y devuelve metadatos normalizados para un escritor PDF posterior.
¿Qué campos de metadatos se admiten?
Título, autor, asunto y palabras clave. El título es obligatorio; los demás campos son opcionales.
¿Pueden enviarse las palabras clave en una sola cadena?
Sí. La cadena se divide por comas o punto y coma. También puede proporcionar una matriz de cadenas.
¿Cómo se tratan las palabras clave duplicadas?
Los duplicados se eliminan sin distinguir mayúsculas tras normalizar espacios, conservando la primera grafía y el orden.
¿Qué ocurre si el título está vacío?
Se rechaza. El título es obligatorio porque uno en blanco no sirve para identificar el archivo en búsquedas, archivos o pestañas del navegador, y un título hecho solo de espacios también cuenta como vacío.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/pdf/set-metadata \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf","metadata":{"title":"Quarterly Report","author":"Ada Lovelace","subject":"Operations","keywords":["finance","quarterly report"]}}'const res = await fetch("https://api.kit.forhosting.com/pdf/set-metadata", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf",
"metadata": {
"title": "Quarterly Report",
"author": "Ada Lovelace",
"subject": "Operations",
"keywords": [
"finance",
"quarterly report"
]
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/set-metadata",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf",
"metadata": {
"title": "Quarterly Report",
"author": "Ada Lovelace",
"subject": "Operations",
"keywords": [
"finance",
"quarterly report"
]
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/set-metadata", 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","metadata":{"title":"Quarterly Report","author":"Ada Lovelace","subject":"Operations","keywords":["finance","quarterly report"]}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf","metadata":{"title":"Quarterly Report","author":"Ada Lovelace","subject":"Operations","keywords":["finance","quarterly report"]}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/set-metadata", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"pdf": "https://ejemplo.com/documento.pdf",
"metadata": {
"title": "Quarterly Report",
"author": "Ada Lovelace",
"subject": "Operations",
"keywords": [
"finance",
"quarterly report"
]
}
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.set_metadata",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 200 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Prepare un PDF válido y un objeto de metadatos
Envíe el PDF en una de las formas admitidas: un URI de datos PDF en base64, una cadena sin procesar que empiece por la firma PDF, una URL HTTPS cuya ruta identifique un PDF o una referencia de carga del kit.
Comprenda cómo funciona exactamente la normalización
Ningún reloj, valor aleatorio, servicio externo ni estado del entorno interviene, por lo que una entrada JSON idéntica siempre produce la misma salida.
Use el resultado normalizado en un flujo documental seguro
Las llamadas cuestan $0.002 por elemento, por lo que el coste crece de forma predecible con los registros validados.
Preguntas técnicas
¿Qué ocurre si el título solo contiene espacios?
La solicitud falla con un error invalid_input porque la normalización dejaría el título vacío.
¿Cuánto cuesta una solicitud?
Cada elemento validado cuesta $0.002, sin recargos de red ni de modelo.