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

时间:2008-12-22 21:45:27

标签: ms-word

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

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

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

44 个答案:

答案 0 :(得分:1666)

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

  1. 转到Insert标签,Text部分,点击object按钮(位于右侧)
  2. 选择OpenDocument Text,这将打开一个新的嵌入式Word文档
  3. 将您的代码从Visual Studio / Eclipse中复制并粘贴到此嵌入式文字页面
  4. 保存并关闭
  5. 结果看起来非常好。以下是此方法的优点:

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

    只需几秒钟。

答案 1 :(得分:932)

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

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

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

  3. 选择要复制的文字;

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

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

  6. 更新29/06/2013:

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

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

    screenshot from notepad++

答案 2 :(得分:111)

enter image description here

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

Bit Rejoice!

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

答案 3 :(得分:81)

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

结果如下所示: the final result

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

重现的步骤:

堆栈溢出

  1. 转到Ask Question(最好使用 Chrome
  2. 粘贴代码并添加语言标记(例如Java)以获取语法高亮显示
  3. 从预览中复制代码
  4. Word中的

    1. 插入>表>的1x1
    2. 粘贴代码
    3. 表设计>边界>没有边界
    4. 选择代码>编辑>查找>更换
      搜索文档 ^ p (段落标记) 替换为 ^ l (手动换行)
      (这是消除某些线之间的间隙所必需的)
    5. 再次选择代码>评论>语言>检查"不检查拼写或语法"
    6. 最后使用参考文献>添加标题。插入标题>新标签>将它命名为#34;列出"或者......
    7. 感谢this guy

      的示例代码

答案 4 :(得分:59)

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

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

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

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

输入:

enter image description here

输出

enter image description here

答案 5 :(得分:52)

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

答案 6 :(得分:27)

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

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

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

答案 7 :(得分:22)

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

使用 CTRL + SPACEBAR 重置样式。

答案 8 :(得分:18)

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

答案 9 :(得分:18)

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

从“预览”框中复制文本,然后在Word中复制到“插入” - >文本框,从网站粘贴预览,突出显示所有文本,然后disable spell checking for that textbox

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

答案 10 :(得分:16)

如果您使用的是 Sublime Text ,则可以将代码从Sublime复制到MS Word,同时保留语法高亮显示。

安装名为SublimeHighlight的包。

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

答案 11 :(得分:12)

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

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

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

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

HTH

非洲科尔比

答案 12 :(得分:10)

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

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

enter image description here

答案 13 :(得分:9)

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

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

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

希望我帮忙;)

答案 14 :(得分:7)

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

答案 15 :(得分:7)

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

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

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

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

  4. enter image description here

答案 16 :(得分:7)

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

接下来,在Web浏览器中打开此html文件,然后将其呈现的任何内容复制/粘贴到Word。 Vim提示维基有more information

答案 17 :(得分:6)

您可以使用VS代码来保持代码格式和突出显示。直接从VS复制和粘贴代码。enter image description here

答案 18 :(得分:6)

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

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

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

答案 19 :(得分: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,差异文件*,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 *。

答案 20 :(得分:5)

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

答案 21 :(得分:5)

实际上没有一种干净的方法,根据你的确切风格设置它仍然看起来很腥。

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

答案 22 :(得分:4)

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

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

enter image description here

答案 23 :(得分:4)

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

答案 24 :(得分:4)

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

答案 25 :(得分:3)

如果您使用的是 Android Studio ,则可以简单地进行复制和粘贴,代码方面也会保留,颜色也会保留。很简单!

答案 26 :(得分:3)

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

由于它是开源的,因此您可以自己托管。该代码位于github上。

答案 27 :(得分:3)

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

答案 28 :(得分:3)

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

步骤:

  1. 创建3x3表格。

  2. 选择表格,使其边框不可见(“ 无边框 ”选项),然后激活“ 查看网格线”选项。 enter image description here

  3. 对单元格的间距和列的宽度进行调整,以获得所需的外观。 (您必须进入“ 表属性”以进行微调)。 enter image description here

  4. 为您的代码段(如{{3}中所述的)创建一个名称为“ 代码”的“ 段落样式

  5. 使用先前创建的样式创建另一个名称为“ Code_numberline ”的“ 段落样式”,但这将添加一个编号定义中的行(这将自动进行行编号)。 https://stackoverflow.com/a/25092977/8533804

  6. 在第一列中应用“ Code_numberline ”,在第三列中应用“ Code ”。 enter image description here

  7. 在中间列中添加填充。 enter image description here

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

答案 29 :(得分:3)

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

答案 30 :(得分:2)

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

enter image description here

答案 31 :(得分:2)

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

答案 32 :(得分:1)

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

将代码输入Ask Question框后,我会捕获预览并将其作为图片插入MS Word文档。

enter image description here

以上是结果,一张图片,(不是SO代码),你可以把它放进去。

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

答案 33 :(得分:1)

我已阅读并尝试了所有文章,并希望对所有解决方案进行概述。最好的方法取决于您的要求。如果只有短片段的长度不超过一页,请使用“插入对象”。如果代码长于一页,请使用RTF格式。

插入文本框

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

插入对象>文档

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

RTF格式

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

某些插件/附件

全部瘫痪或不再工作。

答案 34 :(得分:1)

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

注意:显然,您的文档不具备来自>的精彩功能2007年。

注2:如果您担心这个问题,文件大小会变大。

答案 35 :(得分:1)

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

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

答案 36 :(得分:1)

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

以下是屏幕:

Screen1

Screen2

答案 37 :(得分:1)

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

答案 38 :(得分:1)

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

转到插入标签,然后获取加载项,然后搜索Easy Syntax Highlighter

支持

  • 185 种语言和 89 个主题。

  • 自动语言检测。

  • 多语言代码突出显示。

答案 39 :(得分:0)

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

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

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

答案 40 :(得分:0)

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

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

答案 41 :(得分:0)

Hilite似乎尚未在答案中提及,因此:Hilite支持多种语言(20多种),也可以通过API在线使用,并且位于Github上(因此您可以克隆,修改并在不信任在线服务的情况下自行运行)。 在线版本也可以通过CSS规则进行调整。

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

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

答案 42 :(得分:0)

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

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

我找到的与Office 365及其关联程序兼容的问题的方法here

答案 43 :(得分:0)

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

复制并粘贴,选择语言并享受效果。