Contador de palabras de PDF: totales y promedio por página
Dos páginas con 11 y 8 palabras suman 19 palabras, 93 caracteres, 75 sin espacios y un promedio de 9,5 palabras por página. Pegue el texto de cada página en orden para revisar tesis, escritos o pruebas de imprenta frente a límites de extensión. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Contar las palabras de un PDF es una verificación rutinaria para estudiantes, editores, traductores y equipos de cumplimiento que trabajan con límites de páginas y extensión. Esta herramienta toma el texto extraído del PDF página por página —un array de cadenas en orden de página— y devuelve totales deterministas: palabras totales, caracteres totales con y sin espacios, número de páginas, el promedio de palabras por página y un desglose por página para detectar de un vistazo una página escasa o sobrecargada. Como la entrada ya es texto extraído, no hay análisis binario, ni lotería de tamaño de archivo, ni dependencia de una biblioteca PDF concreta: cualquier extractor que produzca texto por página sirve.
Cómo se calculan los recuentos de palabras, caracteres y páginas
El recuento de palabras divide el texto de cada página por los espacios en blanco Unicode y cuenta cada token no vacío, lo que coincide con el comportamiento de las barras de estado de los editores y de los contadores en línea más usados: un token con guiones como estado-del-arte cuenta como una sola palabra, y las secuencias de espacios, tabulaciones o saltos de línea colapsan en un único separador.
El recuento de caracteres es la longitud completa de la cadena de texto de la página tal como se extrajo, incluidos espacios y saltos de línea, mientras que un segundo total elimina todo espacio en blanco para comparar la longitud pura del contenido cuando el relleno de maquetación inflaría la cifra. El número de páginas es simplemente la cantidad de elementos del array de entrada, porque cada elemento representa una página del PDF en orden, así que la fidelidad por página depende del extractor usado en la etapa anterior.
El promedio de palabras por página divide las palabras totales entre el número de páginas y redondea a dos decimales, lo que facilita comparar manuscritos, informes y tesis de distinta extensión con una métrica justa. Las páginas en blanco o con solo espacios aportan cero palabras pero siguen contando como páginas, igual que lo que ve un lector al hojear un documento con páginas vacías intencionadas.
Dónde aparecen los recuentos de palabras por página de PDF en el trabajo real
Estudiantes e investigadores verifican los requisitos de extensión de tesis y disertaciones tras exportar el texto del PDF final, comprobando tanto el total global como la densidad media por página frente a las normas de la facultad. Los editores y equipos de producción que revisan pruebas maquetadas usan el desglose por página para encontrar páginas casi vacías, pliegos sobrecargados o capítulos cuya densidad se aleja mucho del promedio del libro antes de enviar los archivos a imprenta.
Los traductores y proveedores de localización estiman esfuerzo y coste a partir de los totales de palabras cuando un cliente solo puede aportar el texto exportado de un documento fuente en lugar de los archivos editables originales. Los equipos jurídicos y de cumplimiento confirman que los escritos se mantienen por debajo de los límites de palabras de tribunales o reguladores, donde superar un tope puede significar una presentación rechazada y un plazo perdido.
Los ingenieros de datos que construyen canalizaciones de documentos almacenan los recuentos de palabras y caracteres por página como métricas de calidad, marcando las páginas donde la extracción no devolvió nada, una señal fiable de páginas escaneadas como imagen que necesitan OCR en lugar de extracción de texto. Los archiveros que comparan dos versiones de un informe contrastan los recuentos por página para detectar páginas eliminadas o duplicadas en silencio.
Como esta capacidad consume texto ya extraído, se combina limpiamente con cualquier extractor previo y nunca vuelve a analizar PDF binarios; si necesita que el binario se analice por usted, esa es una capacidad distinta como pdf.stats.
Qué puede hacer con ella
Verificación de extensión de tesis y escritos
Exporte el texto del PDF por página y verifique las palabras totales y el promedio por página frente a los límites de palabras de la universidad o del tribunal antes de presentar.
Revisión de densidad de pruebas de imprenta
Examine el desglose por página en busca de páginas casi vacías o sobrecargadas y capítulos que se desvíen de la densidad media del documento.
Supervisión de la calidad de extracción
Marque las páginas con cero palabras en las canalizaciones de documentos como probables imágenes escaneadas que necesitan OCR, usando los recuentos por página como señal de calidad.
Preguntas frecuentes
¿Cómo se cuentan las palabras?
Las palabras son tokens no vacíos separados por espacios en blanco Unicode. Varios espacios, tabulaciones o saltos de línea colapsan en un solo separador, y un token con guiones cuenta como una sola palabra.
¿Las páginas en blanco cuentan?
Sí. Una página en blanco o con solo espacios aporta cero palabras pero sigue contando en el total de páginas, igual que lo que ve un lector en el documento.
¿Qué ocurre si la entrada está vacía?
Las páginas ausentes, un array vacío o páginas cuyo texto combinado no tiene palabras se tratan como errores del cliente y no se cobran.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta localmente.
¿Por qué hay dos totales de caracteres?
Uno cuenta el texto tal como se extrajo, con espacios y saltos de línea; el otro quita todos los espacios en blanco. El segundo sirve para comparar el contenido puro cuando el relleno de la maquetación infla la cifra.
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/count-words \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":["Chapter One\n\nThe quick brown fox jumps over the lazy dog.","A second page with only a few words."]}'const res = await fetch("https://api.kit.forhosting.com/pdf/count-words", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
"Chapter One\n\nThe quick brown fox jumps over the lazy dog.",
"A second page with only a few words."
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/count-words",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
"Chapter One\n\nThe quick brown fox jumps over the lazy dog.",
"A second page with only a few words."
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/count-words", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":["Chapter One\\n\\nThe quick brown fox jumps over the lazy dog.","A second page with only a few words."]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":["Chapter One\n\nThe quick brown fox jumps over the lazy dog.","A second page with only a few words."]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/count-words", 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
{
"pages": [
"Chapter One\n\nThe quick brown fox jumps over the lazy dog.",
"A second page with only a few words."
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.count_words",
"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
La entrada vacía —páginas ausentes, un array vacío o páginas sin ninguna palabra— se rechaza con un error invalid_input claro en lugar de ceros silenciosos.
Cómo se calculan los recuentos de palabras, caracteres y páginas
Todas las reglas son aritmética pura de cadenas, sin llamadas de red, sin aleatoriedad y sin dependencia del reloj, de modo que una entrada idéntica siempre produce un JSON idéntico byte a byte que puede someter a pruebas de referencia y almacenar en caché con seguridad. Las páginas que no son cadenas se rechazan elemento a elemento con un mensaje que indica el número de página problemático, y el texto combinado que supera el límite de caracteres documentado falla de inmediato con invalid_input, de modo que una sola solicitud sobredimensionada no puede monopolizar la memoria del Worker.
Qué envía y qué recibe a cambio
Un caso clásico de éxito es un artículo de dos páginas cuyos totales son la suma de ambas, con el promedio situado entre las dos cifras por página, y un documento con páginas en blanco intencionadas sigue informando el recuento de páginas correcto aunque aporte cero palabras. Utilice el formulario gratuito del navegador para comprobaciones rápidas de pegar y revisar sobre texto exportado, y luego llame al contrato idéntico desde scripts cuando audite archivos completos de documentos extraídos. Envíe un único campo obligatorio llamado pages: un array de cadenas con el texto extraído de cada página del PDF en orden de lectura. Por comodidad, los alias text y content se aceptan como una sola cadena, que se trata como un documento de una página, y pages_text funciona como alias de array al integrar clientes antiguos. En caso de éxito, la respuesta devuelve pages, total_words, total_characters, total_characters_no_spaces, words_per_page_average, un array per_page con el número de página, words, characters y characters_no_spaces de cada página, y operation con el valor pdf_count_words. Los casos de error son explícitos y nunca se cobran: un campo pages ausente, un valor que no sea array, un array vacío, elementos que no sean cadenas, un número de páginas o una longitud combinada por encima de los límites documentados, y páginas cuyo texto combinado no contiene palabras generan invalid_input con un mensaje que indica exactamente qué regla falló. El precio de las llamadas API exitosas es la base publicada de $0.002 por elemento; los fallos de validación no consumen saldo prepagado.
Dónde aparecen los recuentos de palabras por página de PDF en el trabajo real
El precio de la API es la base publicada de $0.002 por elemento exitoso, y la entrada inválida nunca se cobra, lo que mantiene previsibles las auditorías masivas de archivos.
Preguntas técnicas
¿Qué entrada espera esta herramienta?
Un campo llamado pages: un array de cadenas con el texto extraído de cada página del PDF en orden. Los alias text o content se aceptan como una sola cadena y se tratan como un documento de una página.