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


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 en tant que DOCX et un PDF. Voici les tailles de fichier:

DOCX: 12 ko
PDF: 89 ko

Cette différence est énorme, techniquement, et cela commence vraiment à me déranger lorsque la plupart du temps des documents textuels sont des dizaines de kB dans DOCX commencer à générer des PDF qui sont des centaines de ko grand. Qu'est-ce qui est si inefficace dans le format PDF? Ou est-ce juste Word en utilisant un algorithme de sortie terrible?

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

PDF output options


69
2017-09-30 08:08


origine


Je suppose que le PDF incorpore la police, ce qui est nécessaire pour qu'un document soit réellement portable. - AFH
Oui, le sous-ensemble de polices est intégré. C'est peut-être ça. J'ai essayé de répéter la même phrase quelques centaines de fois et la taille du fichier PDF n'a augmenté que de 4 Ko, ce qui est à peu près correct. (DOCX est resté sur 12 Ko, ce qui n’est pas une surprise car il s’agit d’un format compressé et que le texte répété ne nécessite pratiquement pas de nouveaux octets.) - Borek Bernard
@AFH Il n'intègre pas Arial. i.stack.imgur.com/aUZgt.png - MonkeyZeus
En y repensant du point de vue de la complexité de Kolmogorov, Microsoft Word est plus volumineux que votre lecteur de PDF moyen, de plusieurs centaines de Ko. - hobbs
Je pense que la vraie question est de savoir pourquoi votre format de traitement de texte est tellement plus grand que l’équivalent LaTeX ... :-p - Toby Speight


Réponses:


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 de 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 afin que le pdf soit autonome.

j'ai utilisé ce slide-deck pour déchiffrer les instructions PDF.

Si vous souhaitez empêcher l’incorporation des polices dans le fichier PDF, assurez-vous que votre document Word utilise l’une des 14 polices de caractères standard disponibles dans les visionneuses PDF (source Wikipédia)

  • Times New Roman> Times (v3) (en italique, gras, gras et gras)
  • Courier New> Courier (en oblique, oblique, gras et oblique)
  • Arial> Helvetica (v3) (en oblique, oblique, gras et oblique)
  • Symbole> Symbole
  • Wingdings> Zapf Dingbats

102
2017-09-30 08:46



En relation: superuser.com/questions/607840/ - Borek Bernard
Sidenote: Le pont coulissant lié (une présentation Powershell) mérite d'être lue. Très détaillé Ne manquez pas les commentaires où il explique la structure d'un PDF - nixda


Cela m’est arrivé à plusieurs reprises dans Microsoft Word lorsque je tentais d’exporter un simple manuscrit au format PDF. Un document Word de 5 à 8 pages, d'une taille d'environ 50 Ko, se terminera par un fichier PDF de 10 Mo ou plus, ce qui est beaucoup trop important pour être envoyé par courrier électronique à quelqu'un.

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 d'une des polices standard ne résoudra pas nécessairement le problème.

Tous mes documents étaient en Times New Roman, n'utilisant rien de plus sophistiqué que le gras et l'italique. Ou alors j'ai pensé. Il s'avère que j'ai automatique crénage activé dans mon modèle par défaut (pour Des raisons évidentes). Lors de l'exportation au format PDF, Word intégrait en réalité chacune de ces ligatures en tant qu'objet de police distinct dans le document, ce qui le rendait incontrôlable.

Le correctif est simple, il vous suffit de vous rappeler de le faire à chaque fois:

  1. Sélectionnez tout le texte dans le document.
  2. Format → Police → Avancé
  3. Décochez la case "Kerning for fonts"

Fait intéressant, vous pouvez laisser les ligatures, les alternatives contextuelles et d’autres fonctions de typographie avancées activées; ils n'ont aucun effet perceptible sur la taille du PDF résultant.

Ré-exportez le document au format PDF et sa taille est réduite à une centaine de Ko. Malheureusement, le crénage est inférieur à la normale, alors je ne vous recommande pas d’imprimer de cette manière, mais cela fonctionne bien pour envoyer un document par courrier électronique.


2
2018-02-15 10:54





Pour donner une réponse moins technique qui pourrait aider, les fichiers PDF utilisent des vecteurs (par exemple, 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, et il y aura donc forcément beaucoup d'informations à conserver, en particulier lorsque vos documents contiennent des images.

L'avantage de ceci est que vous pouvez théoriquement zoomer à l'infini sans perdre de résolution ou de détail, car les lignes et les courbes n'ont pas de largeur, elles peuvent donc s'adapter à votre zoom.

Tout comme le changement de police récent de Google a réduit la taille du logo de ~ 14 Ko à ~ 300, des polices plus simples contribueront probablement à réduire la taille de votre fichier.


-3
2017-10-01 16:13



Cette analogie ne fonctionne pas. Du tout. Le changement de logo de Google n'était pas seulement la police, mais aussi les dégradés à plat qui font la différence de taille. De plus, l'exportation d'un document sur une grande image sera beaucoup plus grande qu'une police + un texte. Les équations mathématiques, comme vous l'avez dit à tort, ne sont que des paires de coordonnées entières, dont il y a peut-être quelques dizaines de glyphes. Et comme il s'agit d'une police, il n'est pas nécessaire de la répéter pour chaque lettre. - Joey