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.pdf
gerado pelo pdfLaTeX e o seu test2.pdf
gerado 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 ( <<...>>stream
linha com os parâmetros Largura e Altura, o mesmo que em test.png
, por exemplo , 176x295), que termina com a endstream
tag. 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...endstream
por equivalentes de mytestuc.pdf
, salvos como test2fixuc.pdf
e 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.pdf
e 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).