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


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

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

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


1600
2017-12-22 21:45


起源


我已经采用了混合解决方案。使用RTF格式复制,粘贴到OpenOffice Writer中,删除背景(如果有),然后将代码粘贴到MS Word中。出于某种原因,我无法删除Word中的背景:-(无论如何, “复制类固醇” 在PhpStorm,WebStorm,PyCharm中执行此操作的插件非常棒! - chjortlund
从Office 365开始,我甚至不知道Word 2013或2016.它有在线Addin称为“代码格式”。安装Office Addin,在word文档中,您只需选择所有代码(甚至多个页面),然后从代码格式插件中单击转换它按钮,它就会将其转换为带行号的格式化颜色代码。我找不到没有行号格式的选项!但尽管如此,还不错! - Rahul Saini


答案:


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

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

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

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

而且只需几秒钟。


1481
2018-04-16 13:54



辉煌!多年来,我一直在摆弄风格,桌子和其他变通方法。这一次解决了所有问题。请注意,您还可以获得为代码添加标题的好处。我为布朗尼点添加了一个新的标签类型“列表”:-) - Nebula
这似乎不适用于比页面更长的代码? - WiSaGaN
@BetaRide不,它没有。我刚刚在没有安装OpenOffice的机器上的文档上使用它。 OpenDocument是指MS Office等支持的文件格式: en.wikipedia.org/wiki/OpenDocument - Jamie F
在OSX上的Word 2011上看不到该选项:( - Matt Gibson
对于OSX上的Word 2011,请使用:插入 - >对象... Microsoft Word文档 - s_t_e_v_e


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

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

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

  3. 选择要复制的文本;

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

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

更新29/06/2013:

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

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

screenshot from notepad++


874
2017-12-22 20:58



这非常有效。我已经将Notepad ++用于其他代码项目,但从未考虑过使用它。结合添加了淡蓝色背景,边框和禁用拼写检查的Word样式,它看起来相当不错,并且对于许多文件来说相当快,而不是涉及文件导出和导入的方法。虽然我希望有一种方法可以将其添加为自动检查原始.java文件以进行更新的字段,并将最新的源代码保存在Word文件中。 - Neil
谢谢你的提示。 插件 - > NppExport - >将RTF复制到剪贴板 也有效。 - Andrew Huey
@AndyH谢谢!我的右键菜单没有 插件命令。 - Error 454
这非常有效。在Word 2007+中,添加边框并禁用拼写检查:1)选择您的代码; 2)'主页 - >样式 - >将选择保存为新的快速样式'(它是一个下拉按钮); 3)将其命名为“代码”或类似名称; 4)修改; 5)格式 - >边框(左下角)添加边框; 6)格式 - >语言[X]不检查拼写或语法。现在,您可以将相同的格式“代码”应用于从NppExport粘贴的文本。 - Blazes
@BennyNeugebauer:可以通过配置Format-> Numbering选项,Define new number formate,删除第一种样式的点来添加行号。您可以通过以下@ Blazes的步骤进入格式选项或在样式中选择新样式 - >管理样式 - >修改 - Miranda


enter image description here

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

有点高兴!

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


80
2017-11-07 19:09



只有帖子我看到答案是单词添加的地方。最简单的解决方案,这应该是2017年接受的答案! - mimo
但这仍然显示拼写错误/警告。 - schauhan
@schauhan从来没有打算删除拼写错误/警告。此插件的目的是使用关键字高亮显示和缩进格式化代码。 - Rahul Saini
这个插件不能正确处理与JS混合的HTML,输出完全错误且不可接受。 - modiX
非常适合JSON,谢谢! - Berat Baran Cevik


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

结果如下所示: the final result

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

重现步骤:

在Stack Overflow上

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

在Word中

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

示例代码谢谢 这家伙


61
2017-07-05 14:46



要添加行号,您可以在左侧插入一列,并在一个单元格中包含所有行号。 - Matthias A. Eckhart
这需要SQL,这有帮助。 - Muneeb Mirza


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


48
2017-12-22 22:10



但远非100%的保真度。由于某种原因,复制过程似乎删除了大量格式。 - Frank Krueger
顺便说一下,这对Eclipse和OpenOffice Writer很有效(我不知道Eclipse / Word或VisualStudio / Writer,')。 - Joachim Sauer
我想知道它是否取决于您是否使用选项卡或Visual Studio将选项卡转换为空格。我没有注意到任何空格问题。 - devuxer
使用空格似乎可以解决任何格式错误。有点痛,但确实有效。 - shmeeps
工作,但因为我有一个黑色的主题...结果难以辨认。 blog.wekeroad.com/wp-content/uploads/2007/10/codefile.gif - EdgarT


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

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

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


27
2018-04-16 14:10



感谢Donal获取此信息。可能会问,我如何使用意图来表示嵌套代码行?如果我为段落使用背景颜色和边框,当我使用缩进时整个块都在移动。 - m.spyratos
本来很高兴分享你的风格/模板? - Eric Ouellet


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

使用 CTRL+空格键 重置样式。


21
2017-12-22 21:48



您不会保持语法高亮。 - Uri
如果我们在这里谈论Word文档,语法突出显示会被高估。但它也可以在VB脚本中轻松实现,该脚本将所有文本设置为“代码”。 - Frank Krueger
这也是我做得很好的结果,虽然我也关闭了拼写/语法检查我的“代码”风格。 - Clayton
当然,你可以保持语法高亮: 创建没有字体颜色的样式 - elgonzo
拼写错误将随处突出显示。 - SOFe


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

只需复制生成的代码并将其粘贴到您的文字编辑软件中即可。到目前为止,我已经尝试过了 MS Word 和 WPS作家,效果很好。 不适合使用Firefox,但在Chrome上运行得很好(和IE也一样,但是谁想要使用它)。

其中一个主要好处是,与Word的Code Format Add-In不同,它确实如此  搞乱你的代码,并尊重各种语言的语法。 我尝试了其他答案中提供的许多其他选项,但我发现这一个是最有效的(快速和  有效)。

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

输入: 

enter image description here

输出: 

enter image description here


20
2018-03-24 21:01





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


19
2017-12-22 22:02



它仍然不会保持语法高亮。 - Sk8erPeter
@ Sk8erPeter:情况不一定如此。复制和粘贴不仅能够传输颜色信息 - 它总是在我不愿意的时候完成。它取决于源应用程序和目标应用程序是否都支持相同的模式来指定它。 - chaos
这个解决方案很简单,而且足够好! - Dan Ciborowski - MSFT


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

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

这就是代码最终的样子。code as seen in Word


16
2017-09-08 16:20



有没有办法改变字体大小?我的代码非常大,我想用几个页面来填充它。更改单词中的字体大小没有帮助 - dark32
可能是因为在更改字体大小之前没有突出显示文本框中的文本? - maaw
它会更改字体大小,但不会影响行之间的空间 - dark32
@ dark32如果我正确理解你的问题,你需要改变行间距: support.office.com/en-us/article/... - maaw
然而,截至12/78/2017该网站,这在一周前工作得很好 markup.su/highlighter 不再有效。希望很快就能恢复。 - Gorgon_Union