Marque páginas PDF que necesitan OCR
Marque cuatro páginas como texto, imagen, texto, imagen y sabrá que la 2 y la 4 necesitan OCR, mientras que la 1 y la 3 ya permiten buscar, con un resumen breve. Envíe solo esas páginas al reconocimiento y deje el resto. 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.
Muchos PDF mezclan páginas nativas digitales, con capa de texto seleccionable, con páginas escaneadas que se ven bien en pantalla pero no permiten copiar, buscar ni indexar. Antes de gastar presupuesto en OCR de todo el documento o de enviar el archivo a un flujo que asume texto extraíble, necesita la lista exacta de números de página sin capa de texto. Esta capacidad acepta ese mapa booleano de presencia—true si la página tiene texto extraíble, false si es solo imagen—y devuelve las páginas que necesitan OCR, las ya buscables, los conteos, la ratio de OCR y un resumen de una línea. La entrada vacía se rechaza para que nadie confunda el silencio con un éxito.
Qué significan las banderas de capa de texto y por qué importa el OCR por página
Una página PDF puede dibujar glifos que parecen texto y, aun así, guardar solo una imagen raster por debajo. Las herramientas posteriores que llaman a APIs de extracción de texto reciben cadenas vacías, la búsqueda de texto completo omite la página, los lectores de accesibilidad no anuncian nada útil y los flujos de archivo que esperan texto nativo fallan en silencio. El remedio práctico es el OCR, pero ejecutarlo en todas las páginas de un documento mixto grande malgasta tiempo y dinero cuando la mitad ya tiene capa de texto.
El contrato aquí es deliberadamente estrecho: usted ya sabe—o una sonda ligera ya midió—si cada página tiene texto extraíble. Las banderas se interpretan en el orden del documento a partir de la página uno. Esa forma permite que un trabajo por lotes haga OCR solo en las páginas marcadas, omita las ya buscables e informe la cobertura sin volver a analizar los bytes del PDF.
Qué puede hacer con ella
Listas de trabajo de OCR selectivo
Convierta una sonda de capa de texto por página en una lista base uno de páginas que aún necesitan OCR, para que los lotes omitan las ya buscables.
Tickets de remediación de accesibilidad
Abra tickets a nivel de página para páginas solo imagen sin texto extraíble, en lugar de marcar todo el documento.
Preguntas frecuentes
¿Los números de página empiezan en cero o en uno?
En uno, como numeran las personas y la mayoría de interfaces PDF. La primera bandera es la página 1, la segunda la página 2, y así sucesivamente.
¿Esta capacidad abre o hace OCR del archivo PDF?
No. Solo analiza las banderas booleanas de capa de texto que usted proporciona.
¿Qué indica la proporción de OCR?
La parte del documento que aún necesita reconocimiento: las páginas sin texto divididas entre el total. Con cuatro páginas y dos sin texto, la proporción es 0,5, es decir, la mitad del documento.
¿Por qué una página que muestra texto puede necesitar OCR?
Porque lo que se ve puede ser una foto del texto. Las páginas escaneadas suelen verse bien en pantalla pero solo guardan una imagen, así que copiar, buscar o usar un lector de pantalla no obtiene nada.
¿Qué pasa si el dato de una página no es válido?
La comprobación se detiene y nombra esa página, contada desde uno, para que usted corrija el paso que generó la lista. Una lista vacía también se rechaza, para no confundir el silencio con un éxito.
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/searchable-ocr-flag \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text_layer":[true,false,true,false]}'const res = await fetch("https://api.kit.forhosting.com/pdf/searchable-ocr-flag", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text_layer": [
true,
false,
true,
false
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/searchable-ocr-flag",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text_layer": [
true,
false,
true,
false
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/searchable-ocr-flag", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text_layer":[true,false,true,false]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text_layer":[true,false,true,false]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/searchable-ocr-flag", 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
{
"text_layer": [
true,
false,
true,
false
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.searchable_ocr_flag",
"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
Qué significan las banderas de capa de texto y por qué importa el OCR por página
Envía esa lista ordenada de banderas booleanas; este endpoint no abre el PDF. true significa que la página es buscable y no necesita OCR; false significa que es solo imagen (o carece de capa de texto) y debe encolarse para OCR. La respuesta enumera needs_ocr_pages y searchable_pages como números de página base uno, más needs_ocr_count, searchable_count, all_need_ocr, all_searchable, ocr_ratio como needs_ocr_count dividido por page_count, un array pages con has_text_layer y needs_ocr por página, y un summary legible para registros y banners de UI.
Contrato de entrada, forma de la respuesta y errores de lista vacía
Cada entrada debe ser booleana; el solver también admite los tokens numéricos cero y uno y las cadenas habituales true, false, yes, no, y, n, zero y one, de modo que exportaciones CSV o de formularios se puedan pegar sin un paso previo de conversión. Tokens inválidos en una página concreta fallan nombrando el índice de página base uno, para que pueda corregir la sonda que produjo el mapa. Combine esta salida con su propio motor de OCR o con un producto hermano de OCR de PDF cuando esté listo para procesar solo las páginas listadas. Envíe un cuerpo JSON con text_layer, un array no vacío obligatorio de banderas de presencia por página en el orden del documento. Se aceptan los alias pages, flags y has_text para el mismo array. Un array vacío, una cadena en blanco, un campo ausente o un valor null fallan con invalid_input y un mensaje que nombra text_layer e indica que se requiere al menos una bandera de página—esos fallos no se facturan. En el éxito el cuerpo devuelve page_count igual a la longitud de las banderas, needs_ocr_pages por cada false, searchable_pages por cada true, los dos conteos, all_need_ocr cuando todas las páginas necesitan OCR, all_searchable cuando ninguna lo necesita, ocr_ratio redondeado a doce decimales para pruebas estables entre runtimes, el array detallado pages y summary. Ejemplo: banderas true, false, true, false producen page_count cuatro, needs_ocr_pages dos y cuatro, searchable_pages uno y tres, needs_ocr_count dos, ocr_ratio cero punto cinco, y un resumen que indica que dos de cuatro páginas necesitan OCR.
Dónde una API de banderas de páginas que necesitan OCR aporta valor
Los escritorios de digitalización reciben carpetas mixtas: exportaciones digitales nativas intercaladas con escaneos de cama plana. Los equipos de remediación de accesibilidad necesitan una lista determinista de páginas que fallan las comprobaciones de texto seleccionable, para abrir tickets página a página en lugar de a nivel de documento. Mantenga las solicitudes pequeñas, fije en las pruebas las listas ordenadas de páginas y obtendrá una puerta reproducible entre el inventario PDF y el gasto en OCR sin montar una pila de IA documental solo para un barrido booleano. Un paso de preflight que ya midió la presencia de capa de texto puede llamar a este endpoint para producir una lista de trabajo de números de página para la cola de OCR sin reabrir archivos de cientos de páginas. Las plataformas de búsqueda y e-discovery usan las mismas banderas para decidir si un documento está listo para indexar o debe esperar al OCR, y el campo ocr_ratio alimenta paneles de calidad que miden cuánto de cada lote de entrada sigue siendo solo imagen. Como la implementación es parse de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente; la validación fallida no consume saldo.
Casos de integración
Recepción e índice listos
Decida si un PDF mixto está listo para búsqueda de texto completo o debe esperar al OCR usando needs_ocr_count y ocr_ratio en su flujo.
Preguntas técnicas
¿Cómo marco las páginas PDF que necesitan OCR?
Envíe text_layer como un array no vacío de booleanos en orden de página (true = tiene texto extraíble, false = necesita OCR). La API devuelve needs_ocr_pages, searchable_pages, conteos, ocr_ratio y un summary.
¿Qué ocurre si text_layer está vacío?
La tarea falla con invalid_input. Una lista de banderas vacía o ausente se rechaza para que nadie trate el silencio como «ninguna página necesita OCR». La validación fallida no se factura.
¿Cuánto cuesta marcar páginas PDF que necesitan OCR?
La herramienta del navegador es gratis. Las peticiones API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.