¿Evitar que Microsoft Word 2010 suavice las capturas de pantalla?

30

Cuando inserto capturas de pantalla JPEG en Microsoft Word, las suaviza en lugar de preservar los píxeles originales del mapa de bits. Cuando imprimo en PDF (usando Acrobat Distiller), dependiendo de la configuración de mi muestra, obtengo capturas de pantalla borrosas o tamaños de archivo muy hinchados.

Lo que quiero:

Me gustaría que Word y Acrobat dejaran los mapas de bits solos para que puedan completar el proceso con sus píxeles intactos. Así es como se ve la imagen original cuando haces zoom

Lo que quiero

Lo que consigo:

Así es como se ve el documento de Word cuando inserta la misma imagen y hace zoom. Cuando se imprime en PDF, todos esos píxeles adicionales dan como resultado un archivo mucho más grande.

Lo que consigo

Archivos de muestra:

  • Test.png (56K) Un archivo de imagen de captura de pantalla de muestra
  • Test.docx (69K) Un archivo de Word que no contiene más que esta imagen
  • Test.PDF (9.4MB) Un archivo PDF impreso desde el archivo de Word usando Distiller, con todos los muestreos desactivados
  • Test2.PDF (98K) Un archivo PDF generado con la herramienta "Guardar como PDF" de Word 2010 (tenga en cuenta la muy baja calidad de la imagen comprimida)

Editar: Esto es con Word 2010: he actualizado las etiquetas para reflejar eso.


Editar: he confirmado que OpenOffice no tiene este problema. Abrí Test.docx (mencionado anteriormente) y lo exporté como un PDF desde OO (eligiendo "compresión sin pérdida" en Imágenes en las opciones), y la imagen aparece intacta.

Desafortunadamente, OpenOffice manipula el formato en documentos de Word más complejos que he creado; así que no puedo simplemente crear los documentos en Word y usar OO para renderizar los PDF; Tendría que cambiar a OO por completo, que es un paso más grande de lo que estoy dispuesto a dar en este momento.

Hierba caudill
fuente
¿Cómo los estás pegando? Mapa de bits, metarchivo mejorado, JPEG, GIF, PNG, metarchivo de Windows?
Rhys Gibson
Son archivos JPEG (guardados de Photoshop con la máxima calidad) insertados en el documento usando "Insertar imagen del archivo".
Herb Caudill
1
¿Has probado un formato de archivo alternativo (sin pérdida) (por ejemplo, PNG)? Si tiene suerte, será mucho menos probable que Word y Distiller intenten volver a comprimir de manera útil.
DMA57361
PNG tiene los mismos problemas (acabo de agregar un ejemplo arriba).
Herb Caudill
Interesante problema que tienes aquí ... ¿el objetivo final aquí es reducir el tamaño del PDF?
James Mertz

Respuestas:

9

Word tal vez solo representa una imagen escalada y la envía de esa manera como entrada de impresora (supongo que Distiller funciona como impresora). Si es así, entonces es bueno para impresoras normales, pero ineficiente para impresoras falsas que producen archivos PDF.

Por ejemplo, pdfLaTeX incrusta correctamente la imagen en el archivo de salida. Verifique mi PDF cargado en la galería min.us: incrustando la imagen en un documento de LaTeX

Lo importante es qué pila de producción de PDF está utilizando. Si probar otra impresora PDF, como PDFCreator excelente y gratuito , no soluciona el problema, entonces debería intentar usar la exportación de PDF dedicada, es decir, no funciona como impresora. Las versiones recientes de Word de AFAIK tienen la exportación de PDF incorporada, por lo que si se implementa correctamente, obtendrá un archivo pequeño, gracias a la incorporación de imágenes utilizadas en el documento.

ENORME EDICIÓN

La galería ha cambiado de nombre a Incrustar imagen PNG en LaTeX vs Word

He examinado más a fondo mi mytest.pdfgenerado por pdfLaTeX y el test2.pdfgenerado por Word.

mytest.pdf test2.pdf

Comencemos con descomprimir. Si busca un archivo sin comprimir, verá fácilmente el inicio de la secuencia de imágenes ( <<...>>streamlínea con los parámetros Ancho y Altura, igual que en test.png, es decir, 176x295), que termina con la endstreametiqueta. Peek time.

(ADVERTENCIA en este punto se supone que pdftk está en la versión 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

Por lo tanto, Word está dando JPEG en lugar de PNG en su salida interna para un mayor procesamiento de PDF. ¡Simplemente guau! Lo mismo puede suceder al enviar la salida a la impresora.

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)

No es un archivo COM, pero tampoco es PNG.

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

¿Lo ves ahora? La secuencia de imágenes (de PNG) del PDF producido por pdfLaTeX es posiblemente un formato sin formato simple (176 * 295 * 3 = 155760, 1 proviene de una nueva línea superflua). Vamos a verlo:

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

¡Y tenemos nuestra imagen original de vuelta! No, espera. Parece que la descompresión de pdftk 1.41 tiene errores y la imagen era casi la misma con algunos defectos. Actualicé a pdftk 1.44, pero esta versión no descomprime la secuencia de imágenes en absoluto. Además, pdftk no emite el diccionario de flujo en una línea, por lo que la extracción anterior con sed ya no funciona, pero no tiene sentido solucionarlo ahora.

Entonces, ¿qué podemos hacer con Word? No me parece mucho. Al menos puede trasplantar la imagen incrustada de un PDF a otro. Repetí la descompresión de ambos archivos PDF usando pdftk reciente, los abrí en vim, los reemplacé test2uc.pdf <<...>>stream...endstreamcon su contraparte mytestuc.pdf, los guardé test2fixuc.pdfy los comprimí test2fix.pdf.

test2fix.pdf

prueba.pdf

Sería un pecado no revisar su gran PDF después de todo. Ok, he preparado otro oneliner para jugar con archivos PDF sin comprimir pdftk 1.44 para enumerar secuencias de imágenes y sus líneas de inicio en archivos. Así que comenzaré con descomprimir test.pdf.

(ADVERTENCIA en este punto se supone que pdftk está en la versión 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 está realmente loco aquí! ¡6 imágenes en bruto (aparentemente esta vez pdftk no tuvo ningún problema en descomprimirlas) que toman 43444452 bytes juntas! Vuelva a verificar test2uc.pdfy 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

En ambos casos, solo una secuencia de imágenes. ¿Por qué demonios podría haber más de ellos?

$ 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

La imagen se cortó en muchos pedazos ... ¿Parece algún tipo de protección completamente estúpida, tal vez introducida por Distiller (y tal vez se puede desactivar)? Dudo que PDFCreator escupiera lo mismo, a menos que sea Word quien realice esta increíble locura ...

testuc-stream1.png y otros (use la flecha derecha para navegar)

Conclusión

Las cosas importantes son:

  • se puede ver claramente, esa gran imagen que se cortó en pedazos en realidad está mejorada JPEG, por lo que mi hipótesis era correcta,
  • porque en PDFCreator también obtienes un gran archivo en la salida, es Word quien proporciona una imagen terriblemente grande a la impresora PDF falsa, y mi suposición anterior también era correcta.

Uf. Esta investigación tomó algo de tiempo. La palabra es un pedazo de basura.

Soluciones alternativas?

Mientras tanto, se dieron algunas sugerencias. Déjame comentarlos.

El uso de escritor con soporte PDF decente como LibreOffice (olvídate de OpenOffice, está obsoleto ahora) es una buena solución, a menos que algunas incompatibilidades te impidan trabajar con él.

Usar una imagen más grande en el mismo cuadro de la página tampoco es una mala idea, ya que incluso después de JPEG-izing, los artefactos serán menos visibles.

Sin embargo, mi otro grosz está usando JPEG desde el principio. De esa forma, Word no debería volver a comprimirlo (nunca se sabe ...) y puede proporcionar la mayor calidad posible de JPEG. También hay compresión JPEG sin pérdidas. Los desarrolladores de Redmond presumiblemente pensaron que no era necesario, por lo que no me sorprendería si Word no maneja tales JPEG. Bueno, TBH no es ampliamente compatible (incluso en el mundo de código abierto), al igual que la codificación aritmética (o es una situación aún peor en el caso de la codificación 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

(En Windows use 416 en lugar de esta $(())expansión aritmética disponible en shells POSIX)

Creo que el Mitchell predeterminado es bueno para la mejora de escala, pero si realmente desea una imagen pixelada, vaya con Box como sugiere @ceving. Por supuesto, los primeros 2 archivos son útiles solo si debe (por alguna razón) usar impresoras PDF falsas.

He subido los tres archivos.

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

Si mi hipótesis es correcta y Word no volverá a comprimir la imagen JPEG, simplemente use la última no ampliada y vaya con la salida de PDF incorporada, porque tiene menos inconvenientes (al menos evita una escala innecesaria).

przemoc
fuente
Gracias, @przemoc. Probé PDFCreator y obtuve los mismos resultados que con Distiller (las imágenes se ven borrosas tal como están en Word, y si apago la compresión, obtengo un archivo enorme). También intenté "guardar como PDF" y obtuve una versión muy comprimida de la imagen, con muchos artefactos JPEG (aunque la imagen original era PNG y tengo la compresión de imagen desactivada como sugirió @nihcap. Subiré el resultado.
Herb Caudill
@Herb Actualización importante. No he resuelto tu problema, pero arrojo algo de luz al respecto y debería ser una lectura interesante. Al menos eso espero ...
przemoc
tl; dr He proporcionado una solución alternativa al 100% y posiblemente una que funcione. 1) El 100% de trabajo consiste en trasplantar imágenes de PDF con imágenes en bruto comprimidas sin pérdida y correctamente incrustadas (generadas desde LibreOffice o pdfLaTeX) a su PDF generado desde Word (¡evite usar impresoras de PDF falsas!). Desafortunadamente, puede ser agotador si tienes muchas imágenes. 2) Suponiendo que Word no vuelva a comprimir la imagen JPEG para la salida interna, use JPEG con la mejor calidad posible, por ejemplo, producida por convertImageMagick o XnView. En este caso, tiene pérdida de calidad, pero al menos es controlable.
przemoc
Estoy otorgando la recompensa por la increíble cantidad de investigación que has realizado. Por supuesto, mi problema sigue sin resolverse, pero parece que no se puede hacer nada: parece que Microsoft dio un gran paso atrás en el manejo de imágenes entre 2007 y 2010.
Herb Caudill
@Herb Gracias. En realidad, nunca antes había examinado los archivos PDF a nivel interno, por lo que esta investigación fue interesante e informativa (y me encuentro con algunos problemas nuevos que tendré que resolver por mi propio placer de comprender las cosas). Estoy un poco triste porque no pude proporcionarle un resultado más satisfactorio, es decir, una solución real en lugar de una idea de lo que está sucediendo, quién es culpable y soluciones alternativas. Pero no cerremos el caso todavía, hay algunas preguntas abiertas aquí. No tengo Word, así que tengo que pedirle que cargue 2 archivos más 1) PDF con PNG de PDFCreator 2) PDF con mi último JPG de Word. TIA
przemoc
7

Abra Archivo > Configuración > Avanzado , luego en la sección Tamaño y calidad de imagen , marque la opción No comprimir imágenes en archivos (Consulte la captura de pantalla para orientar dónde se encuentra esta opción)
Configuración de Word

La siguiente imagen es la misma imagen JPG (captura de documento 400% ampliada para mostrar la diferencia de suavizado) insertada antes y después de activar esa opción:
ingrese la descripción de la imagen aquí

Francisco Alvarado
fuente
¿Alguna idea de dónde se puede encontrar esta configuración en Word 2007?
dimo414
De hecho, expresé mal el problema en mi publicación original: no es que Word esté comprimiendo o suavizando la imagen, es que la está suavizando en lugar de mostrar los píxeles originales. He intentado la configuración que usted señala aquí, pero todavía suaviza la imagen, lo que resulta en una salida de PDF hinchada.
Herb Caudill
@ dimo414 Haga clic en el botón de Office y luego en Configuración, los demás pasos deben ser los mismos.
nyuszika7h
2
Esta es una nueva opción de Word 2010.
harrymc
1
Siento que debería aclararlo ya que esto está obteniendo tantos votos positivos, es un buen escenario para conocer, pero no afecta el problema que estoy teniendo en absoluto.
Herb Caudill
1

Parece que la función de zoom de Microsoft Word usa filtrado bilineal. Esto no debería cambiar la imagen en sí, sino solo cómo se muestra con aumentos distintos al 100%. Lo que quieres es la escala del vecino más cercano, pero dudo que MS Word tenga una opción para eso.

canal
fuente
0

He repetido la manipulación de insertar Test.png en un documento en Word 2007, y me sorprendió que el resultado dependa del mecanismo que se use.

Si uno usa Insertar / Imagen, la imagen se suaviza.
Pero si uno ingresa a un editor de imágenes y copia, luego pega en Word, entonces la imagen no se suaviza.

Otras posibles soluciones son:

  1. Intente usar Pegado especial como mapa de bits o mapa de bits independiente del dispositivo.
  2. No pegar imágenes. Use la pestaña Insertar / grupo de ilustraciones / comando de imagen y cambie el botón desplegable "Insertar" a "Enlace al archivo". El archivo de imagen se puede optimizar para que la Web ocupe menos espacio.
harrymc
fuente
Hmm, esa no ha sido mi experiencia. Cuando pego desde MS Paint o Photoshop, obtengo el mismo suavizado que si utilizara Insertar imagen desde archivo. Estoy usando Word 2010, me pregunto si esa es la diferencia. No recuerdo haber tenido este problema cuando usé Word 2007.
Herb Caudill
Hmm, ¿es esta una nueva "característica" de Word 2010? Tal vez los Microsofties se dieron cuenta de que la pasta no estaba haciendo lo "correcto" y "fija" en Word 2010.
harrymc
3
Con respecto a la pixelación de captura de pantalla, puede usar la herramienta de recorte de Vista y guardar el archivo como PNG, lo que evitará ese ruido.
dimo414
@ dimo414: Gracias, una pista muy útil.
harrymc 05 de
@Herb Caudill: ¿Qué sucede si intenta insertar la imagen en un .doc, mientras se asegura de que las opciones de Word / Avanzado / Compatibilidad es "Word 2003"?
harrymc
0

Probablemente sea la solución más fácil para escalar las imágenes originales a 300 ppp o cualquier resolución que use durante su exportación de PDF. El programa de conversión de ImageMagick puede hacerlo, por ejemplo.

La imagen original tiene un ancho de 176 píxeles. Si desea escalarlo a 4 pulgadas a 300 ppp, el ancho objetivo es de 1200 píxeles. Esto lo hará:

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

He experimentado que siempre es mejor evitar que los productos de Microsoft intenten pensar qué podría ser bueno para usted. Siempre es mejor decidirlo por su cuenta.

ceving
fuente
Creo que los archivos PDF tienen una resolución de imagen incrustada nativa, por lo que si cambia el tamaño de sus imágenes para que coincida, Word podría omitir un paso. Lamentablemente, me temo que el tamaño del PDF resultante podría no ser razonable.
Mark Ransom
-1

Esta pregunta es similar a esta

Tiene que ver con el estilo de envoltura ... configúrelo solo en la parte superior e inferior. Lea aquí .

pcunita
fuente
No, cambiar las opciones de ajuste no hace la diferencia.
Herb Caudill
@Herb, este problema puede requerir un cambio de código en la parte de MS. Echo de menos Outlook 2003, donde podría insertar una imagen y esperar que se pueda ver como se esperaba.
pcunite
-1

Corrígeme si este comentario es demasiado obvio o no relevante:

Cuando pego una imagen nítida de, por ejemplo, una página de texto (probé .bmp y .png) en un documento de Word 2010 (.docx), el resultado es una versión borrosa del original. Esto se debe al cambio de tamaño automático y al procesamiento de imágenes realizado por Word, aparentemente independientemente de la configuración relevante en "Opciones". Sin embargo si yo entonces

  1. seleccione la imagen
  2. vaya a la cinta Encabezado "Formato"
  3. seleccione el pequeño icono en el área más a la izquierda de la cinta que parece una pequeña imagen con una flecha "deshacer"
  4. desplegar el menú asociado
  5. seleccione el elemento inferior llamado "Revertir imagen y tamaño" (que era una traducción suelta del alemán),

entonces la imagen nítida que pegué vuelve a aparecer en lugar de la borrosa.


Nota: si uso la herramienta de fotografía incorporada en Acrobat Reader, luego pego directamente en Word, lo anterior no funciona. Necesito tomar una captura de pantalla de toda la pantalla o ir a través de IrfanView.

KUK
fuente