Perché i PDF generati da MS Word sono così grandi?


70

Ho creato un semplice documento MS Word contenente solo questa frase:

Questo è un piccolo documento.

Nient'altro. Quindi ho salvato questo documento come DOCX e PDF. Ecco le dimensioni del file:

DOCX: 12 kB
PDF: 89 kB

Questa differenza è enorme , tecnicamente, e inizia davvero a infastidirmi quando per lo più documenti testuali che sono decine di KB in DOCX iniziano a generare PDF grandi centinaia di KB . Cosa c'è di così inefficiente nel formato PDF? O solo Word sta usando un terribile algoritmo di output?

A proposito, le impostazioni di output PDF sono state impostate per creare il file più piccolo possibile:

Opzioni di output PDF


28
La mia ipotesi è che il PDF incorpori il carattere, che è necessario se un documento deve essere veramente portatile.
AFH,

2
Sì, il sottoinsieme di caratteri è incorporato. Potrebbe essere quello. Ho provato a ripetere la stessa frase alcune centinaia di volte e la dimensione del file PDF è cresciuta solo di 4 kB, il che è giusto. (DOCX è rimasto su 12kB, il che non sorprende in quanto è un formato zippato e il testo ripetuto non richiederà quasi alcun nuovo byte.)
Borek Bernard,

1
@AFH Non incorpora Arial. i.stack.imgur.com/aUZgt.png
MonkeyZeus,

1
Pensandoci dal punto di vista della complessità di Kolmogorov, Microsoft Word è più grande del tuo normale visualizzatore di PDF, di molto più di qualche centinaio di KB.
Hobbs,

8
Penso che la vera domanda sia perché il tuo formato di elaborazione testi è molto più grande dell'equivalente LaTeX ... :-p
Toby Speight

Risposte:


104

Se apri il PDF in notepad ++ troverai:

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

e quell'oggetto viene referenziato qui alla fine nell'istruzione / 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

I caratteri utilizzati dal documento Word vengono incorporati nel PDF in modo che il pdf sia autonomo.

Ho usato questo slide-deck per decifrare le istruzioni PDF.

Se vuoi impedire che i caratteri siano incorporati nel file PDF, assicurati che il tuo documento Word utilizzi uno dei 14 caratteri standard disponibili nei visualizzatori PDF, (fonte Wikipedia )

  • Times New Roman> Times (v3) (in corsivo normale, corsivo, grassetto e grassetto)
  • Corriere Nuovo> Corriere (in obliquo regolare, obliquo, grassetto e grassetto)
  • Arial> Helvetica (v3) (in obliquo regolare, obliquo, grassetto e grassetto)
  • Simbolo> Simbolo
  • Wingdings> Zapf Dingbats


2
Sidenote: vale la pena leggerlo il mazzo di diapositive collegato (una presentazione Powershell). Molto dettagliato. Non perdere i commenti in cui spiega la struttura di un PDF
nixda,

3

Questo mi è successo molte volte in Microsoft Word quando ho cercato di esportare un semplice manoscritto in PDF. Un documento di Word di 5-8 pagine, con dimensioni di ~ 50 KB, finirà per essere un file PDF da 10+ MB, che è troppo grande per essere ragionevolmente inviato per e-mail a qualcuno.

La risposta di Rene è sulla buona strada, il problema è che i caratteri vengono incorporati nel documento, ma il semplice utilizzo di uno dei caratteri standard non risolverà necessariamente il problema.

Tutti i miei documenti erano in Times New Roman, non usando nulla di più elaborato di grassetto e corsivo. O almeno così pensavo. Si scopre che ho abilitato la crenatura automatica nel mio modello predefinito (per ovvi motivi ). Durante l'esportazione in PDF, Word stava effettivamente incorporando ciascuna di queste legature come oggetto carattere separato nel documento, gonfiandolo oltre ogni credenza.

La correzione è semplice, devi solo ricordarti di farlo ogni volta:

  1. Seleziona tutto il testo nel documento.
  2. Formato → Carattere → Avanzate
  3. Deseleziona "Crenatura per caratteri"

È interessante notare che puoi lasciare legature, alternative contestuali e altre funzionalità di tipografia avanzata abilitate; non hanno alcun effetto percepibile sulla dimensione del PDF risultante.

Riesportare il documento come PDF ed è fino a un centinaio di KB. Sfortunatamente, la crenatura è scadente, quindi non consiglierei di stampare in questo modo, ma funziona benissimo per l'invio di un documento via e-mail.


-3

Per dare una risposta meno tecnica che può aiutare è che i PDF usano i vettori (es: equazioni matematiche) per descrivere tutto ciò che vedi. Tutte le curve e le linee sono definite da equazioni matematiche e quindi ci saranno necessariamente molte informazioni da conservare, in particolare quando si hanno immagini nei documenti.

Il vantaggio di questo è che puoi teoricamente ingrandire in modo infinitamente vicino senza perdere alcuna risoluzione o dettaglio, perché le linee e le curve non hanno larghezza, quindi possono ridimensionarsi con il tuo zoom.

Proprio come il recente cambio di carattere di Google ha ridotto la dimensione del logo da ~ 14KB a ~ 300B, i caratteri più semplici probabilmente aiuteranno a ridurre la dimensione del file.


4
Quell'analogia non funziona. Affatto. La modifica del logo di Google non è stata solo il carattere, ma anche da gradienti a piatti che fanno la differenza. Inoltre, esportare un documento in una bitmap di grandi dimensioni sarà molto più grande di un font + testo. Le equazioni matematiche, come hai detto in modo fuorviante, sono solo coppie di coordinate intere, di cui ci sono forse poche decine per glifo. E dal momento che è un carattere non ha bisogno di essere ripetuto per ogni lettera.
Joey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.