Borrar metadatos PDF
Entregue los metadatos leídos de un PDF, como Title, Author, Creator, CreationDate y un número de seguimiento interno, y los recibe vacíos junto con la lista ordenada de los cinco nombres eliminados. El archivo PDF en sí 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.
Elimine los metadatos de un PDF después de extraerlos del documento y antes de compartir, registrar o enviar el objeto a otro proceso. Proporcione el bloque de metadatos como objeto; esta capacidad devuelve un objeto de metadatos vacío junto con una lista alfabética de los campos eliminados. No inspecciona ni reescribe los bytes del PDF. En su lugar, ofrece a las aplicaciones un contrato de saneamiento pequeño, determinista y fácil de probar, auditar y combinar con un lector o escritor de PDF existente.
Proporcione el bloque de metadatos extraído
Comience con el objeto de metadatos producido por un analizador de PDF, un servicio documental o un formulario. Coloque ese objeto en el campo metadata de la solicitud. Sus propiedades pueden usar nombres habituales de información PDF, como Title, Author, Subject, Keywords, Creator, Producer, CreationDate o ModDate, pero la capacidad no limita el vocabulario a una lista fija.
También elimina las propiedades personalizadas. Esto es importante porque las organizaciones suelen añadir etiquetas internas de flujo de trabajo, identificadores de plantilla, nombres de sistemas de origen o ajustes de exportación que pueden revelar más información que los campos estándar. La solicitud debe contener un objeto real.
Los valores pueden ser cadenas, números, booleanos, nulos, matrices u objetos anidados, porque la eliminación depende de la presencia del campo y no de interpretar su contenido.
Interprete el resultado vacío y el informe de eliminación
Una respuesta correcta siempre contiene metadata como objeto vacío. También incluye removed, una matriz ordenada alfabéticamente con cada campo enumerable propio encontrado en el bloque de metadatos proporcionado. Informar de los nombres hace observable el saneamiento: usted puede confirmar que Author, Creator, las fechas o una propiedad de seguimiento personalizada estaban presentes y se borraron sin conservar el valor original en la respuesta.
El orden alfabético es intencional. Los objetos de JavaScript pueden construirse con distintos órdenes de inserción, pero los conjuntos equivalentes de campos deben producir, siempre que sea posible, la misma confirmación. Por ello, el algoritmo enumera los campos propios del objeto, ordena sus nombres con una configuración regional inglesa fija y devuelve únicamente esos nombres.
Nunca recorre propiedades heredadas, nunca contacta con otro servicio y nunca utiliza un reloj ni una fuente aleatoria. Un objeto de metadatos vacío es válido y produce una lista removed vacía, algo útil en procesos idempotentes: limpiar un registro que ya se había limpiado no falla ni inventa un cambio.
Ubíquelo correctamente en un flujo de PDF
Utilice esta capacidad entre la extracción de metadatos y el paso que escribe, almacena o comparte el registro saneado. Si el entregable final es un archivo PDF, un escritor de PDF todavía debe aplicar el objeto vacío al documento y eliminar de sus bytes las propiedades del diccionario de información o XMP. Esta capacidad no pretende editar un documento binario.
Esa separación resulta útil cuando su sistema ya controla el acceso a los archivos, pero necesita una política coherente para borrar registros descriptivos. Por ejemplo, un servicio de recepción documental puede leer los metadatos, enviar aquí el bloque, registrar únicamente los nombres de los campos eliminados en un evento de auditoría e indicar a su escritor que guarde el reemplazo vacío. Considere la lista removed como confirmación de nombres de campos, no como prueba de que se reescribió un archivo PDF independiente.
Qué puede hacer con ella
Sanear un registro documental extraído
Sustituya el bloque de metadatos generado por un analizador por un objeto vacío antes de que el registro entre en otro servicio.
Crear un evento de auditoría respetuoso con la privacidad
Registre qué nombres de campos de metadatos se eliminaron sin copiar sus valores potencialmente sensibles en los registros.
Aplicar una única política editorial
Proporcione a diversas rutas de entrada y exportación de PDF la misma regla determinista para borrar metadatos estándar y personalizados.
Preguntas frecuentes
¿Modifica esta capacidad los bytes del PDF?
No. Opera sobre un objeto de metadatos ya extraído. Utilice un escritor de PDF para aplicar el resultado vacío a un archivo documental.
¿Qué campos de metadatos se eliminan?
Todos los campos enumerables propios del objeto de metadatos proporcionado, incluidos los nombres de propiedades estándar y personalizadas.
¿Se devuelven los valores de los metadatos eliminados?
No. Solo se comunican los nombres de los campos eliminados, por lo que la respuesta no conserva los valores originales.
¿Qué ocurre si los metadatos ya están vacíos?
La llamada finaliza correctamente con un objeto de metadatos vacío y una matriz removed vacía.
¿También se borran las propiedades personalizadas?
Sí. Se elimina cualquier entrada, no solo las habituales como Title o Author. También desaparecen etiquetas internas de flujo de trabajo, identificadores de plantilla o nombres del sistema de origen, que suelen revelar más que los datos estándar.
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/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)Ejemplo de solicitud
{
"metadata": {
"Title": "Board minutes",
"Author": "Example User",
"Creator": "Office Suite",
"CreationDate": "D:20260725103000Z"
}
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.strip_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
Proporcione el bloque de metadatos extraído
Una cadena que contenga JSON sigue siendo una cadena y se rechaza en lugar de analizarse de forma implícita; también se rechaza una matriz, ya que las entradas numeradas no representan un mapa de propiedades de metadatos. Analice cualquier JSON serializado antes de llamar a la capacidad para que el contrato de entrada siga siendo explícito y predecible.
Ubíquelo correctamente en un flujo de PDF
Un flujo editorial puede aplicar la misma operación antes de exponer detalles de documentos mediante una API. Cada elemento cuesta $0.002 mediante la API, y la implementación determinista y sin red también permite un uso repetible en el navegador.
Preguntas técnicas
¿Puedo proporcionar una cadena JSON?
No. Analícela antes. El campo metadata debe ser un objeto; las cadenas o matrices producen un error invalid_input.
¿Cuánto cuesta una llamada a la API?
Procesar un objeto de metadatos cuesta $0.002.