Pourquoi les PDF générés à partir de MS Word sont-ils si volumineux?

70

J'ai créé un simple document MS Word contenant uniquement cette phrase:

Ceci est un petit document.

Rien d'autre. Ensuite, j'ai enregistré ce document au format DOCX et PDF. Voici les tailles de fichiers:

DOCX: 12 ko
PDF: 89 ko

Techniquement, la différence est énorme et cela commence vraiment à me gêner lorsque la plupart des documents textuels de plusieurs dizaines de ko dans DOCX commencent à générer des PDF de plusieurs centaines de ko . En quoi le format PDF est-il si inefficace? Ou bien Word utilise-t-il un algorithme de sortie terrible?

BTW, les paramètres de sortie PDF ont été définis pour créer le plus petit fichier possible:

Options de sortie PDF

Borek Bernard
la source
28
Mon hypothèse est que le PDF incorpore la police, ce qui est nécessaire pour qu'un document soit réellement portable.
AFH
2
Oui, le sous-ensemble de polices est incorporé. C'est peut-être ça. J'ai essayé de répéter la même phrase plusieurs centaines de fois et la taille du fichier PDF n'a augmenté que de 4 ko, ce qui est tout à fait correct. (DOCX est resté sur 12 Ko, ce qui n’est pas surprenant, car il s’agit d’un format compressé et de textes répétés ne prendront pratiquement pas de nouveaux octets.)
Borek Bernard
1
@AFH Cela n'inclut pas Arial. i.stack.imgur.com/aUZgt.png
MonkeyZeus
1
Si l’on réfléchit du point de vue de la complexité de Kolmogorov, Microsoft Word est plus volumineux que votre visualiseur de PDF moyen, de plus de quelques centaines de ko.
Hobbs
8
Je pense que la vraie question est de savoir pourquoi votre format de traitement de texte est tellement plus volumineux que son équivalent LaTeX ... :-p
Toby Speight

Réponses:

104

Si vous ouvrez le PDF dans Notepad ++, vous trouverez:

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

et cet objet est référencé ici à la fin dans l'instruction / 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

Les polices utilisées par le document Word sont incorporées dans le PDF, de sorte que le fichier PDF est autonome.

J'ai utilisé cette diapositive pour déchiffrer les instructions au format PDF.

Si vous souhaitez empêcher les polices d'être incorporées dans le fichier PDF, assurez-vous que votre document Word utilise l'une des 14 polices de caractères standard disponibles dans les lecteurs PDF, (source Wikipedia ).

  • Times New Roman> Times (v3) (en italique normal, gras et italique gras)
  • Courrier New> Courier (en oblique régulière, oblique et audacieuse)
  • Arial> Helvetica (v3) (en oblique régulière, audacieuse et oblique audacieuse)
  • Symbole> Symbole
  • Wingdings> Zapf Dingbats
rene
la source
6
Connexes: superuser.com/questions/607840/…
Borek Bernard
2
Note: La diapositive liée (une présentation de Powershell) mérite d'être lue. Très détaillé Ne manquez pas les commentaires où il explique la structure d'un PDF
nixda
3

Cela m'est souvent arrivé dans Microsoft Word lorsque j'essayais d'exporter un manuscrit simple au format PDF. Un document Word de 5 à 8 pages, d’une taille d’environ 50 Ko, se transforme en un fichier PDF de plus de 10 Mo.

La réponse de René est sur la bonne voie - le problème est que les polices sont incorporées dans le document - mais l'utilisation de l'une des polices de caractères standard ne résoudra pas nécessairement le problème.

Tous mes documents étaient au format Times New Roman et n’utilisaient rien de plus sophistiqué que le gras et l’italique. Ou alors j'ai pensé. Il se trouve que le crénage automatique est activé dans mon modèle par défaut (pour des raisons évidentes ). Lors de l'exportation au format PDF, Word intégrait chacune de ces ligatures en tant qu'objet de police distinct dans le document, le gonflant au-delà de toute croyance.

Le correctif est simple, vous devez juste vous rappeler de le faire à chaque fois:

  1. Sélectionnez tout le texte du document.
  2. Format → Police → Avancé
  3. Décocher "Crénage pour les polices"

Il est intéressant de noter que vous pouvez laisser les ligatures, les alternatives contextuelles et d’autres fonctionnalités de typographie avancées activées. ils n'ont aucun effet perceptible sur la taille du fichier PDF résultant.

Ré-exportez le document au format PDF et ne disposez plus que d'une centaine de Ko. Malheureusement, le crénage est insuffisant, je ne recommanderais donc pas l'impression de cette façon, mais cela fonctionne bien pour l'envoi d'un document par courrier électronique.

Cody Gray
la source
-3

Pour donner une réponse moins technique qui puisse aider, les PDF utilisent des vecteurs (c'est-à-dire des équations mathématiques) pour décrire tout ce que vous voyez. Toutes les courbes et les lignes sont définies par des équations mathématiques. Il y aura donc forcément beaucoup d'informations à conserver, en particulier lorsque vous avez des images dans vos documents.

L'avantage de cela est que vous pouvez théoriquement zoomer à l'infini sans perdre la résolution ou les détails, car les lignes et les courbes n'ont pas de largeur et peuvent donc être redimensionnées avec votre zoom.

Tout comme la modification récente des polices par Google a réduit la taille du logo de ~ 14 Ko à ~ 300 Ko, des polices plus simples vous aideront probablement à réduire la taille de votre fichier.

Ben Sandeen
la source
4
Cette analogie ne fonctionne pas. Du tout. Le changement de logo de Google ne concernait pas seulement la police de caractères, mais aussi les dégradés en dégradés, ce qui fait toute la différence de taille. De plus, l'exportation d'un document dans une grande image bitmap sera beaucoup plus grande qu'une police + texte. Les équations mathématiques, comme vous l'avez dit à tort, ne sont que des paires de coordonnées entières, dont il existe peut-être quelques douzaines par glyphe. Et comme il s’agit d’une police, il n’est pas nécessaire de la répéter pour chaque lettre.
Joey