如何以MS Word保留格式和语法高亮显示代码片段?

有人知道在Microsoft Word文档中显示保留着色和格式的代码的方法吗?最好,该方法也不显眼且易于更新。

我尝试将代码包含为常规文本,这看起来很糟糕,并且在编辑常规文本时会受到阻碍。我还尝试将对象,写字板文档和文本框插入文档中,然后将代码放入这些对象中。代码看起来更好,并且在编辑其余文本时更容易避免。然而,这些对象只能跨越一页,这使得当需要添加多页代码时编辑成为噩梦。

最后,我知道有更好的编辑器/格式处理这个没有问题,但我坚持使用MS word。

2030044 次浏览

尝试定义一个名为“代码”的样式,并使其使用一个小的固定宽度字体,这样看起来会更好。

使用CTRL+SPACEBAR重置样式。

这有点间接,但它工作得非常好。获取LiveWriter并安装此插件:

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

使用插件将您的代码插入博客文章。选择全部并将其复制到Word。

它看起来很棒,可以包括行号。它还可以适当地跨越页面。

HTH

科尔比非洲

真的没有一个干净的方法来做到这一点,根据你的确切风格设置,它仍然可能看起来很可疑。

您可以尝试做的是首先运行代码到超文本标记语言的转换(有很多程序可以做到这一点),然后尝试用word打开超文本标记语言文件,这可能会为您提供格式化和漂亮的代码,然后将其复制并粘贴到您的文档中。

也许这太简单了,但是你有没有尝试过粘贴代码并将其字体设置为Courier New?

我在Visual Studio中键入我的代码,然后复制粘贴到word中。它保留颜色。

使用像Windows附带的Lucida控制台,这样的等宽字体。如果您从Visual Studio或支持语法突出显示的东西剪切/粘贴,您通常可以保留语法荧光笔的配色方案。

文档中代码的最佳表示是固定宽度的字体(因为它应该出现在IDE中),带有微弱的阴影背景或浅色边框以将块与其他文本区分开来。

对我来说,这是在word中添加代码的最佳方法:

  1. 转到Insert选项卡,Text部分,单击Object按钮(在右侧)
  2. 选择OpenDocument Text,这将打开一个新的嵌入式word文档
  3. 将您的代码从Visual Studio/Eclipse复制并粘贴到此嵌入式word页面中
  4. 保存并关闭

优势

结果看起来非常好。以下是该方法的优点:

  • 代码保持其原始布局和颜色
  • 代码与文档的其余部分分开,就好像它是图片或图表一样
  • 拼写错误不会在代码中突出显示(这很酷!)

它只需要几秒钟。

当我这样做的时候,我已经广泛地使用了样式。它帮助了很多。

我所做的是创建一个段落样式(可能称为“Code Example”或类似的东西),它使用等宽字体,精心选择的选项卡,非常浅的灰色背景,上面和下面的细黑色边框(这有助于很多可见性)并且拼写关闭。我还确保行间和段落间的行间距设置正确。然后我在顶部创建额外的字符样式(例如,“Comment”,“String”,“Keyword”,“Function Name Decl”,“Variable Name Decl”),我将其层放在顶部;这些设置颜色以及文本是否是粗体/斜体字。然后很简单地将粘贴的示例标记为代码,并让它看起来非常好,这对于短片段很有效。长代码块可能通常不应该出现在将要出现在死树上的东西中。:-)

这样做的一个优点是,它很容易适应你正在做的任何代码;你不必依赖一些IDE来弄清楚你在做什么。(主要问题是?打印页面通常没有编辑器窗口那么宽,所以包装会很糟糕…)

如果其Java源代码,则将其复制到Visual Studio,然后将其复制回Word。

下载并安装记事本++并执行以下操作:

  1. 将您的代码粘贴到窗口中;

  2. 从语言菜单中选择编程语言;

  3. 选择要复制的文本;

  4. 右键单击并选择插件命令->复制带有语法高亮显示的文本

  5. 将其粘贴到MS Word中,您就可以开始了!

2013年6月29日更新:

Notepad++有一个名为“NppEx”(预装)的插件,允许您复制到RTF、超文本标记语言和ALL。它允许几十种语言,而上述IDE仅限于少数几种(没有其他插件)。

我使用复制所有格式到剪贴板和“粘贴为超文本标记语言”在MS word。

记事本截图++

如果您不想安装繁重的IDE,您也可以使用SciTE粘贴代码,然后为您正在制作的所有代码下载插件。只需从语言菜单中选择您的语言,键入您的代码,高光代码,选择编辑->复制为RTF,使用格式粘贴到Word中(默认粘贴)。

SciTE支持以下语言,但可能支持其他语言:Abaqus*,Ada,ANS.1 MIB定义文件*,APDL,汇编器(NASM,MASM),渐进式*,AutoIt*,Avenue*,批处理文件(MS-DOS),Baan*,Bash*,BlitzBasic*,Bullant*,C/C++ /C#,克拉里昂,cmake*,conf(Apache), CSound,CSS*,D,diff文件*,E-Script*,Eiffel*,Erlang*,旗舰(Clipper/XBase), Flash(ActionScript),Fortran*,Forth*,GAP*,Gettext,Haskell,超文本标记语言*,嵌入JavaScript的超文本标记语言,VBScript,PHP和ASP*,Gui4Cli*,IDL-MSIDL和XPIDL*,INI,属性*和类似产品,InnoSetup*,Java*,JavaScript*,LISP*,LOT*,Lout*, Lua*,Make,Matlab*,Metapost*,MMIXAL,MSSQL,nnCron,NSIS*,ObjectiveCaml*,Opal,Octave*,Pascal/Delphi*,Perl,除了一些模棱两可的情况*,PL/M*,进步*,PostScript*,POV-Ray*,PowerBasic*,PowerShell*,PureBasic*,Python*,R*,Rebol*,Ruby*,方案*,scriptol*,Specman E*,Spice,Smalltalk,SQL和PLSQL,TADS3*,TeX和LaTeX,Tcl/Tk*,VB和VBScript*,Verilog*,VHDL*,XML*,YAML*。

我正在使用Word 2010,我喜欢从github gist复制和粘贴。请记住保留源格式!

然后我将字体更改为DejaVu Sans Mono。

您可以选择复制带或不带编号。

复制到Eclipse并将其粘贴到Word中也是另一种选择。

好吧,这很奇怪,但是为了解决背景颜色问题,我将文本粘贴为正常,选择整个块,单击荧光笔工具突出显示(即使突出显示设置为“无颜色”),然后我可以在文本块的背景颜色不保持白色的情况下设置文本块的样式。我使用的是VS 11和Word 2010,但问题已经存在很长时间了(参见http://www.visualstudiodev.com/visual-studio-setup-installation/copypaste-code-from-vs-1305.shtml

根据我的经验,从eclipse和Notepad++复制粘贴可以直接使用word。

出于某种原因,我遇到了一个不能保留着色的文件的问题。我创建了一个新的. java文件,将代码复制粘贴到该文件,然后复制粘贴到word,它起作用了…

正如其他人所说的,创建一个新的段落样式。我所做的是使用单间距字体,如Courier new,字体接近8px的小尺寸,段落之间没有空格,使制表位变小(0.5cm,1cm,…,5cm),在文本周围放置一个简单的线条边框并禁用语法检查。这样我就实现了日食的线条制动,所以我不必再做任何事情了。

希望我有帮助;)

只需将您的代码粘贴到MS Words中,选择它->然后右键单击->编号。在这种情况下,MS Word会将您的代码解释为标记/有序列表。

以下是屏幕:

Screen1

Screen2

如果您使用的是崇高文本,您可以将代码从Sublime复制到MS Word,保留语法突出显示。

安装名为高亮的包。

在Sublime中,使用光标选择要复制的代码,右键单击它,选择“复制为rtf”,然后粘贴到MS Word中。

如果您使用的是androidStudio,您可以简单地复制和粘贴,代码方面将被保留,颜色也是如此。很简单!

如果您使用的是TextMate(在OS X上),请使用“复制为rtf”命令。它会将漂亮的打印文本放置到剪贴板上。rtf命令

从那里你可以粘贴到单词或其他任何东西。

Vim有一个漂亮的功能,可以将代码转换为超文本标记语言格式,保留语法突出显示、字体样式、背景颜色甚至行号。运行:TOhtml并vim创建一个包含html标记的新缓冲区。

接下来,在Web浏览器中打开此html文件并复制/粘贴它呈现给Word的任何内容。Vim提示wiki有更多信息

我也在寻找它,最终为我的代码显示创建了一些东西。这里有一个好方法:

  • 创建一个矩形表单并将文本放入其中。
  • 将字体更改为Consolas和大小〜10。
  • 将文本字体更改为灰色近黑色(灰色25%,较暗75%)
  • 如果需要,使用较深的颜色突出显示您的文本,并选择一个作为轮廓。

在此处输入图片描述

从PowerShell ISE复制和粘贴到Word。
与Visual Studio相同。

在阅读了很多相关答案后,我找到了自己的解决方案,这对我来说是最合适的。

结果如下所示:最终结果

如您所见,它与Stack Overflow上的语法突出显示相同,非常棒。

复制步骤:

关于堆栈溢出

  1. 转到提问(最好是Chrome
  2. 粘贴代码并添加语言标签(例如Java)以获得语法高亮
  3. 从预览复制代码

在word

  1. 插入>表>1x1
  2. 粘贴代码(您可能需要使用编辑菜单中的粘贴特殊…>格式化文本(RTF)以避免丢失语法hilighting)
  3. 表格设计>边框>无边框
  4. 选择代码>编辑>查找>替换
    搜索文档^p(段落标记)替换为^l(手动换行符)
    (这需要删除一些行之间的间隙)
  5. 再次选择代码>回顾>语言>选中“不检查拼写或语法”
  6. 最后使用引用>插入标题>新标签>将其命名为“列表”或某物添加标题

示例代码感谢这个家伙

如果您已经创建了包含大量代码片段的文档,并且您正在与时间赛跑(不幸的是,我就是这样)。将文件另存为.doc而不是.docx,瞧!为我工作。呼!

注:显然,您的文档不能具有来自>word 2007的花哨功能。

注2:如果您担心这一点,文件大小会变大。

如果你像我一样,太懒或匆忙,不想下载额外的软件,你可以使用http://markup.su/highlighter/。它非常直接,支持几个突出主题和许多编程语言。http://markup.su/highlighter/在我的例子中,我使用Visual Studio代码,由于CSS涉及样式,它不允许格式复制(如报告这里)。

从预览框中复制文本,然后在Word中转到插入->文本框,从网站粘贴预览,突出显示所有文本,然后禁用该文本框的拼写检查

这就是代码最终的样子。在Word中看到的代码

有一个很好的在线工具:https://www.troye.io/planetb/

只需复制生成的代码并将其粘贴到您的文字编辑软件中。到目前为止,我已经在mswordwpsWriter上尝试过,效果非常好。用Firefox玩得不好,但在Chrome上运行得很好(还有IE,但谁想使用它)。

其中一个主要好处是,与Word的代码格式加载项不同,它会不是弄乱您的代码,并尊重各种语言的语法。我尝试了其他答案中提供的许多其他选项,但我发现这一个是最有效的(快速和真的有效)。

在另一个答案(markup.su)中还引用了另一个在线工具,但我发现PlanetB的输出更优雅(尽管功能较少)。

输入:

输入图片描述

输出:

输入图片描述

这是我遵循的最简单的方法。假设我想粘贴Java代码。

  1. 我将代码粘贴到这里,以便将空格、制表符和花括号整齐地格式化为http://www.tutorialspoint.com/online_java_formatter.htm

  2. 然后我将从第1步得到的代码粘贴到这里,以便将颜色,字体添加到代码中http://markup.su/highlighter/

  3. 然后将从第2步获得的预览代码粘贴到MS word上。最后它看起来像这样

在此处输入图片描述

最简单的解决方案,至少对我来说,是将您的代码粘贴到文档中,突出显示它,然后导航到:

首页->样式-><<点击样式下拉箭头 >> -> 代码

这样做的好处是代码现在可以在文档中搜索(与gargamel的解决方案不同),并且能够格式化多页代码。

我使用的一种快速方法是使用带有堆栈溢出预览的剪切工具(已经内置在Microsoft工具中)。

一旦我将代码输入到提问框中,我就会捕获预览并将其作为图片插入到MS Word文档中。

在此处输入图片描述

这上面是结果,一个图片,(不是SO代码)你可以把文字。

不用担心格式化、语法检查或下载新软件或插件!

您可以使用VS代码来保持代码格式和突出显示。直接从VS复制和粘贴代码。输入图片描述

如果您使用的是Intellij IDEA,只需从IDE复制代码并将其粘贴到word文档中。

我使用创建了一个更简单的方法,因为它们更容易创建、管理和更一致(可以将表格的样式保存在文档本身中),但我找不到更好的代码着色方案方法,对不起。

步骤:

  1. 创建一个3x3表。

  2. 选择表格,并使其边框不可见(“无国界”选项),然后激活“查看网格”选项。输入图片描述

  3. 调整单元格的行间距和列宽度以获得所需的方面。(您必须进入“Table Properties”进行微调)。输入图片描述

  4. 为您的代码片段创建一个名为“Code”的“段落样式”(中所述https://stackoverflow.com/a/25092977/8533804

  5. 创建另一个名称为“Code_numberline”的“段落样式”,它将基于之前创建的样式,但这将在其定义中添加一个编号行(这将自动进行行编号)。输入图片描述

  6. 将“Code_numberline”应用于第一列,将“代码”应用于第3列。输入图片描述

  7. 在中间列中添加一个填充。输入图片描述

  8. 保存该表的风格和享受!

只需右键单击并使用“保持源格式”选项粘贴。我几乎每天都这样做来记录我的工作。此外,您可以在文件/选项/高级/剪切、复制粘贴中设置从各种主题粘贴的默认粘贴。也很有用:在Word选项的同一部分启用"显示粘贴选项"

请注意,代码编辑器主题中的所有文本属性(颜色、字体等)都将添加到Word文档中的样式表中,因此我建议您不要直接对粘贴的文本进行任何更改,因为这会给样式表添加混乱,后续粘贴将不匹配。快速研究在Word中使用“样式”(实际上是CSS)对您有很大的好处。它们非常强大。使用Word的样式表,您可以对粘贴的文本进行全局更改,但它可能会导致后续粘贴的文本添加新样式。

我已经阅读并尝试了所有的帖子,我想概述所有的解决方案。最好的方法是根据你的要求。如果只有不超过一页的短片段,那么使用插入对象。如果代码超过一页,请使用RTF格式。

插入文本框

  • 不可能分页
  • 提供拼写检查
  • 格式可以很快被破坏
  • 在一个有数千页的文档中,Word 2016开始出现问题。在某些时候,Word总是在尝试插入新文本框时崩溃。

插入对象>文档

  • 不可能分页
  • 没有拼写检查
  • 格式和内容保持安全

RTF格式

或任何其他所见即所得编辑器/在线工具/库来设置代码样式。

一些插件/附加组件

所有下来或不再工作。

我正在使用简易代码格式。它也是一个Office加载项。它允许您选择编码样式/并有一个快速格式化按钮。非常整洁。

在此处输入图片描述

答案中似乎没有提到Hilite,所以:Hilite支持多种语言(20多种),也可以通过API在线使用,并且在Github上(所以如果你不信任在线服务,你可以自己克隆、修改和运行它)。在线版本也可以通过CSS规则根据需要进行调整。

由于我需要一个将xQuery复制到Word中的工具,但是找不到合适的工具,我几分钟前找到了它。源程序是base X,由于某种原因,其格式无法传输到Word(粘贴时也无法通过保持格式等方式传输)。此外,许多给定的答案现在,即06/2019,不再工作或不支持xQuery。然而,Hilite做得很好。

编辑:代码块不是结果的一部分,不幸的是,只是突出显示。尽管如此,它总比没有好,并且通过在周围添加块来调整结果仍然比手动格式化每一行的工作量更少

2019年试图解决此问题的人的答案:

这个问题的大多数答案现在已经过时了。我希望有一种方法可以时不时地重新检查旧的问题和答案!

我为这个问题找到的适用于Office 365及其关联程序的方法可以在这里中找到。

我发现最好的方法是使用桌子。

使用1x1创建一个表。然后复制代码并粘贴它。
如果您使用的是桌面应用程序,那么它将继承代码编辑器主题颜色并相应地粘贴它,否则您可以将表格样式更改为任何颜色。

输入图片描述

更新 ------------------

从Word 2021开始,您可以直接粘贴代码,它会保留格式。无需创建表格。谢谢@RdC1965提到这一点。

一个使用多种语言进行着色的网站。http://hilite.me/

您可以自己托管一个,因为它是开源的。代码在github上。

您可以将代码粘贴到LINQPad中。然后从LINQPad复制到MS Word。LINQPad支持以下编程语言:C#、VB、SQL、ESQL和F#

您可以简单地在任何办公程序上使用此加载项。

转到插入选项卡,然后获取加载项,并搜索简易语法高亮

它支持

  • 185种语言和89个主题。

  • 自动语言检测。

  • 多语言代码突出显示。

  • 我所做的是使用Google Backup and Sync并将docx文件放入与Google Drive同步的文件夹中。
  • 然后在chrome中打开文件,因为谷歌驱动器具有解析docx文件的功能。
  • 然后运行这个插件https://workspace.google.com/marketplace/app/code_blocks/100740430168,它用不同的语言格式化代码,主题很好。
  • 完成后,保存它并在同步后在系统中打开docx文件。