Cómo funciona pdfhq
Todas las herramientas se ejecutan dentro de tu navegador. Esta página nombra los motores que lo hacen, las licencias que llevan y la forma de comprobar tú mismo que no se envía nada a ninguna parte.
¿Qué se ejecuta y dónde?
Todo se ejecuta en tu navegador. Los motores están compilados a WebAssembly y cargados en la página, así que abrir un archivo lo entrega a código que ya está corriendo en tu máquina, y el resultado se escribe de vuelta sin ninguna petición de red por medio.
El trabajo pesado ocurre en workers y no en el hilo principal de la página, y por eso la interfaz sigue respondiendo mientras se reescribe un documento de doscientas páginas. En este producto no hay servidor de proceso: no operamos ninguno, así que la pregunta de qué guarda un servidor ni siquiera aparece.
¿Qué motor hace qué?
Seis, cada uno en el trabajo que mejor hace. Todos son de código abierto con licencia permisiva, y todos se sirven desde este dominio en lugar de buscarse en otro sitio en el momento en que los necesitas.
| Motor | De qué se encarga | Licencia | Compilación |
|---|---|---|---|
| qpdf | Estructura, cifrado, linealización y reparación | Apache-2.0 | qpdf 12.2.0 |
| PDFium | Renderizar páginas y leer texto, imágenes y campos de formulario | BSD-3-Clause | @embedpdf/pdfium 2.15.0 |
| pdf-lib | Componer documentos, dibujar y rellenar formularios | MIT | @cantoo/pdf-lib 2.8.2 |
| Tesseract | Reconocimiento de caracteres | Apache-2.0 | tesseract-wasm 0.11.0 |
| mozjpeg | Recodificación reproducible de imágenes para la compresión | BSD-3-Clause | @jsquash/jpeg 1.6.0 |
| node-signpdf | Firmas con certificado | MIT | @signpdf 3.3.0 |
¿Por qué compiláis qpdf vosotros mismos?
Porque la compilación de WebAssembly ya hecha no puede reparar un archivo dañado. qpdf recupera una tabla de referencias cruzadas rota capturando el error que lanza su analizador, y esa compilación tiene las excepciones de C++ eliminadas, así que el código de recuperación nunca puede ejecutarse. Lo medimos con once tipos de daño, incluido el más fácil de reparar que existe, y falló en todos.
Por eso compilamos qpdf 12.2.0 nosotros mismos, a partir del código fuente original sin modificar y con las excepciones de WebAssembly activadas, en un contenedor fijado por digest y desde un archivo de fuentes fijado por suma de comprobación. La compilación es reproducible, los archivos de licencia y aviso de qpdf viajan junto al binario, y tu navegador comprueba ese binario contra su hash esperado antes de ejecutarlo. La reparación ahora reconstruye las tablas que debe, y un archivo que de verdad no tiene arreglo lo dice en lugar de fallar en silencio.
¿Cómo compruebo que no se sube nada?
En tu propio navegador, en unos treinta segundos, sin nada que no tengas ya. Hazlo con un archivo que no te importe abrir y observa qué hace la página.
- Abre las herramientas de desarrollo de tu navegador y ve al panel de Red. En Chrome, Edge y Firefox es F12; en Safari, activa antes el menú Desarrollo.
- Vacía la lista y filtra por Fetch y XHR para ver peticiones de datos y no imágenes ni hojas de estilo.
- Arrastra un PDF a cualquier herramienta del sitio y llévala hasta el resultado final, descarga incluida.
- Lee la lista. Las peticiones de binarios de motor desde este dominio aparecen la primera vez que usas una herramienta, y en ningún momento aparece nada que lleve tu documento.
¿Hay una prueba más dura?
Sí, y es más rápida. Usa una herramienta una vez para que los motores queden en caché, después desconéctate por completo de la red y úsala otra vez. El trabajo termina sin conexión, lo cual solo es posible porque tu archivo nunca necesitó ir a ninguna parte.
¿Qué se guarda en caché y durante cuánto tiempo?
La interfaz y los binarios de los motores. Cada binario vive en una dirección que incluye su versión, así que una compilación nueva es una dirección nueva y una en caché nunca puede quedarse obsoleta. Se guardan un año y las comparten todas las herramientas que usan el mismo motor.
Los documentos no se guardan nunca. Nada de lo que abres y nada de lo que produces lo escribe este sitio en almacenamiento, así que vaciar la caché te cuesta una descarga y no pierde ningún trabajo.
¿Qué no puede hacer esta colección?
Lo suficiente como para escribirlo. Todo lo que sigue es un límite real y no un hueco que pensemos cerrar el mes que viene, y allí donde una herramienta se topa con uno también lo dice en la propia herramienta.
La compresión no reduce las fuentes
Ningún motor con licencia permisiva reduce de forma fiable las fuentes incrustadas a los caracteres usados, así que aquí ningún ajuste dice hacerlo. En un documento de texto con varias tipografías eso deja un suelo: reescribir el archivo elimina objetos duplicados y sin usar, y las fuentes se quedan exactamente como están.
La reparación recupera estructura, no contenido
Una tabla de referencias cruzadas dañada se reconstruye y el documento vuelve a abrirse, lo que cubre la mayoría de archivos que un lector rechaza. Un archivo cuyos objetos o cuyo tráiler han desaparecido de verdad no se puede reconstruir de la nada, y la reparación lo comunica en lugar de producir un resultado con buena pinta.
HEIC depende de tu navegador
Las fotos HEIC las descodifica el soporte de imagen de tu propio navegador y no una biblioteca que enviemos nosotros, porque todas las disponibles llevan una licencia copyleft que este proyecto no usa. Eso funciona en dispositivos Apple, que es de donde salen estos archivos; en el resto la herramienta dice claramente que no puede descodificarlo y señala la vía del JPEG.
La extracción lee algunos formatos de imagen, no todos
Guardar las imágenes de un PDF funciona con las fotografías JPEG y con los flujos sin pérdida que llevan capturas, gráficos y logotipos. JPEG 2000, fax CCITT, LZW, paletas indexadas y separaciones CMYK necesitan descodificadores que ninguna biblioteca permisiva ofrece, o una conversión de color que tendría que adivinar el resultado, así que esas imágenes se cuentan y se omiten — y la herramienta dice que no pudo descodificarlas en lugar de fingir que el documento no tiene imágenes.
Editar texto añade y tapa, no recompone
Un PDF registra dónde se sitúa cada glifo, no a qué frase pertenece, así que sustituir una palabra no puede empujar el resto de la línea. El editor coloca texto nuevo y tapa el viejo, lo que cubre correcciones y rellenos; no vuelve a componer un párrafo, y lo que dice hacerlo está haciendo otra cosa.
El OCR da una capa buscable, no una transcripción
La precisión del reconocimiento la decide el escaneo. Una página limpia de texto impreso a 300 ppp vuelve casi perfecta; la escritura a mano, las fotos torcidas y los escaneos pálidos no. Lee el resultado antes de fiarte de él, porque el reconocimiento no puede avisarte de cuándo se equivocó.
Los formatos de ofimática no se convierten
Convertir Word, Excel y PowerPoint necesita un motor de ofimática que no cabe en un navegador con un tamaño razonable, así que aquí no se ofrece. Convertirlos en otro sitio y traer el PDF de vuelta es la vía honesta, y mantiene la promesa de que en este sitio no se sube nada.
Los archivos muy grandes los limita tu dispositivo
El proceso ocurre en la memoria de tu navegador, así que un teléfono rechazará un documento que un portátil maneja sin esfuerzo. Cuando un trabajo se acerca al límite la herramienta lo dice antes de empezar en lugar de fallar a medias, y dividir el documento primero suele ser la salida.
¿Y si algo de aquí está mal?
Dínoslo y lo corregimos. Las versiones, licencias y límites de esta página están comprobados contra las compilaciones que realmente servimos, y la fecha bajo el título se mueve cuando cambian las palabras. Una corrección va por el formulario de contacto.