Por que os PDFs gerados a partir do MS Word são tão grandes?

70

Eu criei um documento simples do MS Word contendo apenas esta frase:

Este é um documento pequeno.

Nada mais. Depois salvei este documento como DOCX e PDF. Aqui estão os tamanhos dos arquivos:

DOCX: 12 kB
PDF: 89 kB

Essa diferença é enorme , tecnicamente, e realmente começa a me incomodar quando a maioria dos documentos de texto com dezenas de kB no DOCX começa a gerar PDFs com centenas de kB de tamanho. O que há de tão ineficiente no formato PDF? Ou é apenas o Word usando algum algoritmo de saída terrível?

BTW, as configurações de saída do PDF foram definidas para criar o menor arquivo possível:

Opções de saída em PDF

Borek Bernard
fonte
28
Meu palpite é que o PDF incorpora a fonte, necessária para que um documento seja verdadeiramente portátil.
AFH
2
Sim, o subconjunto de fontes está incorporado. Pode ser isso. Tentei repetir a mesma frase algumas centenas de vezes e o tamanho do arquivo PDF cresceu apenas 4 kB, o que é quase certo. (DOCX ficou no 12kB que não é surpresa já que é um formato compactado e texto repetido terá quase nenhuma novas bytes.)
Borek Bernard
11
@AFH Não incorpora o Arial. i.stack.imgur.com/aUZgt.png
MonkeyZeus
11
Pensando nisso do ponto de vista da complexidade de Kolmogorov, o Microsoft Word é maior que o seu visualizador de PDF comum, em muito mais do que algumas centenas de kB.
Hbbs #
8
Eu acho que a verdadeira questão é por que o seu formato de processamento de texto é muito maior que o equivalente a LaTeX ... :-p
Toby Speight

Respostas:

104

Se você abrir o PDF no bloco de notas ++, 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

e esse objeto é referenciado aqui no final da instrução / 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

As fontes usadas pelo documento do Word são incorporadas ao PDF para que o pdf seja autocontido.

Usei esse slide-deck para decifrar as instruções em PDF.

Se você deseja impedir que as fontes sejam incorporadas no arquivo PDF, verifique se o documento do Word usa um dos 14 tipos de letra padrão disponíveis nos visualizadores de PDF (fonte Wikipedia )

  • Times New Roman> Times (v3) (em itálico, itálico, negrito e itálico negrito)
  • Courier New> Courier (em oblíquo regular, oblíquo, negrito e negrito)
  • Arial> Helvetica (v3) (em regular, oblíquo, negrito e oblíquo negrito)
  • Símbolo> Símbolo
  • Wingdings> Zapf Dingbats
rene
fonte
6
Relacionados: superuser.com/questions/607840/...
Borek Bernard
2
Nota: O deck de slides vinculado (uma apresentação do Powershell) vale a pena lê-lo. Muito detalhado. Não perca os comentários em que ele explica a estrutura de um PDF
nixda 4/15
3

Isso já aconteceu comigo muitas vezes no Microsoft Word ao tentar exportar um simples manuscrito para PDF. Um documento do Word de 5 a 8 páginas, com tamanho de ~ 50 KB, terminará em um arquivo PDF com mais de 10 MB, que é muito grande para ser enviado por e-mail a alguém.

A resposta de Rene está no caminho certo - o problema é que as fontes são incorporadas ao documento - mas apenas o uso de um dos tipos de letra padrão não resolve necessariamente o problema.

Todos os meus documentos estavam em Times New Roman, usando nada mais sofisticado que negrito e itálico. Ou assim eu pensei. Acontece que eu tenho o kerning automático ativado no meu modelo padrão (por razões óbvias ). Ao exportar para PDF, o Word estava incorporando cada uma dessas ligaduras como um objeto de fonte separado no documento, inchando-o além de qualquer crença.

A correção é simples, basta lembrar de fazê-lo sempre:

  1. Selecione todo o texto no documento.
  2. Formatar → Fonte → Avançado
  3. Desmarque a opção "Kerning for fonts"

Curiosamente, você pode deixar ligaduras, alternativas contextuais e outros recursos avançados de tipografia ativados; eles não têm efeito perceptível no tamanho do PDF resultante.

Reexporte o documento como PDF e ele reduza para cerca de cem KB. Infelizmente, o kerning é insignificante, então eu não recomendaria imprimir dessa maneira, mas funciona bem para enviar um documento por e-mail.

Cody Gray
fonte
-3

Para fornecer uma resposta menos técnica que pode ajudar, os PDFs usam vetores (ou seja: equações matemáticas) para descrever tudo o que você vê. Todas as curvas e linhas são definidas por equações matemáticas e, portanto, haverá necessariamente muita informação para reter, principalmente quando você tiver imagens em seus documentos.

O benefício disso é que, teoricamente, você pode ampliar infinitamente, sem perder nenhuma resolução ou detalhe, porque as linhas e curvas não têm largura, para que possam ser dimensionadas com o seu zoom.

Assim como a recente alteração de fonte do Google reduziu o tamanho do logotipo de ~ 14KB para ~ 300B, fontes mais simples provavelmente ajudarão a reduzir o tamanho do arquivo.

Ben Sandeen
fonte
4
Essa analogia não funciona. Em absoluto. A alteração do logotipo do Google não foi apenas a fonte, mas também de gradientes para planos, o que faz a diferença de tamanho. Além disso, a exportação de um documento para um bitmap grande será muito maior que uma fonte + texto. As equações matemáticas, como você enganosamente coloca, são apenas pares de coordenadas inteiros, dos quais há talvez algumas dezenas por glifo. E como é uma fonte, não precisa ser repetida para todas as letras.
Joey