2411

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

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

最后,我知道有更好的编辑器/格式可以毫无问题地处理这个问题,但我一直在使用 MS Word。

4

44 回答 44

2416

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

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

好处

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

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

而且只需要几秒钟。

于 2010-04-16T13:54:06.967 回答
1133

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

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

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

  3. 选择要复制的文本;

  4. 右键单击并选择Plugin commands -> Copy Text with Syntax Highlighting

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

2013 年 6 月 29 日更新:

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

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

记事本++截图

于 2010-12-22T20:58:14.650 回答
191

在此处输入图像描述

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

小欢喜!

此处提供代码格式:https ://appsource.microsoft.com/en-us/product/office/WA104379501?tab=Overview

于 2016-11-07T19:09:35.773 回答
143

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

结果如下所示: 最终结果

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

重现步骤:

在堆栈溢出

  1. Goto Ask Question(最好使用Chrome
  2. 粘贴代码并添加语言标签(例如 Java)以获得语法高亮
  3. 从预览中复制代码

在 Word 中

  1. 插入 > 表格 > 1x1
  2. 粘贴代码(您可能需要使用“编辑”菜单中的“选择性粘贴...> 格式化文本 (RTF),以免丢失语法高亮显示)
  3. 表格设计>边框>无边框
  4. 选择代码>编辑>查找>替换
    搜索文档^p(段落标记)替换为^l(手动
    换行符)(这是删除某些行之间的间隙所必需的)
  5. 再次选择代码 > 审阅 > 语言 > 选中“不检查拼写或语法”
  6. 最后使用 References > Insert Caption > New Label > 将其命名为“Listing”或 sth 添加标题

感谢这个人的示例代码

于 2016-07-05T14:46:42.597 回答
126

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

↑ 此应用自 2020 年起不再可用,这是一个新的分叉工具: https ://www.troye.io/planetb/

只需复制生成的代码并将其粘贴到您的文字编辑软件中即可。到目前为止,我已经在MS WordWPS Writer上尝试过,效果非常好。与 Firefox 不兼容,但在 Chrome 上运行良好(和 IE 也一样,但谁想使用它)。

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

另一个答案(markup.su)中还引用了另一个 onlinz 工具,但我发现planetB 输出更优雅(尽管用途较少)。

输入 :

在此处输入图像描述

输出 :

在此处输入图像描述

于 2017-03-24T21:01:44.663 回答
78

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

于 2008-12-22T22:10:49.230 回答
33

完成此操作后,我已广泛使用样式。它有很大帮助。

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

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

于 2010-04-16T14:10:51.247 回答
27

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

于 2008-12-22T22:02:34.753 回答
26

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

使用CTRL+SPACEBAR重置样式。

于 2008-12-22T21:48:44.750 回答
25

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

安装名为SublimeHighlight的包。

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

于 2015-08-27T16:52:51.580 回答
24

如果你和我一样懒惰或赶时间不想下载额外的软件,你可以使用http://markup.su/highlighter/。它非常直截了当,并支持几个突出主题和许多编程语言。http://markup.su/highlighter/在我的情况下,我使用的是Visual Studio Code ,由于样式中涉及 CSS(如此处所报告),它不允许使用格式复制。

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

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

于 2016-09-08T16:20:12.150 回答
23

我正在使用Easy Code Formatter。它也是一个 Office 加载项。它允许您选择编码风格 / 并有一个快速格式化按钮。漂亮整齐。

在此处输入图像描述

于 2019-04-29T16:09:21.807 回答
17

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

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

在此处输入图像描述

于 2020-04-03T12:00:39.560 回答
13

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

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

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

它看起来很棒,并且可以包含行号。它还可以很好地跨越页面。

高温高压

科尔比非洲

于 2008-12-22T21:49:37.493 回答
13

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

接下来,在 Web 浏览器中打开这个 html 文件,然后复制/粘贴它呈现给 Word 的任何内容。Vim 技巧 wiki 有更多信息

于 2016-01-29T10:03:08.753 回答
12

根据我的经验,来自 eclipse 和 Notepad++ 的复制粘贴直接与 word 一起使用。

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

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

希望我有所帮助;)

于 2012-04-14T22:53:02.273 回答
12

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

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

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

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

在此处输入图像描述

于 2017-06-20T09:58:52.500 回答
11

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

于 2018-07-28T10:18:40.930 回答
9

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

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

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

于 2019-07-14T06:52:10.663 回答
8

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

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

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

于 2011-03-25T19:55:51.700 回答
7

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

于 2008-12-23T00:18:59.110 回答
7

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

于 2012-03-12T18:23:59.147 回答
7

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

于 2018-08-14T09:40:59.287 回答
7

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

转到insert选项卡,然后Get Add-ins,然后搜索Easy Syntax Highlighter

它支持

  • 185 种语言和 89 个主题。

  • 自动语言检测。

  • 多语言代码高亮。

于 2021-03-01T12:36:39.447 回答
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 files*, E-Script*, Eiffel*, Erlang* , 旗舰 (Clipper / XBase) , Flash (ActionScript), Fortran*, Forth*, GAP*, Gettext, Haskell, HTML*, HTML with embedded JavaScript, VBScript, PHP and ASP*, Gui4Cli*, IDL - 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 , 大部分情况除外*、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*。

于 2011-03-11T07:08:40.257 回答
6

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

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

在此处输入图像描述

于 2016-03-29T11:42:14.217 回答
6

一个有多种语言的着色网站。 http://hilite.me/

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

于 2020-05-28T15:11:22.543 回答
5

确实没有一种干净的方法可以做到这一点,根据您的确切样式设置,它仍然可能看起来很可疑。

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

于 2008-12-22T21:50:11.080 回答
5

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

脚步:

  1. 创建一个 3x3 表。

  2. 选择表格,使其边框不可见(“无边框”选项),然后激活“查看网格线”选项。 在此处输入图像描述

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

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

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

  6. 将“ Code_numberline ”应用于第一列,将“ Code ”应用于第 3 列。 在此处输入图像描述

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

  8. 保存该表格样式并享受!

于 2018-11-05T12:35:39.690 回答
4

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

于 2009-01-07T19:55:44.240 回答
4

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

于 2010-11-29T15:52:59.070 回答
4

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

于 2012-03-15T21:37:18.393 回答
4

如果您使用的是Android Studio,您可以简单地复制和粘贴,并且将保留代码方面和颜色。够简单!

于 2015-08-30T00:15:11.753 回答
3

从 Powershell ISE复制并粘贴到 Word。
与 Visual Studio 相同。

于 2016-04-01T13:02:27.100 回答
3

我已阅读并尝试了所有帖子,我想概述一下所有解决方案。最好的方法取决于您的要求。如果只有不超过一页的短片段,则使用插入对象。如果代码长于一页,请使用 RTF 格式。

插入文本框

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

插入对象 > 文档

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

RTF 格式

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

一些插件/附加组件

全部关闭或不再工作。

于 2019-02-04T14:26:35.163 回答
2

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

这是屏幕:

屏幕1

屏幕2

于 2015-04-04T12:09:50.877 回答
2

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

从那里您可以粘贴到 word 或其他任何内容中。

于 2015-11-12T15:19:11.823 回答
2

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

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

在此处输入图像描述

以上是结果,一张图片,(不是SO代码)你可以用文字表达。

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

于 2018-05-31T16:06:36.053 回答
1

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

注意:显然您的文档不能具有 > word 2007 中的花哨功能。

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

于 2016-09-08T10:03:37.170 回答
1

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

主页 -> 样式 -> << 按样式单击下拉箭头 >> -> 代码

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

于 2018-02-01T10:06:45.463 回答
1

只需右键单击并使用“保留源格式”选项进行粘贴。我几乎每天都这样做来记录我的工作。此外,您可以在File/Options/Advanced/Cut,CopyPaste中设置“默认粘贴”以从各种来源粘贴。也很有用:在 Word 选项的同一部分中启用“显示粘贴选项”

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

于 2019-02-01T14:33:31.313 回答
1

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

于 2020-11-05T15:58:57.343 回答
0

答案中似乎还没有提到 Hilite,所以:Hilite 支持多种语言(20 多种),也可以通过 API 在线使用,并且在 Github 上(因此您可以在您如果您不信任在线服务,请拥有)。在线版本也可以通过 CSS 规则根据自己的需要进行调整。

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

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

于 2019-06-17T11:56:26.937 回答
0
  • 我所做的是使用 Google Backup and Sync 并将 docx 文件放在与 Google Drive 同步的文件夹中。
  • 然后在 chrome 中打开文件,因为谷歌驱动器具有解析 docx 文件的功能。
  • 然后运行这个插件https://workspace.google.com/marketplace/app/code_blocks/100740430168它将代码格式化为具有良好主题的不同语言。
  • 完成后保存并在同步后在系统中打开 docx 文件。
于 2021-11-20T10:35:46.643 回答