¿Por qué los PDF generados a partir de MS Word son tan grandes?

70

Creé un documento simple de MS Word que contiene solo esta oración:

Este es un documento pequeño.

Nada más. Luego guardé este documento como DOCX y PDF. Aquí están los tamaños de archivo:

DOCX: 12 kB
PDF: 89 kB

Esta diferencia es enorme , técnicamente, y realmente comienza a molestarme cuando la mayoría de los documentos de texto que son decenas de kB en DOCX comienzan a generar archivos PDF de cientos de kB de gran tamaño. ¿Qué tiene de ineficiente el formato PDF? ¿O solo Word está usando un algoritmo de salida terrible?

Por cierto, la configuración de salida de PDF se estableció para crear el archivo más pequeño posible:

Opciones de salida de PDF

Borek Bernard
fuente
28
Supongo que el PDF incrusta la fuente, lo cual es necesario para que un documento sea verdaderamente portátil.
AFH
2
Sí, el subconjunto de fuentes está incrustado. Eso podría ser. Intenté repetir la misma oración unas cientos de veces y el tamaño del archivo PDF solo creció 4 kB, lo cual es correcto. (DOCX permaneció en 12kB, lo cual no es sorprendente, ya que es un formato comprimido y el texto repetido apenas requerirá nuevos bytes.)
Borek Bernard
1
@AFH No incrusta Arial. i.stack.imgur.com/aUZgt.png
MonkeyZeus
1
Pensando en ello desde el punto de vista de la complejidad de Kolmogorov, Microsoft Word es más grande que su visor de PDF promedio, en mucho más que unos pocos cientos de KB.
hobbs
8
Creo que la verdadera pregunta es por qué su formato de procesamiento de texto es mucho más grande que el equivalente de LaTeX ... :-p
Toby Speight

Respuestas:

104

Si abre el PDF en notepad ++, encontrará:

9 0 obj
<</Filter/FlateDecode/Length 79100/Length1 171804>>
stream
xœì}    XTGºvÕ9½/t7Ðl
..... many more bytes  ...   ëH|  
endstream
endobj
10 0 obj

y ese objeto se hace referencia aquí al final en la instrucción / FontFile2:

6 0 obj
<</Type/FontDescriptor/FontName/ABCDEE+Calibri/Flags 32/ItalicAngle 0/Ascent 750/Descent -250/CapHeight 750/AvgWidth 521/MaxWidth 1743/FontWeight 400/XHeight 250/StemV 52/FontBBox[ -503 -250 1240 750] /FontFile2 9 0 R>>
endobj

Las fuentes utilizadas por el documento de Word se incrustan en el PDF, por lo que el pdf es autónomo.

Utilicé este mazo de diapositivas para descifrar las instrucciones en PDF.

Si desea evitar que las fuentes se incrusten en el archivo PDF, asegúrese de que su documento de Word utilice uno de los 14 tipos de letra estándar disponibles en los visores de PDF (fuente Wikipedia )

  • Times New Roman> Times (v3) (en regular, cursiva, negrita y negrita cursiva)
  • Courier New> Courier (en oblicuo regular, oblicuo, negrita y negrita)
  • Arial> Helvética (v3) (en oblicuo regular, oblicuo, negrita y negrita)
  • Símbolo> Símbolo
  • Wingdings> Simbolos Zapf
René
fuente
66
Relacionado: superuser.com/questions/607840/…
Borek Bernard
2
Nota al margen: vale la pena leer la presentación de diapositivas vinculada (una presentación de Powershell). Muy detallado. No te pierdas los comentarios donde explica la estructura de un PDF
nixda
3

Esto me ha sucedido muchas veces en Microsoft Word al intentar exportar un manuscrito simple a PDF. Un documento de Word de 5–8 páginas, ~ 50 KB de tamaño, terminará como un archivo PDF de más de 10 MB, que es demasiado grande para enviarlo por correo electrónico razonablemente a alguien.

La respuesta de Rene está en el camino correcto: el problema es que las fuentes se incrustan en el documento, pero el solo uso de uno de los tipos de letra estándar no necesariamente resolverá el problema.

Todos mis documentos estaban en Times New Roman, usando nada más elegante que negrita y cursiva. O eso pensé. Resulta que tengo el kerning automático habilitado en mi plantilla predeterminada (por razones obvias ). Al exportar a PDF, Word en realidad estaba incorporando cada una de esas ligaduras como un objeto de fuente separado en el documento, hinchándolo más allá de toda creencia.

La solución es simple, solo debes recordar hacerlo cada vez:

  1. Seleccione todo el texto en el documento.
  2. Formato → Fuente → Avanzado
  3. Desmarca "Kerning para fuentes"

Curiosamente, puede dejar ligaduras, alternativas contextuales y otras características avanzadas de tipografía habilitadas; no tienen ningún efecto perceptible en el tamaño del PDF resultante.

Vuelva a exportar el documento como PDF, y se reduce a un centenar de KB. Desafortunadamente, el interletraje es deficiente, por lo que no recomendaría imprimir de esta manera, pero funciona bien para enviar un documento por correo electrónico.

Cody Gray
fuente
-3

Para dar una respuesta menos técnica que pueda ayudar es que los PDF usan vectores (es decir, ecuaciones matemáticas) para describir todo lo que ves. Todas las curvas y líneas están definidas por ecuaciones matemáticas, por lo que necesariamente habrá mucha información para contener, especialmente cuando tenga imágenes en sus documentos.

El beneficio de esto es que teóricamente puede acercarse infinitamente sin perder resolución o detalle, ya que las líneas y curvas no tienen ancho, por lo que pueden escalar con su zoom.

Al igual que el cambio de fuente reciente de Google redujo el tamaño del logotipo de ~ 14KB a ~ 300B, las fuentes más simples probablemente ayudarán a reducir el tamaño de su archivo.

Ben Sandeen
fuente
44
Esa analogía no funciona. En absoluto. El cambio de logotipo de Google no fue solo la fuente, sino también de gradientes a planos, lo que hace la diferencia de tamaño. Además, exportar un documento a un mapa de bits grande será mucho más grande que una fuente + texto. Las ecuaciones matemáticas, como usted lo expresa de manera engañosa, son solo pares de coordenadas enteros, de los cuales tal vez hay unas pocas docenas por glifo. Y dado que es una fuente, no es necesario repetirla para cada letra.
Joey