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

Law*_*nti 1877 ms-word

有没有人知道在Microsoft Word文档中显示代码以保留着色和格式的方法?优选地,该方法也是不显眼的并且易于更新.

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

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

小智 1791

对于我来说,这是在单词中添加代码的最佳方式:

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

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

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

而且只需几秒钟.

  • 这似乎不适用于比页面更长的代码? (141认同)
  • 在OSX上的Word 2011上看不到该选项:( (41认同)
  • 对于OSX上的Word 2011,请使用:插入 - >对象... Microsoft Word文档 (32认同)
  • 辉煌!多年来,我一直在摆弄风格,桌子和其他变通方法.这一次解决了所有问题.请注意,您还可以获得为代码添加标题的好处.我为布朗尼点添加了一个新标签类型"列表":-) (17认同)
  • @BetaRide不,它没有.我只是在没有安装OpenOffice的机器上的文档上使用它.OpenDocument是指MS Office等支持的文件格式:http://en.wikipedia.org/wiki/OpenDocument (13认同)
  • 当代码超过一页时,我们如何显示整个代码。在这种情况下,整个对象正在转移到新页面,并且只显示该页面中的内容。对象是否有可能不会转移到新页面并显示整个代码? (7认同)
  • 请注意,这需要在您的计算机上安装open/libre office. (5认同)
  • 如果要从Notepad ++进行复制,请使用插件 - > NppExport - >将HTML复制到剪贴板 (5认同)
  • 似乎不像 MS Word 365 版本中描述的那样工作。 (4认同)
  • 我有Windows 7,Word 2007,但没有安装OpenOffice,但仍然可以使用这种方法。我的同事拥有Windows Vista,Word 2007和OpenOffice 3.2,无法打开由我创建的对象。他可以创建自己的对象,而不能在单独的窗口中进行编辑,而可以在主文档中进行编辑(对象周围仅显示一些标尺)。编辑:如果我将“ openDocument文本”转换为“ MS Word文档”,则他现在可以编辑我的对象。 (3认同)
  • 下面的其他解决方案是更好的imo。此解决方案的问题在于,如果您将代码作为对象嵌入,则它不可搜索。此外,如果您的代码跨越多个页面,那么您必须为代码跨越的每个页面创建多个对象。 (3认同)
  • 精彩的提示.需要注意的是,如果从IntelliJ复制代码(在没有语法高亮的情况下复制它),它就不起作用 (2认同)
  • 缺点是您不能选择文本,也不能复制文本以将其粘贴到其他位置。 (2认同)
  • 这完全取决于您复制代码的来源!从 Microsoft 脚本编辑器复制根本不保留任何突出显示。 (2认同)
  • 关于如何在此解决方案中包含行号的任何提示? (2认同)
  • *** 对于 VS 用户来说很重要:这些答案中有很多都有效。但是,如果您没有在 Visual Studio 中设置正确的选项,大多数将无法工作。为了从 Visual Studio 复制 COLOR 编码,您需要转到***工具 > 选项 > 文本编辑器 > 高级 > 确保选中“复制/剪切时复制富文本”复选框***。一旦你这样做了,这个问题的几乎所有答案都有效。 (2认同)

Saa*_*aad 959

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

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

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

  3. 选择要复制的文本;

  4. 右键单击并选择插件命令 - > 使用语法突出显示复制文本 ;

  5. 将其粘贴到MS Word中即可开始使用!

更新29/06/2013:

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

我使用将所有格式复制到剪贴板并在MS word中"粘贴为HTML".

来自notepad ++的截图

  • 谢谢你的提示.**插件 - > NppExport - >将RTF复制到剪贴板**也可以. (91认同)
  • 这非常有效.在Word 2007+中,添加边框并禁用拼写检查:1)选择您的代码; 2)'主页 - >样式 - >将选择保存为新的快速样式'(它是一个下拉按钮); 3)将其命名为"代码"或类似名称; 4)修改; 5)格式 - >边框(左下角)添加边框; 6)格式 - >语言[X]不检查拼写或语法.现在,您可以将相同的格式"代码"应用于从NppExport粘贴的文本. (31认同)
  • 这非常有效.我已经将Notepad ++用于其他代码项目,但从未考虑过使用它.结合添加了淡蓝色背景,边框和禁用拼写检查的Word样式,它看起来相当不错,并且对于许多文件来说相当快,而不是涉及文件导出和导入的方法.虽然我希望有一种方法可以将其添加为自动检查原始.java文件以获取更新的字段,并将最新的源代码保存在Word文件中. (7认同)
  • @BennyNeugebauer:可以通过配置Format-> Numbering选项,Define new number formate,删除第一种样式的点来添加行号.您可以通过以下@ Blazes的步骤进入格式选项或在样式中选择新样式 - >管理样式 - >修改 (6认同)
  • 这个很好用,无法在Word文档中获取Word文档来发挥很好.伙计这是要走的路! (2认同)
  • 这种方法的唯一缺点是它取决于Notepad ++中语言的语法高亮支持(例如,如果你使用的是Drools).我认为这同样适用于eclipse,但两者都是很好的方法 (2认同)

Rah*_*ini 120

在此输入图像描述

代码格式 Addin现在可以在带Office 365的Office Addins中使用!只需选择代码并单击转换它,它将代码文本转换为带行号的格式化颜色代码!

有点高兴!

代码格式可在此处获取:https://appsource.microsoft.com/en-us/product/office/WA104379501?tab =概述

  • 不再可用 (17认同)
  • 在插件列表中找到了 [Easy Code Formatter](https://appsource.microsoft.com/en-us/product/office/WA104382008?src=office&tab=Overview),效果很好。 (12认同)
  • 只有帖子我看到答案是单词添加的地方.最简单的解决方案,这应该是2017年接受的答案! (9认同)
  • 但这仍然显示拼写错误/警告. (3认同)
  • @schauhan从来没有打算删除拼写错误/警告.此插件的目的是使用关键字高亮显示和缩进格式化代码. (2认同)
  • 或者,名为 [简单语法荧光笔](https://appsource.microsoft.com/en-us/product/office/WA200000011?src=office&tab=Overview) 的单词加载项提供特定于语言的突出显示,每种语言有多个主题和自动语言检测。 (2认同)

mon*_*.py 101

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

结果如下所示: 最后的结果

正如您所看到的,它与Stack Overflow上的语法突出显示相同,非常棒.

重现步骤:

在Stack Overflow上

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

在Word中

  1. 插入>表> 1x1
  2. 粘贴代码
  3. 表设计>边框>无边框
  4. 选择代码>编辑>查找>替换
    搜索文档^ p(段落标记)替换为^ l(手动
    换行符)(这是删除某些行之间的间隙所必需的)
  5. 再次选择代码>查看>语言>选中"不检查拼写或语法"
  6. 最后使用References> Insert Caption> New Label>将其命名为"Listing"或sth

示例代码感谢这个家伙

  • 要添加行号,您可以在左侧插入一列并在一个单元格中包含所有行号。 (2认同)
  • 这是我最喜欢的答案,因为它允许阅读文档的人复制/粘贴代码。 (2认同)
  • 在 macOS big sur Word 16.50 上失去了漂亮的语法突出显示功能 (2认同)
  • @spartygw 确保使用“选择性粘贴 -> 格式化文本 (RTF)” (2认同)

Fah*_*hmi 79

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

只需复制生成的代码并将其粘贴到您的文字编辑软件中即可.到目前为止,我已经在MS WordWPS Writer上尝试过它,效果非常好.不适合使用Firefox,但在Chrome(和IE也适用,但谁想要使用它)上工作得很好.

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

在另一个答案(markup.su)中引用了另一个onlinz工具,但我发现planetB输出更优雅(虽然不太通用).

输入:

在此输入图像描述

输出:

在此输入图像描述

  • 网站不再工作。 (8认同)
  • 只是为了让其他人知道,上面的输出也是它在 Word 文档中的显示方式,行号、绿色边框和语法突出显示 (3认同)
  • 唯一的缺点是,如果您想复制并粘贴代码,则必须手动删除行号。 (2认同)
  • 行号只是普通的 Word 编号列表,因此在复制/粘贴到 Word 中后,您可以通过取消选择编号列表选项(主页 > 段落 > 编号 = 无)轻松删除它们。 (2认同)

Jim*_*mmy 53

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

  • 但远非100%的保真度.由于某种原因,复制过程似乎删除了大量格式. (6认同)
  • 顺便说一下,这对Eclipse和OpenOffice Writer非常有效(我不知道Eclipse/Word或VisualStudio/Writer,'). (3认同)
  • 工作,但因为我有一个黑色的主题...结果难以辨认.http://blog.wekeroad.com/wp-content/uploads/2007/10/codefile.gif (2认同)

Don*_*ows 27

当我这样做时,我已经广泛使用了样式.它有很大帮助.

我所做的是创建一个段落样式(可能称为" Code Example"或类似的东西),它使用等宽字体,精心挑选的标签,非常浅灰色的背景,上方和下方的薄黑色边框(这有助于提高可视性)以及拼写关闭.我还确保线间和段间间距设置正确.然后我在顶部创建其他字符样式(例如," Comment"," String"," Keyword"," Function Name Decl"," Variable Name Decl"),我将其分层在顶部; 那些设置颜色以及文本是否为粗体/斜体.然后很简单地将粘贴的示例标记为代码并让它看起来非常好,这适用于短片段.很长一段代码通常不应该出现在死树上.:-)

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

  • 本来很高兴分享你的风格/模板? (7认同)

fra*_*yer 23

尝试定义一个名为'code'的样式并使其使用一个小的固定宽度字体,它应该看起来更好.

使用CTRL+ SPACEBAR重置样式.

  • 您不会保持语法高亮. (15认同)
  • 当然你可以保持语法高亮:[创建一个没有字体颜色的样式](http://superuser.com/questions/360488/word-2010-create-a-style-without-a-font-color) (2认同)

小智 21

您可以只使用 PlanetB:http ://planetb.ca/syntax-highlight-word

复制和过去,选择语言并享受结果。


cha*_*aos 19

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

  • 它仍然不会保持语法高亮. (3认同)

maa*_*aaw 19

如果你像我一样,懒得或匆忙而且不想下载其他软件,你可以使用http://markup.su/highlighter/.它非常直接,支持几个高亮主题和许多编程语言.http://markup.su/highlighter/在我的情况下,我使用的是Visual Studio Code,由于CSS涉及样式,因此不允许使用格式进行复制(如此处所述).

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

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

  • 林克又死了……提醒一下。 (5认同)
  • 这在一周前工作得很好,但是,截至12/78/2017,网站http://markup.su/highlighter/不再有效.希望很快就能恢复. (2认同)

Pat*_*206 18

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

安装名为SublimeHighlight的包.

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

  • 这对我来说非常有效。Word 扩展完全弄乱了我的代码和注释,使我无法阅读。这实际上工作得很好。我要补充一点,你可以简单地转到 sublime,点击 cmd+shift+P,转到 `Install package` 并在那里输入 `highlight`。它会立即安装 (3认同)

Shu*_*kar 13

我发现的最好方法是使用表格。

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

在此处输入图片说明


Col*_*ica 12

这有点间接,但效果非常好.获取LiveWriter并安装此插件:

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

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

它看起来很棒,可以包含行号.它也适合跨越页面.

HTH

科尔比非洲


Mar*_*ouh 11

您可以简单地在任何 Office 程序上使用此插件。

转到“插入”选项卡,然后“获取加载项”,然后搜索“简易语法荧光笔”

它支持

  • 185 种语言和 89 个主题。

  • 自动语言检测。

  • 多语言代码高亮。


Dim*_* K. 10

根据我的经验,来自eclipse和Notepad ++的copy-paste直接使用word.

出于某种原因,我遇到了一个没有保留着色的文件的问题.我创建了一个新的.java文件,将代码复制粘贴到该文件,然后复制粘贴到word并且它有效...

正如其他人所说,创造一个新的款式.我所做的是使用单声道字体,如快递新,小尺寸接近8px的字体,单个间隔段之间没有空格,使制表停小(0.5厘米,1厘米,...,5厘米),放一个简单的线条边框围绕文本并禁用语法检查.这样我实现了日食的线路制动,所以我不需要做更多的事情.

希望我帮忙;)


Gow*_*ham 9

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

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


RFA*_*FAI 9

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

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

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


Sid*_*ted 8

这是我遵循的最简单的方法.考虑我想粘贴java代码.

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

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

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

在此输入图像描述


Con*_*lls 7

使用像Windows附带的Lucida Console这样的等宽字体.如果从Visual Studio剪切/粘贴或支持语法突出显示的内容,您通常可以保留语法高亮显示的颜色方案.


blu*_*eys 7

我正在使用Word 2010,我喜欢从github gist复制和粘贴.只记得保持源格式化!

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

您可以选择是否使用编号进行复制.


Cap*_*pan 7

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


Joe*_*eng 7

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


Mav*_*tes 7

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

在此处输入图片说明


Jos*_*oco 6

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

SciTE支持以下语言,但可能支持其他语言:Abaqus*,Ada,ANS.1 MIB定义文件*,APDL,汇编程序(NASM,MASM),Asymptote*,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*.


ime*_*esh 6

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


Nic*_*alu 6

适合在 2023 年寻找工具的人们。这是一个适用于 Word 2016 和 2019 的工具。

https://syntax-highlighter.k26.ch/

我成功了,因为有很多类似的工具,但它们都离线或停止工作。如果您有反馈或问题,请创建 GitHub 问题。它也非常简单、小并且适合一个 HTML 文件。您可以下载或克隆存储库并自行托管。


Uri*_*Uri 5

确实没有一种干净的方法可以做到这一点,根据你的确切风格设置它仍然看起来很腥.

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


Ped*_*nço 5

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

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

在此处输入图片说明


Nad*_*lal 5

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

脚步:

  1. 创建一个 3x3 表。

  2. 选择表格,使其边框不可见(“无边框”选项),并激活“查看网格线”选项。 在此处输入图片说明

  3. 调整单元格的间距和列的宽度以获得所需的方面。(您必须进入“表格属性”进行微调)。 在此处输入图片说明

  4. 为您的代码片段创建一个名为“代码”的“段落样式” (/sf/answers/1756508421/ 中所述

  5. 创建另一个名为“ Code_numberline ”的“段落样式”,该样式将基于先前创建的样式,但是您将在其定义中添加一个编号行(这将自动编号行)。 在此处输入图片说明

  6. 将“ Code_numberline ”应用于第一列,将“ Code ”应用于第3列。 在此处输入图片说明

  7. 在中间列添加一个填充。 在此处输入图片说明

  8. 保存那种餐桌风格,尽情享受吧!


Ogn*_*rov 5

A web site for coloration with lots of languages. http://hilite.me/

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