代码之家  ›  专栏  ›  技术社区  ›  Lawrence Barsanti

如何以MS Word保留格式和语法突出显示显示代码段?

  •  1722
  • Lawrence Barsanti  · 技术社区  · 16 年前

    有人知道在Microsoft Word文档中显示保留颜色和格式的代码的方法吗?最好,该方法也不引人注目,易于更新。

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

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

    36 回复  |  直到 6 年前
        1
  •  1596
  •   Todd Smith Brandon    9 年前

    以下是在Word中添加代码的最佳方法:

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

    结果看起来很好。此方法的优点如下:

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

    只需几秒钟。

        2
  •  912
  •   root-11    11 年前

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

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

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

    3. 选择要复制的文本;

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

    5. 把它贴到Word里,你就可以走了!

    2013年6月29日更新:

    记事本++有一个名为“nppexport”(预装)的插件,允许您复制到rtf、html和all。它允许使用几十种语言,而前面提到的IDE仅限于少数几种语言(没有其他插件)。

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

    screenshot from notepad++

        3
  •  106
  •   JohnLBevan    6 年前

    enter image description here

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

    一点高兴!

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

        4
  •  76
  •   Community CDub    7 年前

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

    结果如下: the final result

    正如您所看到的,它和堆栈溢出一样突出显示了相同的语法,这非常棒。

    复制步骤:

    堆栈溢出

    1. 古托 Ask Question (最好与 )
    2. 粘贴代码并添加 语言标记 (例如Java)获取语法高亮显示
    3. 从预览复制代码

    在Word

    1. 插入表1X1
    2. 粘贴代码
    3. 表格设计>边框>无边框
    4. 选择“代码”>“编辑”>“查找”>“替换”
      搜索文档 p (段落标记) 替换为 ^ L (手动换行)
      (这是为了消除某些线条之间的间隙)
    5. 再次选择“代码”>“检查”>“语言”>“不检查拼写或语法”
    6. 最后使用引用添加标题插入标题新标签将其命名为“listing”或“sth”

    示例代码感谢 this guy

        5
  •  51
  •   Jimmy    16 年前

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

        6
  •  46
  •   Mehdi LAMRANI    7 年前

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

    只需复制生成的代码并将其粘贴到Word编辑软件中。到目前为止我已经试过了 MS字 WPS写入器 ,效果很好。 虽然不能很好地使用火狐,但在Chrome上却能很好地工作(IE也是,但谁想使用它)。

    其中一个主要好处是,与Word的代码格式外接程序不同,它确实 不是 处理代码,尊重各种语言的语法。 我尝试了其他答案中提供的许多其他选项,但我发现这一个是最有效的(快速和 真的? 有效的。

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

    输入:

    enter image description here

    输出:

    enter image description here

        7
  •  27
  •   Donal Fellows    14 年前

    当我这样做的时候,我已经广泛地运用了风格。它有很大帮助。

    我要做的是创建一个段落样式(可能称为 Code Example “或者类似的东西),它使用单空间字体,精心选择的标签,非常浅的灰色背景,上面和下面有一个很薄的黑色边框(这有助于很大程度的可见性),并且关闭了拼写。我还确保行间距和段落间距设置正确。然后在顶部创建其他字符样式(例如“ Comment “,” String “,” Keyword “,” Function Name Decl “,” Variable Name Decl “)我将其放在上面;这些设置颜色以及文本是否为粗体/斜体。然后很简单地将粘贴的示例标记为代码,并让它看起来非常好,这对短代码段很好。很长的代码块通常不应该放在一棵死树上。-)

    这样做的一个好处是很容易适应您正在做的任何代码;您不必依赖于某个IDE来了解您正在做的事情。(主要问题是?打印页面通常不如编辑器窗口宽,因此包装会很糟糕…)

        8
  •  22
  •   shA.t Rami Jamleh    9 年前

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

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

        9
  •  18
  •   chaos    16 年前

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

        10
  •  18
  •   maaw    6 年前

    如果你和我一样,太懒惰或匆忙,不想下载其他软件,你可以使用 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

        11
  •  16
  •   Patrick_870206    8 年前

    如果您正在使用 崇高文本 您可以将代码从Sublime复制到MS Word,保留突出显示的语法。

    安装名为 SublimeHighlight .

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

        12
  •  12
  •   zekus    16 年前

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

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

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

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

    高温高压

    科比非洲

        13
  •  9
  •   Dimitrios K.    12 年前

    根据我的经验,从Eclipse和Notepad++复制粘贴可以直接与Word一起使用。

    出于某种原因,我对一个不保留颜色的文件有问题。我制作了一个新的.java文件,复制粘贴代码到那个,然后复制粘贴到Word,它工作了…

    正如其他人所说,创建一个新的段落样式。我要做的是使用像Courier New这样的单间距字体,字体的小尺寸接近8px,段落之间的单间距没有空格,使制表位变小(0.5cm,1cm,…,5cm),在文本周围放置一个简单的线条边框并禁用语法检查。这样我就实现了Eclipse的线路制动,所以我不需要做更多的事情。

    希望我能帮忙;)

        14
  •  7
  •   ConcernedOfTunbridgeWells    16 年前

    使用等宽字体 Lucida Console, 随窗户而来。如果从Visual Studio或支持语法突出显示的内容中剪切/粘贴,通常可以保留语法突出显示的颜色方案。

        15
  •  7
  •   Gowtham    9 年前

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

    接下来,在Web浏览器中打开这个HTML文件,并复制/粘贴它呈现给Word的内容。vim提示wiki有 more information .

        16
  •  7
  •   Siddarth Kanted    7 年前

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

    1. 我把代码粘贴在这里,这样空格、制表符和花括号的格式就会很整齐。 http://www.tutorialspoint.com/online_java_formatter.htm

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

    3. 然后将步骤2得到的预览代码粘贴到MS Word。最后会像这样

    enter image description here

        17
  •  6
  •   Joseph Coco    14 年前

    如果不想安装大量的IDE,也可以使用scite粘贴代码,然后下载所有代码的插件。只需从“语言”菜单中选择语言,键入代码,输入高光代码,选择“编辑”->复制为rtf,粘贴到带格式的Word中(默认粘贴)。

    ScIt支持以下语言,但可能有其他的支持:Abaqus,艾达,ANS.1MIB定义文件*,APDL,汇编程序(NASM,MASM),渐近线*,AutoT*,AutoT*,批处理文件(MS-DOS),BAA*,BASH*,BLIZASBASE *,BulnAuto*,C/C++/C. 克拉里恩 ,cmake*,conf(apache) CSound ,css*,d,diff files*,e-script*,eiffel*,erlang*,flagship(clipper/xbase) ,Flash(操作脚本) HTML,带有嵌入式JavaScript、VBScript、PHP和ASP*、Gui4CLI*、IDL——MIDIL和XPIDL*、INI、属性*和类似,iNothUp**、JavaScript *、Lisp*、Loop*、Luu*、Lua*、Bug、Matlab*、Meta Pascal、MSSQL、NNCRON、NSIS*、目标CAML*、Opal、八度表*、Pascal/Delphi*、Perl、O除了一些不明确的情况*、pl/m*、progress*、postscript*、pov ray*、powerbasic*、powershell*、purebasic*、python*、r*、rebol*、ruby*、scheme*、scriptol*、specman e*、spice、smalltalk、sql和pl sql、tads3*、tex和laTex、tcl/tk*、vb和vbscript*、verilog*、vhdl*、xml*、yaml*。

        18
  •  6
  •   bluekeys    14 年前

    我使用的是Word 2010,我喜欢从Github Gist中复制和粘贴。记住保持源格式!

    然后我将字体改为dejavu sans mono。

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

        19
  •  5
  •   Uri    16 年前

    确实没有一种干净的方法可以做到这一点,而且根据您的具体风格设置,它仍然看起来可疑。

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

        20
  •  5
  •   imesh    13 年前

    复制到Eclipse并粘贴到Word中也是另一个选项。

        21
  •  4
  •   Rob    16 年前

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

        22
  •  4
  •   imesh    14 年前

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

        23
  •  4
  •   Pedro Lourenço    9 年前

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

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

    enter image description here

        24
  •  4
  •   Capan    6 年前

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

        25
  •  3
  •   JMBT    13 年前

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

        26
  •  3
  •   Geraldo Neto    9 年前

    如果您正在使用 安卓工作室 您可以简单地复制和粘贴,代码方面也将被保留,颜色也将被保留。够简单了!

        27
  •  3
  •   Joe Cheng    6 年前

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

        28
  •  3
  •   Nader Belal    6 年前

    我创建了一个更简单的方法 桌子 ,因为它们更容易创建、管理和更一致( 可以将表的样式保存在文档本身中 但是我找不到更好的代码着色方案的方法,对不起。

    步骤:

    1. 创建一个3x3表。

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

    3. 调整单元格间距和列宽以获得所需的外观。( 你得进去” 表属性 “用于微调 ) enter image description here

    4. 创建一个“ 段落风格 “姓名为” 代码 “只为代码片段( 如上所述 https://stackoverflow.com/a/25092977/8533804 )

    5. 创建另一个“ 段落风格 “姓名为” 代码数字行 “这将基于以前创建的样式,但您将在其定义中添加编号行(这将自动进行行编号)。 enter image description here

    6. 应用 代码数字行 到第一列,以及 代码 “到3列。 enter image description here

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

    8. 保存那张桌子的风格,尽情享受吧!

        29
  •  2
  •   Andrei Karcheuski    9 年前

    来自PowerShell ISE 复制粘贴 对词。
    与Visual Studio相同。

        30
  •  1
  •   Code Lღver Ionut Rusen    10 年前

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

    以下是屏幕:

    Screen1 .

    Screen2 .