Quién escribe esto
Me llamo Franco Kozakiewicz y soy desarrollador freelance. Vivo en Lanús, provincia de Buenos Aires, Argentina. Hago aplicaciones web para comercios chicos y para proyectos propios: catálogos mayoristas, paneles internos de gestión, generadores de presupuestos y herramientas como esta.
Extractor PDF lo programé yo, de punta a punta, y las guías del sitio las escribo con lo que fui aprendiendo mientras lo hacía. No son un refrito de otras webs: son los problemas concretos con los que me choqué al implementar la extracción y cómo los resolví.
Por qué existe esta herramienta
Buena parte de mi trabajo con comercios pasa por catálogos y listas de precios de proveedores que llegan en PDF. Nadie manda un Excel: mandan un PDF de veinte páginas con cientos de artículos, y del otro lado hay alguien copiando código, descripción y precio a mano, uno por uno.
Las herramientas que probé hacían una de dos cosas: volcaban todas las palabras en una masa sin estructura, o pedían crear una cuenta y subir el archivo a un servidor ajeno. Ninguna de las dos me servía. Así que armé la que necesitaba: una que entienda qué tipo de documento le estás dando —una lista de precios, un catálogo, una factura, un texto corrido— y devuelva la información con la estructura que ese documento realmente tiene.
Cómo está hecha
Es una sola página HTML con JavaScript, sin framework y sin proceso de compilación. Las piezas que hacen el trabajo pesado son bibliotecas de código abierto que corren dentro de tu navegador:
- pdf.js, el motor de PDF de Mozilla —el mismo que usa Firefox para mostrar PDFs—, para leer la estructura del documento: texto, coordenadas, tipografías e imágenes embebidas.
- Tesseract.js para el reconocimiento óptico de caracteres en los documentos escaneados.
- SheetJS para escribir los archivos .xlsx, y JSZip para armar el .zip de las imágenes.
Encima de eso está la parte que escribí yo: el análisis de estructura. Mide la posición, el tamaño y el peso tipográfico de cada palabra de la página para reconstruir lo que el PDF no guarda —filas, columnas, títulos, categorías, códigos y precios— y decidir de qué tipo de documento se trata. Ese análisis es el que separa una extracción útil de un volcado de palabras sueltas.
Por qué no se suben los archivos
Esta es la decisión de diseño más importante del proyecto, y quiero explicarla bien porque tiene dos motivos y los dos son reales.
El primero es de privacidad. Los PDFs que la gente necesita extraer suelen ser facturas, contratos, listas de precios con márgenes, documentos de clientes. No hay ninguna razón para que ese material pase por un servidor mío. Si el procesamiento ocurre en tu computadora, la pregunta "¿qué hacen con mis archivos?" deja de tener sentido: no hay nada que hacer con ellos porque nunca salieron de tu equipo.
Podés comprobarlo vos mismo sin creerme: abrí la herramienta, desconectá internet y procesá un PDF. Sigue funcionando. Lo único que necesita conexión es el OCR, y solo la primera vez, para descargar el modelo del idioma.
El segundo es económico, y es el que hace que sea gratis. Procesar archivos en un servidor cuesta plata: CPU, memoria, ancho de banda, almacenamiento. Ese costo hay que recuperarlo de algún lado, y por eso casi todas las herramientas parecidas terminan con límites diarios, marcas de agua o una suscripción. Al correr todo en el navegador del visitante, mi costo por usuario es cero, y por eso puedo dejarla sin límite de archivos, sin registro y sin plan pago. El sitio se sostiene con la publicidad que ves en la página.
Otras cosas que hice
Trabajo sobre todo con HTML, CSS y JavaScript sin framework, con Supabase cuando hace falta base de datos y con Netlify o Hostinger para publicar. Otro proyecto propio del mismo estilo es QRelieve, un generador de códigos QR que además los exporta como objetos listos para imprimir en 3D.
Escribime
Si un PDF no te sale bien, me interesa saberlo: es la forma en que la herramienta mejora. Podés escribirme a caifranco03@gmail.com o pasar por la página de contacto.
Probalo con tu propio PDF
Extractor PDF hace todo esto en tu navegador: el archivo no se sube a ningún servidor. Es gratis y no pide registro.