Convertir PDF a Word
Un PDF es un documento terminado, no uno de trabajo: en cuanto alguien necesita corregir una errata, actualizar una cláusula o reutilizar un informe, el formato se resiste. Este endpoint convierte un PDF en un DOCX realmente editable para que el archivo se pueda volver a trabajar en lugar de transcribirlo desde cero.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Por qué el PDF resiste la edición a propósito
El formato PDF nació a principios de los años noventa para garantizar que un documento se vea igual en cualquier equipo, lo que significa que guarda las páginas como diseños fijos de glifos y posiciones, no como texto fluido y estructurado. Esa decisión de diseño es justamente lo que hace al PDF confiable para compartir y pésimo para editar: no hay un párrafo donde hacer clic, ninguna lista para renumerar, solo formas que resultan legibles como palabras. doc.pdf_to_word invierte esa compensación para los casos donde editar importa más que mantener el diseño fijo.
Qué ocurre realmente durante la conversión
Envíe el archivo a POST /doc/pdf-to-word, reciba un task_id de inmediato y obtenga el DOCX resultante por webhook o mediante un enlace firmado válido por 24 horas cuando la tarea termine. Detrás de esa única llamada, la geometría de la página se reconstruye en párrafos, encabezados, tablas y listas, de modo que el resultado se abre en cualquier procesador de texto como un documento en el que realmente se puede escribir, no como una imagen que finge serlo.
Dónde tiene límites la conversión
Los PDF basados en texto —los exportados desde un procesador de texto o generados por software— se convierten con la estructura más fiel, porque el texto subyacente ya está ahí para extraer y reacomodar. Los PDF escaneados, que en realidad son solo imágenes de páginas, necesitan reconocimiento de caracteres primero, y los diseños densos a varias columnas o muy elaborados nunca encajarán a la perfección en un formato de documento lineal; espere un borrador cercano y utilizable, no un clon pixel por pixel.
Quién recurre a esto en lugar de retranscribir
Equipos legales sacan un contrato antiguo de un archivo en PDF para marcar cambios sobre una nueva versión. Departamentos de recursos humanos actualizan una política que solo sobrevive como un PDF escaneado de hace años. Estudiantes e investigadores convierten un artículo académico para extraer y citar secciones sin transcribir párrafos a mano. En todos los casos, la alternativa era retranscribir manualmente, y este endpoint reemplaza esa hora de trabajo por una sola llamada a la API.
Cómo encaja en un flujo de documentos
Como la tarea es asíncrona y se cobra por solicitud más por página, encaja de forma natural tanto en un trabajo por lote que recorre una carpeta de PDF durante la noche como en una conversión puntual disparada desde un ticket de soporte. El endpoint está terminando su despliegue, así que conviene planear la integración esperando disponibilidad próxima, bajo el mismo contrato asíncrono —enviar, recibir un task_id, recoger el resultado— que sigue el resto de la API.
Qué puede hacer con ella
Marcar cambios en un contrato antiguo
Un despacho legal convierte un acuerdo firmado en PDF de vuelta a DOCX para hacer seguimiento de cambios y negociar una enmienda en un procesador de texto.
Recuperar un manual de políticas escaneado
Un equipo de recursos humanos convierte un manual del empleado de hace años, guardado solo como PDF escaneado, en un documento que por fin puede actualizar.
Citar un artículo de investigación
Un estudiante de posgrado convierte un artículo académico en PDF para extraer y citar pasajes en una revisión de literatura sin retranscribirlos.
Migración de archivo por lotes
Un departamento de gestión documental ejecuta un proceso nocturno que convierte una carpeta de informes históricos en PDF a DOCX para un sistema de gestión documental.
Preguntas frecuentes
¿Cómo convierto un PDF a Word con la API?
Envíelo a POST /doc/pdf-to-word, guarde el task_id que recibe y obtenga el archivo DOCX por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API PDF a Word?
No, no hay plan gratuito ni prueba. Cuesta $0.051 por solicitud más $0.003 por página, y una conversión fallida nunca se cobra.
¿Funciona con PDF escaneados?
Los PDF escaneados son imágenes de páginas, así que necesitan reconocimiento de caracteres antes de convertirse; los PDF basados en texto se convierten con una estructura más precisa.
¿El DOCX se verá exactamente igual que el PDF?
Los documentos simples se mapean de forma cercana; los diseños complejos con varias columnas o mucho diseño gráfico se convierten en una aproximación editable cercana, no en una copia pixel por pixel.
¿El endpoint ya está disponible?
Está terminando su despliegue y debería empezar a aceptar tareas pronto; integre contra el contrato documentado ahora para estar listo cuando abra.
¿Puedo convertir PDF grandes o con muchas páginas?
Sí, el precio escala por página además de la tarifa base por solicitud, así que tanto informes largos como cartas cortas se manejan con la misma llamada.
¿Puedo convertir muchos PDF a la vez?
Sí, envíe cada archivo como su propia tarea asíncrona y reciba los resultados en DOCX por webhook a medida que cada uno termina.
¿Qué pasa con mi archivo después de la conversión?
El PDF y el DOCX resultante se eliminan después del período de retención y nunca se usan para entrenar ningún modelo.
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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/doc/pdf-to-word \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/contrato.pdf"}'const res = await fetch("https://api.kit.forhosting.com/doc/pdf-to-word", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/contrato.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/pdf-to-word",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/contrato.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/pdf-to-word", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/contrato.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/contrato.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/pdf-to-word", 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/contrato.pdf"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.pdf_to_word",
"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. |
413 | input_too_large | El archivo supera el límite de tamaño. |