Parar o Microsoft Word 2010 de suavizar as capturas de tela?

30

Quando insiro capturas de tela JPEG no Microsoft Word, elas as suavizam em vez de preservar os pixels originais do bitmap. Quando, em seguida, imprimo em PDF (usando o Acrobat Distiller), dependendo das configurações da minha amostra reduzida, recebo capturas de tela borradas ou tamanhos de arquivo muito grandes.

O que eu quero:

Gostaria que o Word e o Acrobat deixassem os bitmaps em paz para que eles passassem pelo processo com seus pixels intactos. É assim que a imagem original se parece quando você aumenta o zoom:

O que eu quero

O que eu ganho:

É assim que o documento do Word é quando você insere a mesma imagem e aumenta o zoom. Quando impresso em PDF, todos esses pixels extras resultam em um arquivo muito maior.

O que eu ganho

Arquivos de exemplo:

  • Test.png (56K) Um exemplo de arquivo de imagem de captura de tela
  • Test.docx (69K) Um arquivo do Word que não contém mais que esta imagem
  • Test.PDF (9.4MB) Um arquivo PDF impresso a partir do arquivo do Word usando o Distiller, com toda a redução de escala desativada
  • Test2.PDF (98K) Um arquivo PDF gerado usando a ferramenta "Salvar como PDF" do Word 2010 (observe a qualidade muito baixa da imagem compactada)

Edit: Isso é com o Word 2010 - atualizei as tags para refletir isso.


Edit: Eu confirmei que o OpenOffice não tem esse problema. Abri o Test.docx (mencionado acima) e o exportei como PDF do OO (escolhendo "compactação sem perdas" em Imagens nas opções), e a imagem sai ilesa.

Infelizmente, o OpenOffice gerencia a formatação em documentos do Word mais complexos que eu criei; portanto, não posso simplesmente criar os documentos no Word e usar OO para renderizar os PDFs; Eu teria que mudar para o OO completamente, o que é um passo maior do que estou preparado para dar agora.

Caudill de ervas
fonte
Como você as está colando? Bitmap, metarquivo avançado, JPEG, GIF, PNG, metarquivo do Windows?
Rhys Gibson
São arquivos JPEG (salvos do Photoshop com qualidade máxima) inseridos no documento usando "Inserir imagem do arquivo".
amigos estão
1
Você já tentou um formato de arquivo alternativo (sem perdas) (por exemplo, PNG)? Se você tiver sorte, será muito menos provável que o Word e o Distiller tentem recompactar com presteza.
DMA57361
PNG tem os mesmos problemas (acabei de adicionar um exemplo acima).
Herb Caudill
Problema interessante que você está tendo aqui ... o objetivo final aqui é reduzir o tamanho do PDF?
James Mertz

Respostas:

9

O Word talvez apenas renderize uma imagem com escala superior e a envie dessa maneira como entrada da impressora (presumo que o Distiller funcione como uma impressora). Nesse caso, é bom para impressoras normais, mas ineficiente para impressoras falsas que produzem arquivos PDF.

Por exemplo, o pdfLaTeX incorpora corretamente a imagem no arquivo de saída. Verifique meu PDF enviado para a galeria min.us: Incorporando imagem no documento LaTeX

O importante é que pilha de produção de PDF você está usando. Se tentar outra impressora PDF, como o PDFCreator , ótimo e gratuito , não resolver o problema, tente usar a exportação dedicada de PDF, ou seja, não funcione como impressora. As versões recentes do AFAIK do Word possuem exportação de PDF embutida; portanto, se for implementado corretamente, você obterá um arquivo pequeno, graças à incorporação de imagens usadas no documento.

EDIÇÃO ENORME

A galeria foi renomeada para Incorporando imagem PNG no LaTeX vs Word

Eu olhei mais detalhadamente o meu mytest.pdfgerado pelo pdfLaTeX e o seu test2.pdfgerado pelo Word.

mytest.pdf test2.pdf

Vamos começar com a descompactação. Se você procurar um arquivo não compactado, poderá identificar facilmente o início do fluxo da imagem ( <<...>>streamlinha com os parâmetros Largura e Altura, o mesmo que em test.png, por exemplo , 176x295), que termina com a endstreamtag. Peek time.

(ADVERTÊNCIA neste ponto, assume-se que o pdftk esteja na versão 1.41)

test2.pdf

$ pdftk test2.pdf output test2uc.pdf uncompress
$ sed '\,^<</Width 176[^>]*/Height 295[^>]*>>stream$,!d' test2uc.pdf
<</Width 176/BitsPerComponent 8/Interpolate true/Height 295/Filter[/DCTDecode]/Subtype/Image/Length 20003/ColorSpace/DeviceRGB/Type/XObject>>stream
$ sed '1,\,^<</Width 176[^>]*/Height 295[^>]*>>stream$,d;/^endstream$/,$d' test2uc.pdf > test2stream
$ xxd test2stream | head -10
0000000: ffd8 ffe0 0010 4a46 4946 0001 0101 0048  ......JFIF.....H
0000010: 0048 0000 ffe1 005c 4578 6966 0000 4d4d  .H.....\Exif..MM
0000020: 002a 0000 0008 0004 0302 0002 0000 0016  .*..............
0000030: 0000 003e 5110 0001 0000 0001 0100 0000  ...>Q...........
0000040: 5111 0004 0000 0001 0000 0b13 5112 0004  Q...........Q...
0000050: 0000 0001 0000 0b13 0000 0000 5068 6f74  ............Phot
0000060: 6f73 686f 7020 4943 4320 7072 6f66 696c  oshop ICC profil
0000070: 6500 ffe2 0c58 4943 435f 5052 4f46 494c  e....XICC_PROFIL
0000080: 4500 0101 0000 0c48 4c69 6e6f 0210 0000  E......HLino....
0000090: 6d6e 7472 5247 4220 5859 5a20 07ce 0002  mntrRGB XYZ ....
$ file test2stream 
test2stream: JPEG image data, JFIF standard 1.01

Portanto, o Word está fornecendo JPEG em vez de PNG em sua saída interna para processamento adicional de PDF. Apenas Uau! O mesmo pode acontecer ao enviar a saída para a impressora.

test2stream.jpg

mytest.pdf

$ pdftk mytest.pdf output mytestuc.pdf uncompress
$ sed '\,^<</Width 176[^>]*/Height 295[^>]*>>stream$,!d' mytestuc.pdf
<</Width 176/BitsPerComponent 8/Height 295/Subtype/Image/Length 155760/ColorSpace/DeviceRGB/Type/XObject>>stream
$ sed '1,\,^<</Width 176[^>]*/Height 295[^>]*>>stream$,d;/^endstream$/,$d' mytestuc.pdf > myteststream
$ xxd myteststream | head -10
0000000: ebeb ebea eaea ecec eceb ebeb ebeb ebeb  ................
0000010: ebeb ebeb ebec ecec ebeb ebeb ebeb ebeb  ................
0000020: ebeb ebeb ebeb ebeb ebeb ebeb ebeb ebeb  ................
0000030: ebeb ebea eaea eaea eaec ecec eaea eaec  ................
0000040: ecec ebeb ebec ecec ebeb ebeb ebeb ebeb  ................
0000050: ebeb ebeb ebeb ebeb ebeb ebeb ebeb ebeb  ................
0000060: ebeb ebeb ebeb ebeb ebeb ebeb ebeb ebeb  ................
0000070: ebeb ebeb ebeb ebeb ebeb ebeb ebeb ebeb  ................
0000080: ebea eaea ecec eceb ebeb ebeb ebea eaea  ................
0000090: ebeb ebeb ebeb ebeb ebeb ebeb ebeb ebeb  ................
$ file myteststream 
myteststream: DOS executable (COM)

Não é um arquivo COM, mas também não é PNG.

$ du -b test.png test2stream myteststream 
57727   test.png
20004   test2stream
155761  myteststream

Você vê isso agora? O fluxo de imagens (de PNG) de PDF produzido por pdfLaTeX é possivelmente um formato bruto simples (176 * 295 * 3 = 155760, 1 vem de uma nova linha supérflua). Vamos verificar:

$ convert -depth 8 -size 176x295 rgb:myteststream myteststream.png

E nós temos nossa imagem original de volta! Não espera. Parece que a descompressão do pdftk 1.41 é incorreta e a imagem era quase a mesma com algumas falhas. Atualizei para o pdftk 1.44, mas esta versão não descomprime o fluxo da imagem. Além disso, o pdftk não produz um dicionário de fluxo em uma linha, portanto, a extração acima usando sed não funciona mais, mas não há sentido em corrigi-lo agora.

Então, o que podemos fazer com o Word? Não há muita coisa. Pelo menos você pode transplantar a imagem incorporada de um PDF para outro. Repeti a descompactação de ambos os PDFs usando o pdftk recente, abri-os no vim, substituí-los test2uc.pdf <<...>>stream...endstreampor equivalentes de mytestuc.pdf, salvos como test2fixuc.pdfe compactados em test2fix.pdf.

test2fix.pdf

test.pdf

Afinal, seria um pecado não checar seu grande PDF. Ok, preparei outro oneliner para brincar com PDFs descompactados do pdftk 1.44 para listar fluxos de imagens e suas linhas iniciais em arquivos. Então, vou começar com a descompactação test.pdf.

(ADVERTÊNCIA neste ponto, assume-se que o pdftk esteja na versão 1.44)

$ pdftk test.pdf output testuc.pdf uncompress
$ awk '{if(i)h=h$0} /^[0-9]+ [0-9]+ obj $/{i=1;h=""}/^stream$/{i=0;if(h!~/\/Image/)next;print h,":"NR+1}' testuc.pdf 
<</ColorSpace /DeviceRGB/Subtype /Image/Length 10443804/Width 707/Type /XObject/BitsPerComponent 8/Height 4924>>stream :619
<</ColorSpace /DeviceRGB/Subtype /Image/Length 11264460/Width 953/Type /XObject/BitsPerComponent 8/Height 3940>>stream :12106
<</ColorSpace /DeviceRGB/Subtype /Image/Length 2813256/Width 953/Type /XObject/BitsPerComponent 8/Height 984>>stream :12910
<</ColorSpace /DeviceRGB/Subtype /Image/Length 11264460/Width 953/Type /XObject/BitsPerComponent 8/Height 3940>>stream :18547
<</ColorSpace /DeviceRGB/Subtype /Image/Length 2813256/Width 953/Type /XObject/BitsPerComponent 8/Height 984>>stream :19312
<</ColorSpace /DeviceRGB/Subtype /Image/Length 4845216/Width 328/Type /XObject/BitsPerComponent 8/Height 4924>>stream :19326

Algo é realmente louco aqui! 6 imagens brutas (aparentemente desta vez o pdftk não teve nenhum problema em descompactá-las) reunindo 43444452 bytes! Vamos verificar novamente test2uc.pdfe mytestuc.pdf.

$ awk '{if(i)h=h$0} /^[0-9]+ [0-9]+ obj $/{i=1;h=""}/^stream$/{i=0;if(h!~/\/Image/)next;print h,":"NR+1}' test2uc.pdf 
<</Width 176/BitsPerComponent 8/Interpolate true/Height 295/Filter /DCTDecode/Subtype /Image/Length 20003/ColorSpace /DeviceRGB/Type /XObject>>stream :113
przemoc@debian:~/latex/test/img/mod$ awk '{if(i)h=h$0} /^[0-9]+ [0-9]+ obj $/{i=1;h=""}/^stream$/{i=0;if(h!~/\/Image/)next;print h,":"NR+1}' mytestuc.pdf 
<</DecodeParms <</Colors 3/Columns 176/Predictor 10/BitsPerComponent 8>>/Width 176/BitsPerComponent 8/Height 295/Filter /FlateDecode/Subtype /Image/Length 54954/ColorSpace /DeviceRGB/Type /XObject>>stream :22

Nos dois casos, apenas um fluxo de imagem. Por que diabos poderia haver mais deles ?!

$ sed '1,618d;/^endstream $/q' testuc.pdf | convert -depth 8 -size 707x4924 rgb:- testuc-stream1.png
$ sed '1,12105d;/^endstream $/q' testuc.pdf | convert -depth 8 -size 953x3940 rgb:- testuc-stream2.png
$ sed '1,12909d;/^endstream $/q' testuc.pdf | convert -depth 8 -size 953x984 rgb:- testuc-stream3.png
$ sed '1,18546d;/^endstream $/q' testuc.pdf | convert -depth 8 -size 953x3940 rgb:- testuc-stream4.png
$ sed '1,19311d;/^endstream $/q' testuc.pdf | convert -depth 8 -size 953x984 rgb:- testuc-stream5.png
$ sed '1,19325d;/^endstream $/q' testuc.pdf | convert -depth 8 -size 328x4924 rgb:- testuc-stream6.png

A imagem foi cortada em vários pedaços ... Parece algum tipo de proteção totalmente estúpida, talvez introduzida pelo Distiller (e talvez possa ser desativada)? Duvido que a mesma coisa seja cuspida pelo PDFCreator, a menos que seja o Word quem realiza essa insanidade inacreditável ...

testuc-stream1.png e outros (use a seta direita para navegar)

Conclusão

Coisas importantes são:

  • você pode ver claramente que a imagem enorme que foi cortada em pedaços é na verdade um upscaled JPEG, então minha hipótese estava correta,
  • porque no PDFCreator você também obtém um grande arquivo na saída, é o Word que fornece uma imagem muito grande para a impressora PDF falsa, e minha suposição anterior também estava correta.

Ufa. Essa investigação levou algum tempo. Palavra é um pedaço de lixo.

Soluções alternativas?

Enquanto isso, algumas sugestões foram dadas. Deixe-me comentá-los.

Usar o escritor com suporte decente a PDF como o LibreOffice (esqueça o OpenOffice, agora está obsoleto) é uma boa solução, a menos que algumas incompetências o tornem incapaz de trabalhar com ele.

Usar imagem maior na mesma caixa da página também não é uma má idéia, porque mesmo após a JPEG, os artefatos ficarão menos visíveis.

Meu outro grosz, porém, está usando JPEG desde o início. Dessa forma, o Word não deve recompactá-lo (você nunca sabe ...) e você pode fornecer a maior qualidade possível de JPEG. Também há compactação JPEG sem perdas. Os desenvolvedores de Redmond provavelmente pensaram que não era necessário, então não ficarei surpreso se o Word não lidar com esses JPEGs. Bem, o TBH não é amplamente suportado (mesmo no mundo de código aberto), assim como a codificação aritmética (ou é uma situação ainda pior no caso de codificação aritmética).

convert test.png -quality 100 -resize $((100*300/72))% test-300dpi-mitchell.jpg
convert test.png -quality 100 -filter box -resize $((100*300/72))% test-300dpi-box.jpg
convert test.png -quality 100 test.jpg

(No Windows, use 416 em vez dessa $(())expansão aritmética disponível em shells POSIX)

Eu acho que o Mitchell padrão é bom para aumentar a escala, mas se você realmente quer uma imagem pixelática, use o Box como @ceving sugerido. É claro que os dois primeiros arquivos são úteis apenas se você (por algum motivo) usar impressoras PDF falsas.

Fiz upload dos três arquivos.

test-300dpi-mitchell.jpg (426 KB) test-300dpi-box.jpg (581 KB) test.jpg (74 KB)

Se minha hipótese estiver correta e o Word não recompactar a imagem JPEG, basta usar a última não redimensionada e seguir com a saída de PDF incorporada, porque ela tem menos falhas (pelo menos evita o aumento desnecessário de escala).

przemoc
fonte
Obrigado, @przemoc. Tentei o PDFCreator e obtenho os mesmos resultados que com o Distiller (as imagens são borradas da mesma forma que no Word e, se eu desativar a compactação, recebo um arquivo enorme). Também tentei "salvar como PDF" e recebo uma versão altamente compactada da imagem, com muitos artefatos JPEG (embora a imagem original fosse PNG e a compactação da imagem tenha sido desativada como o @nihcap sugeriu. Vou fazer o upload do resultado.
Herb Caudill
@Herb Atualização importante. Não resolvi seu problema, mas lancei alguma luz e deve ser uma leitura interessante. Pelo menos espero que sim ...
przemoc 10/10
tl; dr eu forneci uma solução trabalhando 100% e uma possivelmente trabalhando. 1) 100% de trabalho é transplantar imagens de PDF com imagens brutas compactadas sem perda e incorporadas adequadamente (geradas a partir do LibreOffice ou pdfLaTeX) para o PDF gerado a partir do Word (evite usar falsas impressoras PDF!). Infelizmente, pode ser cansativo se você tiver muitas imagens. 2) Supondo que o Word não recompacte a imagem JPEG para saída interna, use JPEG com a mais alta qualidade possível, por exemplo, produzida por convertImageMagick ou XnView. Nesse caso, você tem perda de qualidade, mas é pelo menos controlável.
Przemoc #
Estou concedendo a recompensa por causa da incrível quantidade de pesquisas que você fez. É claro que o meu problema permanece sem solução, mas parece que nada pode ser feito - parece que a Microsoft deu um grande passo para trás na manipulação de imagem entre 2007 e 2010.
Herb Caudill
@ Herb Obrigado. Na verdade, nunca havia analisado PDFs em nível interno antes, portanto, essas investigações foram interessantes e informativas (e entro em alguns problemas novos, que precisarei resolver para meu próprio prazer de entender as coisas). Estou um pouco triste por não poder fornecer um resultado mais satisfatório, ou seja, uma solução real, em vez de entender o que está acontecendo, quem é o culpado e as soluções alternativas. Mas não vamos encerrar o caso ainda, há algumas questões em aberto aqui. Não tenho o Word, por isso tenho que pedir para você carregar mais 2 arquivos 1) PDF com PNG do PDFCreator 2) PDF com meu último JPG do Word. TIA
przemoc
7

Abra Arquivo > Configurações > Avançado e , na seção Tamanho e qualidade da imagem , marque a opção Não compactar imagens nos arquivos (consulte a captura de tela para orientar onde esta opção está localizada)
Configurações do Word

A imagem a seguir é a mesma imagem JPG (captura de documento ampliada em 400% para mostrar a diferença de suavização de serrilhado) inserida antes e depois de ativar essa opção:
insira a descrição da imagem aqui

Francisco Alvarado
fonte
Alguma idéia de onde essa configuração pode ser encontrada no Word 2007?
Dimo414 3/11
Na verdade, eu deturpi o problema na minha postagem original - não é que o Word esteja compactando ou suavizando a serrilhada da imagem, é porque está suavizando-a, em vez de mostrar os pixels originais. Eu tentei a configuração que você aponta aqui, mas ainda está suavizando a imagem, o que resulta em uma saída de PDF inchada.
Herb Caudill
@ dimo414 Clique no botão Office e depois em Configurações, outras etapas devem ser as mesmas.
Nyuszika7h
2
Esta é uma nova opção do Word 2010.
harrymc 5/05
1
Acho que devo esclarecer, já que isso gera muitos votos - esse é um bom cenário para conhecer, mas não afeta o problema que estou tendo.
Herb Caudill
1

Parece que o recurso de zoom do Microsoft Word usa filtragem bilinear. Isso não deve alterar a imagem em si, mas apenas como ela é exibida em ampliações diferentes de 100%. O que você deseja é o dimensionamento do vizinho mais próximo, mas duvido que o MS Word tenha uma opção para isso.

cocho
fonte
0

Repeti a manipulação de inserir Test.png em um documento no Word 2007 e descobri, para minha surpresa, que o resultado depende do mecanismo usado.

Se alguém usar Inserir / Imagem, a imagem será suavizada.
Mas se alguém entrar em um editor de imagem e copiar, cole no Word e a imagem não será suavizada.

Outras soluções possíveis são:

  1. Tente usar Colar especial como bitmap ou bitmap independente de dispositivo.
  2. Não cole imagens. Use a guia Inset / grupo de ilustrações / comando Picture e altere o botão suspenso "Insert" para "Link to file". O arquivo de imagem pode ser otimizado para que a Web ocupe menos espaço.
harrymc
fonte
Hmm - essa não foi a minha experiência. Quando colo no MS Paint ou no Photoshop, recebo a mesma suavização como se tivesse usado Inserir imagem do arquivo. Estou usando o Word 2010, eu me pergunto se essa é a diferença - Eu não me lembro de ter este problema quando eu usei Word 2007.
Herb Caudill
Hmm, esse é um novo "recurso" do Word 2010? Talvez os Microsofties percebeu que colar não estava fazendo a coisa "direita" e "fixo"-lo no Word 2010.
harrymc
3
Em relação à pixelização da captura de tela, você pode usar a ferramenta de recorte do Vista e salvar o arquivo como PNG, o que impedirá esse ruído.
dimo414
@ dimo414: Obrigado, uma dica muito útil.
Harrymc
@Herb Caudill: O que acontece se você tentar inserir a imagem em um .doc, garantindo que as opções do Word / Avançado / Compatibilidade sejam "Word 2003"?
harrymc 5/05
0

Provavelmente, é a solução mais fácil de dimensionar as imagens originais para 300 dpi ou qualquer outra resolução usada durante a exportação do PDF. O programa de conversão do ImageMagick pode fazê-lo, por exemplo.

A imagem original tem uma largura de 176 pixels. Se você deseja dimensioná-lo para 4 polegadas a 300 dpi, a largura do alvo é 1200 pixels. Isso fará isso:

convert test.png -filter Box -resize 1200 test_300dpi.png

Percebi que é sempre melhor impedir que os produtos da Microsoft tentem pensar no que pode ser bom para você. É sempre melhor decidir por conta própria.

ceving
fonte
Acredito que os arquivos PDF tenham uma resolução de imagem incorporada nativa; portanto, se você redimensionar suas imagens para corresponder, o Word poderá pular uma etapa. Infelizmente, receio que o tamanho do PDF resultante possa não ser razoável.
Mark Ransom
-1

Esta pergunta é semelhante a esta

Tem a ver com o estilo de embalagem ... defina-o apenas para a parte superior e inferior. Leia aqui .

pcunite
fonte
Não, alterar as opções de quebra automática não faz diferença.
Herb Caudill
@ Herb, esse problema pode exigir uma alteração no código da parte MS. Sinto falta do Outlook 2003, onde você pode fazer uma imagem de inserção e esperar que seja visível como esperado.
pcunite 10/05
-1

Corrija-me se este comentário for muito óbvio ou não for relevante:

Quando colo uma Imagem nítida de, digamos, uma página de texto (testei .bmp e .png) em um documento do Word 2010 (.docx), o resultado é uma versão borrada do original. Isso se deve ao redimensionamento automático e ao processamento de imagem feito pelo Word, aparentemente independentemente das configurações relevantes em "Opções". No entanto, se eu então

  1. selecione a imagem
  2. vá para a faixa de opções Cabeçalho "Formato"
  3. selecione o pequeno ícone na área mais à esquerda da faixa de opções que se parece com uma pequena imagem com uma seta "desfazer"
  4. desça o menu associado
  5. selecione o item inferior chamado "Reverter imagem e tamanho" (que foi uma tradução livre do alemão),

então a imagem nítida que colei reaparece no lugar da desfocada.


Nota: se eu usar a ferramenta de fotografia incorporada no Acrobat Reader e colar diretamente no Word, as opções acima não funcionarão. Preciso tirar uma captura de tela de toda a tela ou acessar o IrfanView.

KUK
fonte