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


2005

有谁知道一种在Microsoft Word文档中显示保留颜色和格式的代码的方法?优选地,该方法也将是不引人注目的并且易于更新。

我尝试将代码作为常规文本包含在内,这看起来很糟糕,并且在编辑常规文本时会遇到麻烦。我还尝试了将对象(写字板文档和文本框)插入文档,然后将代码放入这些对象中。该代码看起来更好,并且在编辑其余文本时更容易避免。但是,这些对象只能跨越一页,这在需要添加几页代码时使编辑成为一场噩梦。

最后,我知道有更好的编辑器/格式可以解决此问题,但是我仍然坚持使用MS word。


我有一个混合的解决方案。使用RTF格式进行复制,粘贴到OpenOffice Writer中,删除背景(如果有),然后将代码粘贴到MS Word中。由于某些原因,我无法在Word中删除背景:-(无论如何,要在PhpStorm,WebStorm,PyCharm中执行此操作的“ Copy on steroids”插件太糟糕了!
chjortlund 2014年

3
从Office 365开始,甚至对于Word 2013或2016我也不知道。它具有称为“代码格式”的在线加载项。安装该Office插件,然后在您的Word文档中,只需选择所有代码(甚至多页),然后从“代码格式”插件中单击“转换它”按钮,它将其转换为带有行号的格式化颜色代码。我找不到没有行号的格式化选项,但是!!!但是尽管如此,还不错!
拉胡尔·塞尼

除了专门用于格式化代码的任何特定加载项之外,最佳解决方案是使用样式或图像。样式用于格式化。今天,我曾经使用过从Star Office到Libre Office的许多分支,但是我刚接触Word,就发现了如何通过探索样式配置来做到这一点。只需使用Notepad ++导出RTF,然后使用样式即可。我所做的一些事情是添加边框,我喜欢的背景颜色,选中“请勿在相同样式之间添加间隔”或类似内容(我使用的是法语GUI,所以我不知道确切的英语标题)或其他内容喜欢。
猫IT

代码格式是不可用的-但易代码格式化这里工作得很好:appsource.microsoft.com/en-us/product/office/...
马维Domates

Answers:


1944

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

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

结果看起来非常不错。这是此方法的优点:

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

而且只需要几秒钟。


21
辉煌!多年来,我一直在摆弄样式,表格和其他解决方法。一次性解决所有问题。请注意,您还可以获得在代码中添加标题的好处。我为布朗尼点添加了新的标签类型“列表” :-)
星云

7
请注意,这要求在您的计算机上安装开放/免费办公室。
BetaRide

14
@BetaRide不,不是。我只是在未安装OpenOffice的计算机上的文档上使用过此文件。OpenDocument是指MS Office等支持的文件格式:en.wikipedia.org/wiki/OpenDocument
Jamie F

45
在OSX的Word 2011上看不到该选项:(
Matt Gibson

39
对于OSX上的Word 2011,请使用:插入->对象... Microsoft Word文档
s_t_e_v_e 2014年

1006

下载并安装Notepad ++并执行以下操作:

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

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

  3. 选择要复制的文本;

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

  5. 将其粘贴到MS Word中就可以了!

2013年6月29日更新:

Notepad ++有一个名为“ NppExport”的插件(已预先安装),可用于复制到RTF,HTML和ALL。它允许使用多种语言,而上述IDE仅限于少数几种(没有其他插件)。

我使用将所有格式复制到剪贴板,然后在MS Word中“粘贴为HTML”。

记事本++的屏幕截图


8
效果很好。我已经有Notepad ++用于其他代码项目,但从未想过要使用它。与添加了淡淡的蓝色背景,边框和禁用的拼写检查的Word样式相结合,它看起来非常不错,并且对于许多文件而言相当快,与涉及文件导出和导入的方法相反。尽管我希望有一种方法可以将其添加为一个字段,该字段将自动检查原始.java文件的更新,并将最新的源代码保留在Word文件中。
尼尔,

92
感谢您的提示。 插件-> NppExport->将RTF复制到剪贴板也可以。
安德鲁·休伊

32
效果很好。在Word 2007+中,要添加边框并禁用拼写检查,请执行以下操作:1)选择您的代码;2)'主页->样式->将选择另存为新的快速样式'(这是一个下拉按钮);3)将其命名为“代码”或类似名称;4)修改;5)Format-> Border(左下)添加边框;6)Format-> Language [X]不要检查拼写或语法。现在,您可以将相同格式的“代码”应用于从NppExport粘贴的文本。
Blazes

2
这个软件效果很好,无法使Word Document内的Word Document发挥出色。民间这是要走的路!
Urda

6
@BennyNeugebauer:行号可以通过配置“格式”->“编号”选项来添加,定义新的号码格式,删除第一种样式的点。您可以按照@ Blazes的步骤进行操作,也可以通过选择样式来选择“新样式”->“管理样式”->“修改”
Miranda

141

在此处输入图片说明

现在,Office 365的Office加载项中提供了代码格式加载项!只需选择代码,然后单击转换它,它将代码文本转换为带有行号的格式化颜色代码!

有点高兴!

代码格式位于此处:https : //appsource.microsoft.com/zh-cn/product/office/WA104379501?tab=概述


12
我只看到我的答案是单词的附加内容。最简单的解决方案,这应该是2017年可接受的答案!
cre8

2
@schauhan从来没有打算删除拼写错误/警告。该插件的目的是使用关键字突出显示和缩进来格式化代码。
拉胡尔·赛尼

23
不再可用
user1085907 '18

4
在插件列表中找到了Easy Code Formatter,效果很好。
Felipe Silveira

1
另外,一个名为Easy Syntax Highlighter的单词加载项 提供特定于语言的突出显示,每种语言具有多个主题,并自动检测语言。
JDG

116

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

结果如下: 最终结果

如您所见,这是与Stack Overflow相同的语法高亮,非常棒。

重现步骤:

堆栈溢出

  1. 转到问问题(最好使用Chrome
  2. 粘贴代码并添加语言标签(例如Java)以突出显示语法
  3. 从预览中复制代码

在Word中

  1. 插入>表格> 1x1
  2. 粘贴代码
  3. 表格设计>边框>无边框
  4. 选择代码>编辑>查找>替换
    搜索文档^ p(段落标记)替换为^ l(手动换行)
    (这是消除某些行之间的间隙所必需的)
  5. 再次选择代码>审查>语言>选中“不检查拼写或语法”
  6. 最后,使用参考>插入标题>新标签>将其命名为“列表”或其他

示例代码感谢这个家伙


2
要添加行号,您可以在左侧插入一列,并将所有行号包括在一个单元格中。
马提亚斯·埃克哈特

2
这是我最喜欢的答案,因为它允许人们阅读文档以复制/粘贴代码。
亚当·约翰斯

97

有一个不错的在线工具:http : //www.planetb.ca/syntax-highlight-word

只需复制生成的代码并将其粘贴到您的文字编辑软件中即可。到目前为止,我已经在MS WordWPS Writer上进行了尝试,效果非常好。在Firefox上无法正常运行,但在Chrome(和IE上也可以,但谁想使用它)上也可以正常工作。

其中一个主要的好处是,不像编码格式添加的Word,它惹你的代码,并尊重各种语言的语法。我尝试了其他答案中提供的许多其他选项,但我发现这是最有效的(快速而真正有效)。

在另一个答案(markup.su)中还引用了另一个onlinz工具,但是我发现planetB的输出更加优雅(尽管通用性较差)。

输入:

在此处输入图片说明

输出:

在此处输入图片说明


1
只是让其他人知道,上面的输出也是它如何在Word文档中以行号和绿色边框以及语法高亮显示的方式
mc805

1
唯一的缺点是,如果要复制和粘贴代码,则必须手动删除行号。
史蒂文·斯皮尔卡

54

我在Visual Studio中键入代码,然后将其粘贴粘贴到word中。它保留了颜色。


6
但是远非100%的保真度。由于某种原因,复制过程似乎删除了许多格式。
Frank Krueger

3
顺便说一下,这在Eclipse和OpenOffice Writer上很好用(尽管我不知道Eclipse / Word或VisualStudio / Writer,不过)。
约阿希姆·绍尔

1
我想知道是否取决于您使用选项卡还是让Visual Studio将选项卡转换为空格。我没有发现空格有任何问题。
开发者

1
使用空格似乎可以解决所有格式错误。有点痛苦,但确实有效。

2
可行,但是由于我有一个黑色主题...结果难以辨认。blog.wekeroad.com/wp-content/uploads/2007/10/codefile.gif
EdgarT 2012年

28

完成此操作后,我就大量使用了样式。这很有帮助。

我要做的是创建一个段落样式(也许叫做“Code Example ”或类似名称),该使用等宽字体,精心选择的选项卡,非常浅的灰色背景,上方和下方的细黑边框(这有助于提高可见性)以及拼写已关闭。我还要确保正确设置行间距和段落间距。然后,我在顶部创建其他字符样式(例如“ Comment”,“ String”,“ Keyword”,“ Function Name Decl”,“ Variable Name Decl”);这些设置颜色,以及文本是否为粗体/斜体。然后很简单地将一个粘贴的示例标记为代码,并使其看起来真的很不错,这对于简短的代码片段来说效果很好。

这样做的好处是可以轻松适应正在执行的任何代码。您不必依靠某些IDE即可了解正在发生的一切。(主要问题?打印的页面通常不如编辑器窗口宽,所以包装会很烂...)


感谢Donal提供此信息。可能会问,我如何使用意图表示嵌套的代码行?如果我在段落中使用背景色和边框,则在使用缩进时会移动整个块。
m.spyratos 2012年

7
分享您的样式/模板会很高兴吗?
埃里克·厄勒

多年来一直在做同样的事情-一个很大的错误:每当我应用样式时,Word仍会红色突出显示拼写问题。如果我修改样式并选择“格式”->“语言”,则选中“不检查拼写和语法”,如果现在我用“确定”关闭格式对话框,则行会消失-但它们始终会出现,直到我这样做为止。
大黄

23

尝试定义一种称为“代码”的样式,并使其使用较小的固定宽度字体,然后看起来会更好。

使用CTRL+ SPACEBAR重置样式。


17
您不会保持语法突出显示。
Uri

1
如果我们在这里讨论Word文档,则高亮显示语法。但是,它也可以在VB脚本中轻松实现,该脚本可以为所有样式为“代码”的文本着色。
Frank Krueger

这也是我这样做的结果,尽管我也关闭了我的“代码”样式的拼写/语法检查。
克莱顿

2
当然,您可以保持语法突出显示:创建没有字体颜色的样式

21

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


4
它仍然不会保持语法突出显示。
Sk8erPeter

@ Sk8erPeter:不一定是这样。复制和粘贴不仅具有传输颜色信息的能力,而且在我宁愿不这么做的情况下也始终可以做到。这取决于源应用程序和目标应用程序是否都支持相同的架构来指定它。
2016年

21

如果您和我一样,太懒惰或急于不想下载其他软件,可以使用http://markup.su/highlighter/。它非常简单,并且支持多种突出主题和多种编程语言。http://markup.su/highlighter/就我而言,我使用的是Visual Studio Code,由于样式涉及CSS,因此不允许使用格式进行复制(如此处所述))。

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

这就是代码的最终外观。Word中的代码


有没有办法更改字体大小?我的代码很大,我想用几页文字来容纳它。更改Word中的字体大小没有帮助
dark32 '16

可能是您在更改字体大小之前没有突出显示文本框内的文本吗?
maaw

1
@ dark32如果我正确理解您的问题,您需要更改行间距:support.office.com/en-us/article/...
maaw

2
一周前,此功能运行良好,但是,自2017年12月78日起,站点markup.su/highlighter不再起作用。希望它将很快备份。
Gorgon_Union

2
链接又死了……只是抬起头。
Zombie Chibi XD

20

如果您使用Sublime Text,则可以将代码从Sublime复制到MS Word,并保留语法突出显示。

安装名为SublimeHighlight的软件包。

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


2
这对我来说非常有效。单词扩展完全弄乱了我的代码和注释,使之难以理解。这实际上工作得很好。我要补充一点,您可以简单地升华,按cmd + shift + P,然后在Install package其中键入内容highlight。它将立即安装
Claud H '18


10

以我的经验,eclipse和Notepad ++的复制粘贴可直接与word一起使用。

由于某种原因,我遇到了一个无法保留颜色的文件问题。我创建了一个新的.java文件,将代码复制粘贴到该文件,然后将其复制粘贴到word并成功运行...

正如其他人所说,创建新的段落样式。我要做的是使用等距字体,例如courier new,字体接近8像素,在段落之间没有空格的单一间距,使制表位较小(0.5cm,1cm,..,5cm),并放置简单的线条边框围绕文本并禁用语法检查。这样,我实现了日食的线路制动,因此我无需做任何其他事情。

希望我有所帮助;)


10

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

接下来,在Web浏览器中打开此html文件,然后将其呈现的内容复制/粘贴到Word。Vim提示Wiki有更多信息



9

这是我遵循的最简单的方法。考虑我要粘贴Java代码。

  1. 我将代码粘贴到此处,以便空格,制表符和花括号的格式整齐,http: //www.tutorialspoint.com/online_java_formatter.htm

  2. 然后在此处粘贴从步骤1获得的代码,以便将颜色,字体添加到代码http://markup.su/highlighter/

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

在此处输入图片说明


9

我正在使用Easy Code Formatter。这也是Office加载项。它允许您选择编码样式/,并具有快速格式化按钮。挺整洁的。

在此处输入图片说明


这似乎很酷,但无法将其安装在我的Word 2016中...
始终存在

@Jebik-如果您使用公司帐户,也许您的管理员可能已阻止了安装?我在2016年使用它...您的内部版本号是多少?
Mavi Domates,

我的版本是16.0.4849.1000。但是正如我说的,我已经安装了另外2个补充。因此,我的公司似乎并未阻止安装。这是我无法安装的扩展。老实说,我什至在商店里都找不到它。从
字面上讲,

这意味着您的Word处于不支持此插件的生成版本中。
Mavi Domates,

如果可以,请尝试更新单词,您的版本似乎有些陈旧。
Mavi Domates,

8

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


我为这个问题找到了最明智的答案。谢谢!
Anup Bangale

7

使用Windows随附的等距字体,例如Lucida Console。如果从Visual Studio中剪切/粘贴或支持语法突出显示的内容,则通常可以保留语法突出显示的配色方案。


7

我正在使用Word 2010,我喜欢从github要点进行复制和粘贴。只记得保持源格式!

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

您可以选择使用编号或不使用编号进行复制。


7

对于尝试在2019年解决此问题的人们的答案:

到目前为止,该问题的大多数答案已过时。我希望有一种方法可以不时地重新检查旧的问题和答案!

在此问题中找到的与Office 365及其相关程序兼容的方法可以在此处找到。


6

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

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


粘贴PHP代码时不起作用。只有开始和结束括号强调:(运行良好的Java虽然。

6

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


5

确实没有一种干净的方法可以执行此操作,但根据您的确切样式设置,它仍可能看起来很脏。

您可以尝试做的是首先运行代码到HTML的转换(有许多程序可以执行此操作),然后尝试使用word打开HTML文件,这可能希望为您提供格式化且美观的代码,然后将其复制并粘贴到您的文档中。


5

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

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

在此处输入图片说明


4

文档中代码的最佳表示形式是固定宽度的字体(应在IDE中显示),该字体带有淡淡的阴影背景或浅边框,以将块与其他文本区分开。


4

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




4

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.