¿Cómo se muestran fragmentos de código en formato de preservación de MS Word y resaltado de sintaxis?


¿Alguien conoce una forma de mostrar código en documentos de Microsoft Word que conserve el color y el formato? Preferiblemente, el método también sería discreto y fácil de actualizar.

He intentado incluir código como texto regular que se ve horrible y se interpone en el camino al editar texto regular. También he intentado insertar objetos, un documento de WordPad y un cuadro de texto, en el documento y luego poner el código dentro de esos objetos. El código se ve mucho mejor y es más fácil de evitar mientras editando el resto del texto. Sin embargo, estos objetos solo pueden abarcar una página, lo que hace que la edición sea una pesadilla cuando se necesitan agregar varias páginas de código.

Por último, sé que hay mucho mejores editores/formatos que no tienen problemas para manejar esto, pero estoy atascado trabajando con MS word.

 1634
Author: DubiousPusher, 2008-12-23

30 answers

Aquí está la mejor manera, para mí, de agregar código dentro de word:

  1. vaya a la pestaña" insertar", haga clic en el botón "objeto" (está a la derecha)
  2. elija "OpenDocument Text" que abrirá un nuevo documento de Word incrustado
  3. copie y pegue su código de Visual Studio / Eclipse dentro de esta página de word incrustada
  4. guardar y cerrar

El resultado se ve muy bien. Estas son las ventajas de este método:

  • el código mantiene su diseño original y colores
  • el código está separado del resto del documento, como si fuera una imagen o un gráfico
  • los errores ortográficos no se resaltarán en el código (¡esto es genial !)

Y solo toma unos segundos.

 1509
Author: gargamel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-28 21:00:37

Descargar e instalar Bloc de notas++ y haga lo siguiente:

  1. Pegue su código en la ventana;

  2. Seleccione el lenguaje de programación en el menú idioma;

  3. Seleccione el texto a copiar;

  4. Haga clic derecho y seleccione Comandos del complemento -> Copiar Texto con Resaltado de sintaxis;

  5. Pégalo en MS Word y eres bueno para ¡vamos!

Actualizar 29/06/2013:

Notepad++ tiene un plugin llamado "NppExport" (viene preinstalado) que le permite copiar a RTF, HTML y TODO. Permite docenas de idiomas, mientras que los IDE mencionados se limitan a un puñado cada uno (sin otros plug-ins).

Utilizo Copiar todos los formatos al portapapeles y "pegar como HTML" en MS word.

captura de pantalla de notepad++

 891
Author: Saad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-29 14:32:44

introduzca la descripción de la imagen aquí

Code Format Addin ya está disponible en Office Addins con Office 365 ! Simplemente seleccione el código y haga clic en convertir y convierte el texto del código a código de color formateado con números de línea !!!

¡Un poco de alegría!

El formato de código está disponible aquí: https://appsource.microsoft.com/en-us/product/office/WA104379501?tab=Overview

 95
Author: Rahul Saini,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-21 12:57:43

Después de leer muchas respuestas relacionadas, me encontré con mi propia solución, que para mí es la más adecuada.

El resultado se ve así: el resultado final

Como puedes ver, es el mismo resaltado de sintaxis como en Stack Overflow que es bastante impresionante.

Pasos para reproducir:

En el Desbordamiento de la Pila

  1. Goto Hacer una pregunta (preferiblemente con Cromo )
  2. Pegue el código y agregue una etiqueta de idioma (por ejemplo, Java) para obtener sintaxis hightlighting
  3. Copiar código de vista previa

En Word

  1. Insértese > Sitio para un cuadro > 1x1
  2. Pegar código
  3. Diseño de tabla > Bordes > Sin borde
  4. Seleccione código > Editar > Buscar > Reemplazar
    Buscar documento ^p (Marca de párrafo) Sustituir Por ^l (Salto de Línea Manual)
    (Esto es necesario para eliminar los espacios entre algunas líneas)
  5. Seleccione el código de nuevo > Revisar > Idioma > comprobar " No comprobar ortografía o gramática "
  6. Finalmente agregue un título usando Referencias > Insertar título > Nueva etiqueta > nómbrelo "Listing" o sth

Código de ejemplo gracias a este tipo

 69
Author: monty.py,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:36

Escribo mi código en Visual Studio y luego copio y pego en word. conserva los colores.

 51
Author: Jimmy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-22 22:10:49

Hay una buena Herramienta en línea para eso: http://www.planetb.ca/syntax-highlight-word

Simplemente copie el código generado y péguelo en su software de edición de Word. Hasta ahora lo he probado en MS Word y WPS Writer, funciona muy bien. No juega bien con Firefox, pero funciona muy bien en Chrome (y IE también, pero que quiere utilizar que).

Uno de los principales beneficios es que, a diferencia del Complemento de Formato de código para Word, NO se mete con su código, y respeta la sintaxis de varios lenguajes. Probé muchas otras opciones ofrecidas en otra respuesta, pero encontré que esta es la más eficiente (rápida y realmente efectiva).

También hay otra herramienta de onlinz citada en otra respuesta (markup.su) pero encuentro la salida planetB más elegante (aunque menos versátil).

Entrada :

introduzca la descripción de la imagen aquí

Salida :

introduzca la descripción de la imagen aquí

 28
Author: Fahmi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-10 17:36:42

Cuando he hecho esto, he hecho un amplio uso de estilos. Ayuda mucho.

Lo que hago es crear un estilo de párrafo (tal vez llamado "Code Example" o algo así) que usa una fuente monoespaciada, pestañas cuidadosamente seleccionadas, un fondo gris muy claro, un borde negro delgado arriba y abajo (que ayuda mucho a la visibilidad) y con la ortografía desactivada. También me aseguro de que el espaciado entre líneas y entre párrafos esté correcto. Luego creo estilos de caracteres adicionales en la parte superior (por ejemplo, "Comment", "String", "Keyword", "Function Name Decl", "Variable Name Decl") que capa en la parte superior; los que establecen el color y si el texto es negrita / cursiva. Luego es bastante simple revisar y marcar un ejemplo pegado como código y hacer que salga con un aspecto realmente bueno, y esto funciona bien para fragmentos cortos. Trozos largos de código probablemente no deberían estar normalmente en algo que va a ir a un árbol muerto. :-)

Una ventaja de hacerlo de esta manera es que es fácil adaptarse a cualquier código que estés haciendo; no lo haces tienes que confiar en algún IDE para averiguar lo que está pasando por ti. (El problema principal? Las páginas impresas normalmente no son tan anchas como las ventanas del editor, por lo que envolverlas apestará...)

 27
Author: Donal Fellows,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-16 14:10:51

Intente definir un estilo llamado 'code' y haga que use una fuente de ancho fijo pequeño, debería verse mejor entonces.

Usar CTRL+BARRA ESPACIADORA para restablecer el estilo.

 21
Author: frankodwyer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-31 19:39:41

Tal vez esto sea demasiado simple, pero ¿ha intentado pegar su código y configurar la fuente en Courier New?

 19
Author: chaos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-22 22:02:34

En caso de que seas como yo y seas demasiado perezoso o tengas prisa y no quieras descargar software adicional, puedes usar http://markup.su/highlighter / . Es muy sencillo y soporta varios temas destacados y muchos lenguajes de programación. http://markup.su/highlighter/En mi caso estaba usando Visual Studio Code , que no permite copiar con formato debido a CSS involucrado en el estilo (como se informa aquí ).

Copie el texto del cuadro de vista previa y luego en Word go a Insertar - > Cuadro de texto, pegue la vista previa del sitio web, resalte todo el texto y luego deshabilite la corrección ortográfica para ese cuadro de texto.

Así es como se ve el código finalmente.código como se ve en Word

 16
Author: maaw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-11 03:20:07

Si está utilizando Sublime Text, puede copiar el código de Sublime a MS Word conservando el resaltado de sintaxis.

Instale el paquete llamado SublimeHighlight.

En Sublime, usando el cursor, seleccione el código que desea copiar, haga clic derecho en él, seleccione 'copiar como rtf' y péguelo en MS Word.

 14
Author: Patrick_870206,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-01 17:19:23

Esto es un poco indirecto, pero funciona muy bien. Obtener LiveWriter e instalar este plugin:

Http://lvildosola.blogspot.com/2007/02/code-snippet-plugin-for-windows-live.html

Inserta tu código usando el plugin en una publicación de blog. Seleccione todo y cópielo a Word.

Se ve muy bien y puede incluir números de línea. También abarca páginas decentemente.

HTH

Colby Africa

 12
Author: Shim Tait,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-22 21:49:37

En mi experiencia copiar y pegar desde eclipse y Notepad++ funciona directamente con word.

Por alguna razón tuve un problema con un archivo que no conservaba el color. Hice una nueva .archivo java, copiar y pegar código a eso, luego copiar y pegar a Word y funcionó...

Como dijeron los otros chicos, crea un nuevo estilo de párrafo. Lo que hago es usar una fuente mono espaciada como courier new, tamaño pequeño cerca de 8px para las fuentes, espacio simple sin espacio entre párrafos, hacer que las paradas de tabulación sean pequeñas (0.5 cm,1cm,..,5cm), coloque un borde de línea simple alrededor del texto y desactive las comprobaciones gramaticales. De esa manera logré el frenado de línea de eclipse para no tener que hacer nada más.

Espero haber ayudado;)

 8
Author: Dimitrios K.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-04-14 22:53:02

Utilice una fuente monoespaciada como Lucida Console, que viene con Windows. Si corta / pega desde Visual Studio o algo que admita el resaltado de sintaxis, a menudo puede conservar la combinación de colores del resaltado de sintaxis.

 7
Author: ConcernedOfTunbridgeWells,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-23 09:30:29

Vim tiene una característica ingeniosa que convierte código a formato HTML preservando resaltado de sintaxis, estilo de fuente, color de fondo e incluso números de línea. Ejecute :TOhtml y vim crea un nuevo búfer que contiene marcas html.

A continuación, abra este archivo html en un navegador web y copie/pegue lo que haya renderizado a Word. Vim tips wiki tiene más información.

 7
Author: Gowtham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-29 10:03:08

Este es el enfoque más simple que sigo. Considere que quiero pegar código java.

  1. Pego el código aquí para que los espacios, pestañas y corchetes de flores estén bien formateados http://www.tutorialspoint.com/online_java_formatter.htm

  2. Luego pego el código obtenido del paso 1 aquí para que los colores, las fuentes se agreguen al código http://markup.su/highlighter/

  3. Luego pegue el código de vista previa obtenido del paso 2 en MS word. Por fin se verá así

introduzca la descripción de la imagen aquí

 7
Author: Siddarth Kanted,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-20 09:58:52

Realmente no hay una forma limpia de hacerlo, y todavía podría parecer sospechoso en función de su configuración de estilo exacta.

Lo que podría intentar hacer es ejecutar primero una conversión de código a HTML (hay muchos programas que lo hacen), y luego tratar de abrir el archivo HTML con word, que con suerte podría proporcionarle el código formateado y bonito, y luego copiarlo y pegarlo en su documento.

 5
Author: Uri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-22 21:50:11

También puede usar SciTE para pegar código si no desea instalar IDEs pesados y luego descargar complementos para todo el código que está haciendo. Simplemente elija su idioma en el menú idioma, escriba su código, código de alta luz, seleccione Editar- > Copiar como RTF, pegar en Word con formato (pegado predeterminado).

SciTE soporta los siguientes lenguajes pero probablemente tenga soporte para otros: Abaqus*, Ada, ANS.1 Archivos de definición MIB*, APDL, Ensamblador (NASM, MASM), Asymptote*, AutoIt*, Avenue*, Batch (MS-DOS), Baan*, Bash*, BlitzBasic*, Bullant*, C/C++/C#, Clarion, cmake*, conf (Apache), CSound, CSS*, D, diff files*, E-Script*, Eiffel*, Erlang*, Flagship (Clipper / xBase), Flash (ActionScript), Fortran*, Forth*, GAP*, Gettext, Haskell, HTML*, HTML with embedded JavaScript, VBScript, PHP and ASP*, Gui4Cli*, IDL - both MSIDL and XPIDL*, INI, properties* and similar, InnoSetup*, Java*, JavaScript*, LISP*, LOT*, Lout*, Lua*, Make, Matlab*, Metapost*, MMIXAL, MSSQL, nnCron, NSIS*, Objective Caml*, Opal, Octave*, Pascal/Delphi*, Perl, la mayoría excepto algunos casos ambiguos*, PL/M*, Progress*, PostScript*, POV-Ray*, PowerBASIC*, PowerShell*, PureBasic*, Python*, R*, Rebol*, Ruby*, Scheme*, scriptol*, Specman E*, Spice, Smalltalk, SQL y PLSQL, TADS3*, TeX y LaTeX, Tcl/Tk*, VB y VBScript*, Verilog*, VHDL*, XML*, YAML*.

 5
Author: Joseph Coco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-11 07:08:40

Estoy usando Word 2010 y me gusta copiar y pegar desde un gist de github. Solo recuerde mantener el formato de origen!

Luego cambio la fuente a DejaVu Sans Mono.

Puede optar por copiar con o sin la numeración.

 5
Author: bluekeys,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-25 19:55:51

Copiar en Eclipse y pegarlo en Word es también otra opción.

 5
Author: imesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-12 18:23:59

La mejor presentación para el código en los documentos es en una fuente de ancho fijo (como debería aparecer en un IDE), con un fondo tenue y sombreado o un borde claro para distinguir el bloque de otro texto.

 4
Author: Rob,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-01-07 19:55:44

Si su código fuente Java lo copia a Visual Studio y luego lo copia de nuevo a Word.

 4
Author: imesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-29 15:52:59

Ok, esto es raro, pero para abordar el problema del color de fondo pego en el texto como de costumbre, seleccione todo el bloque, haga clic en la herramienta resaltador para resaltar (incluso si el resaltado está configurado en "Sin color"), y luego puedo estilizar el bloque de texto sin que el color de fondo del texto quede blanco. Estoy usando VS 11 y Word 2010, pero el problema ha existido durante mucho tiempo (ver http://www.visualstudiodev.com/visual-studio-setup-installation/copypaste-code-from-vs-1305.shtml)

 3
Author: JMBT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-15 21:37:18

Si está utilizando Android Studio, simplemente puede copiar y pegar, y el aspecto de código se conservará y los colores también. Bastante Simple!

 3
Author: Geraldo Neto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-30 00:15:11

También lo estaba buscando y terminé creando algo para mi visualización de código. Aquí hay una buena manera:

  • Cree una forma rectangular y coloque su texto dentro.
  • Cambie la fuente a Consolas y tamaño ~10.
  • Cambie la fuente del texto a gris casi negro (gris 25%, más oscuro 75%)
  • Use colores más oscuros para resaltar su texto si es necesario y elija uno para ser el contorno.

introduzca la descripción de la imagen aquí

 3
Author: Pedro Lourenço,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-29 11:42:14

Simplemente pegue su código en MS Words, selecciónelo -> luego haga clic derecho -> Numeración. En este caso MS Word interpretará su código como marcador / lista numerada.

Aquí están las pantallas:

Screen1 .

Screen2 .

 1
Author: user3528865,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-04 12:28:26

Si está utilizando TextMate (En OS X), utilice el comando "copiar como rtf". Colocará texto bastante impreso en el portapapeles. comando rtf

Desde allí se puede pegar en word o cualquier otra cosa.

 1
Author: tim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-12 15:19:11

Desde Powershell ISE copie y pegue a Word.
Mismo con Visual Studio.

 1
Author: Andrei Karcheuski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-01 13:02:27

Si ya tiene el documento creado con muchos fragmentos de código y está corriendo contra el tiempo (como desafortunadamente lo hice). Guardar el archivo como un .doc en lugar de .docx y listo! Funcionó para mí. Uf!

NOTA: Obviamente, su documento no puede tener características de lujo de > word 2007.

NOTA 2: El tamaño del archivo se hace más grande si esto es una preocupación para usted.

 1
Author: EaziLuizi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-08 10:03:37

La solución más simple, al menos para mí, es pegar el código en el documento, resaltarlo y luego navegar a:

Inicio - > estilos - > > - > código

Esto tiene la ventaja de que el código ahora se puede buscar dentro del documento (a diferencia de la solución de gargamel), además de poder formatear el código que tiene varias páginas.

 0
Author: Luke Purnell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-01 10:06:45