PDFMove
Cómo optimizar un PDF para la web (linealizar)
Cómo hacerlo

Cómo optimizar un PDF para la web (linealizar)

7 min de lectura

El usuario que hace clic en el catálogo de 200 páginas que has puesto en tu web espera a que baje el archivo entero para ver la primera página. Con una conexión lenta eso pueden ser treinta segundos, y la mayoría de la gente no espera tanto. La linealización —que también se conoce como "optimización para web" o "visualización web rápida"— resuelve exactamente ese problema.

Qué hace la linealización

En un PDF normal, los objetos están repartidos dentro del archivo sin ningún orden lógico. Para poder dibujar la primera página, el visor tiene que ir primero al final del archivo y leer la tabla de referencias cruzadas (xref), localizar desde ahí el objeto catálogo, recorrer después el árbol de páginas y reunir los recursos de la primera página de distintos puntos del archivo.

En un archivo local, esos saltos llevan milisegundos. Pero si el archivo llega por la red, para poder hacerlos tiene que haber bajado entero.

En un PDF linealizado, la disposición cambia por completo:

  1. Al principio del archivo hay un diccionario especial con la información de "soy un archivo linealizado, mi primera página está aquí, mi tabla de pistas está allí".
  2. Justo después vienen todos los objetos de la primera página: su flujo de contenido, las tipografías que usa, sus imágenes.
  3. Después vienen las tablas de pistas (hint tables): un mapa que indica en qué rango de bytes del archivo está cada página.
  4. A continuación se colocan en orden los objetos de las páginas restantes.

Resultado: en cuanto el navegador descarga los primeros cientos de kilobytes del archivo ya puede dibujar la primera página. Si el usuario salta a la página 47, consulta la tabla de pistas y pide solo el rango de bytes de esa página, sin descargar las 45 anteriores.

Paso 1: Determina si la linealización te va a servir de algo

No te saltes este paso ni pases directamente a la operación, porque en la mayoría de escenarios la linealización no cambia nada.

Para que aporte algo tienen que cumplirse tres condiciones a la vez:

1. El archivo se abrirá en el navegador. Si el usuario descarga el archivo y lo abre en local (enlace de descarga, adjunto de correo), el beneficio es cero: el archivo ya está entero en su ordenador.

2. El archivo es lo bastante grande. Un archivo de 300 KB baja en menos de un segundo; el usuario no notará si está linealizado o no. El beneficio empieza a percibirse a partir de unos cuantos megabytes y se hace evidente por encima de diez.

3. El servidor admite peticiones byte-range. El navegador tiene que poder decir "dame este rango del archivo". Casi todos los servidores web modernos lo admiten por defecto, pero algunas configuraciones de CDN, los archivos generados dinámicamente y ciertos servidores de aplicaciones no lo hacen.

Si se cumplen las tres, adelante. Si no, la linealización es un paso innecesario.

Paso 2: Piensa antes en la compresión

El orden importa. La linealización reordena el archivo; la compresión recodifica el contenido. Si comprimes después, la herramienta de compresión reescribirá el archivo y con toda probabilidad destruirá la estructura linealizada.

El orden correcto: comprime primero y lineariza después.

Ten en cuenta además esto: en términos de rendimiento web, reducir a la mitad el tamaño del archivo suele ser una ganancia mayor que la linealización. Si un catálogo de 20 MB baja a 6 MB, se descargará entero rápidamente aunque no esté linealizado. Hacer las dos cosas da el mejor resultado, pero si tienes que elegir, la compresión va primero.

Paso 3: Lineariza

Abre la herramienta de optimización para web y sube tu archivo. El proceso se ejecuta en tu navegador; el archivo no se envía al servidor.

La herramienta lee el archivo, reordena los objetos, calcula las tablas de pistas y genera un PDF nuevo. El contenido no cambia en absoluto: el texto sigue siendo texto, las imágenes siguen siendo imágenes y no hay pérdida de calidad.

Tu expectativa debe ser esta: el tamaño del archivo se quedará prácticamente igual y, de hecho, crecerá muy poco por las tablas de pistas añadidas (típicamente un 1-2 %). Si tu archivo se ha reducido, probablemente la herramienta también ha limpiado objetos sin usar; eso es un extra, no el efecto propio de la linealización.

Paso 4: Verifica el resultado

Hay varias formas de comprobar que la linealización ha funcionado:

Mira el principio del archivo. Si abres el PDF con un editor de texto (con cuidado, sin guardarlo), en las primeras líneas deberías ver la palabra clave /Linearized. Es la prueba directa de que el archivo está linealizado.

Pruébalo en condiciones reales. Sube el archivo a tu servidor y ábrelo en el navegador. Abre la pestaña de Red de las herramientas de desarrollo del navegador y aplica una simulación de conexión lenta. En un archivo linealizado, la primera página debe aparecer antes de que termine la descarga.

Prueba de salto de página. Mientras el archivo baja, salta a la última página. En un archivo linealizado esa página llega rápido; si no lo está, tendrás que esperar a que baje todo el archivo.

Para quién marca una diferencia real

Escenarios concretos:

| Situación | Beneficio | |---|---| | Catálogo de producto de 50 MB publicado en la web | Alto | | Manual de 300 páginas que se lee en línea | Alto | | Archivo de informes grandes en la web de un organismo | Alto | | Una aplicación con visor de PDF integrado en el navegador | Alto | | Folleto de 500 KB | Prácticamente nulo | | Factura enviada por correo | Ninguno | | Contrato archivado | Ninguno | | Formulario que se va a imprimir | Ninguno |

Regla general: si el usuario va a leer el archivo sin descargarlo y el archivo es grande, linealiza. En cualquier otro caso es innecesario.

Situaciones en las que se estropea la linealización

Un archivo linealizado puede perder esa propiedad en cuanto se hace cualquier edición sobre él:

  • Actualización incremental. Cuando añades una anotación a un PDF y lo guardas, muchos programas añaden los cambios al final del archivo. Eso rompe la estructura linealizada, porque a partir de ahí hay datos al final que es necesario leer.
  • Añadir una firma. Poner una firma digital suele usar actualización incremental.
  • Añadir o borrar páginas. La estructura cambia y las tablas de pistas quedan inválidas.
  • Compresión. El archivo se reescribe.

Por eso la linealización debe ser el último paso de tu flujo de trabajo. Termina todas las ediciones, lineariza y publica.

Errores frecuentes

Confundirla con la compresión. La linealización no reduce el archivo. Si el tamaño también importa para el rendimiento web, tendrás que comprimir aparte.

Hacerlo en el orden equivocado. Si linearizas y luego comprimes, la primera operación se pierde.

Aplicarlo a todos los archivos. En los archivos pequeños y en los que se van a descargar no aporta nada; solo añades un paso innecesario al flujo de trabajo.

Olvidarse del lado del servidor. Si no hay soporte de byte-range, el navegador descargará el archivo entero aunque esté linealizado. Además, el servidor tiene que enviar correctamente la cabecera Content-Length y no servir el archivo con codificación de transferencia comprimida (gzip): en una respuesta con gzip, el byte-range no sirve de nada.

En resumen

La linealización es una operación que reordena los objetos de un PDF con la lógica de "la primera página primero" y añade una tabla de pistas que indica dónde está cada página. Así, el navegador puede mostrar la primera página sin esperar al archivo completo y saltar directamente a la página que se quiera. No reduce el archivo, no cambia la calidad, solo reordena la estructura. Su beneficio solo aparece en archivos grandes publicados en la web y con servidores que admiten byte-range; si no se dan esas condiciones, saltársela es la decisión correcta. Y si la aplicas, hazlo al final del flujo de trabajo, cuando hayas terminado todas las ediciones y la compresión.

Preguntas frecuentes

¿Linealizar reduce el tamaño del archivo?

No, no lo reduce; de hecho suele aumentarlo muy poco. La linealización reordena los objetos dentro del archivo y añade una tabla de pistas (hint table) adicional; no se descarta ni se recodifica ningún contenido. Si quieres reducir el tamaño, tendrás que usar la herramienta de compresión. También se pueden hacer las dos cosas: comprime primero y lineariza después.

¿Sirve de algo la linealización en un PDF que se descarga?

En la práctica no. Todo el beneficio de la linealización está en poder mostrar la primera página sin que el archivo haya bajado del todo. Si el usuario descarga el archivo y lo abre en local, el archivo ya está entero en su ordenador y el orden deja de importar. El beneficio aparece en archivos que se abren con el visor integrado del navegador y cuyo servidor admite peticiones byte-range.

¿Qué significa que mi servidor admita byte-range?

Significa que un servidor HTTP puede enviar un rango concreto de bytes en lugar del archivo entero. El navegador puede pedir 'dame los bytes del 0 al 50000 de este archivo'. Casi todos los servidores web modernos lo admiten y suele estar activado por defecto. Si no se admite, el beneficio de la linealización desaparece, porque el navegador tendrá que descargar igualmente el archivo completo.

¿Debo linealizar todos los PDF?

No. Tiene sentido en los archivos que publicas en tu web, que los usuarios van a abrir en el navegador y que superan unos cuantos megabytes. Para una factura pequeña que envías por correo, un contrato que archivas o un documento que solo se va a imprimir no aporta nada y añade un paso innecesario al flujo de trabajo.

Pruébalo ahora mismo con Web İçin Optimize Et.

Probar Web İçin Optimize Et