有人知道在Microsoft Word文档中显示代码的方法吗?优选地,该方法也将是不引人注目的并且易于更新。

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

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


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

使用CTRL+SPACEBAR重置样式。


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

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

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

它看起来很棒,可以包括行号。它的跨度也相当大。

HTH

科尔比非洲


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

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


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


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


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


文档中代码的最佳呈现方式是使用固定宽度的字体(在IDE中应该显示),使用浅色阴影背景或浅色边框来区分块与其他文本。


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

转到“插入”选项卡的“文本”部分,单击“对象”按钮(位于右侧)选择OpenDocument文本,该文本将打开新的嵌入式word文档将Visual Studio/Eclipse中的代码复制并粘贴到此嵌入式单词页中保存并关闭

优势

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

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

而且只需要几秒钟。


当我这样做的时候,我已经广泛使用了各种风格。它帮助很大。

我所做的是创建一种段落样式(可能被称为“代码示例”或类似的东西),它使用单间距字体、精心选择的制表符、非常浅的灰色背景、上下细的黑色边框(这有助于提高可见性),并关闭了拼写。我还确保行间距和段落间距设置正确。然后,我在顶部创建其他字符样式(例如,“注释”、“字符串”、“关键字”、“函数名Decl”、“变量名Decl),并将其叠加在顶部;这些设置了颜色以及文本是否为粗体/斜体。然后,很简单地通过粘贴的示例并将其标记为代码,并使其看起来非常好,这对于短片段非常有用。很长的代码块通常不应该放在一棵死树上

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


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


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

在窗口中粘贴代码;从语言菜单中选择编程语言;选择要复制的文本;右键单击并选择插件命令->使用语法突出显示复制文本;将其粘贴到MS Word中,您就可以开始了!

2013年6月29日更新:

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

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


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

SciTE支持以下语言,但可能支持其他语言:Abaqus*、Ada、ANS.1 MIB定义文件*、APDL、汇编程序(NASM、MASM)、渐近线*、AutoIt*、Avenue*、批处理文件(MS-DOS)、Baan*、Bash*、BlitzBasic*、Bullant*、C/C++/C#、Clarion、cmake*、conf(Apache)、CSound、CSS*、D、diff文件*、E-Script*、Eiffel*、Erlang*、Flagship(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*。


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

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

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


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


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


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

由于某种原因,我对一个不保留颜色的文件有问题。我创建了一个新的.java文件,将粘贴代码复制到该文件,然后将粘贴复制到word文件,这样就成功了。。。

正如其他人所说,创建一个新的段落样式。我所做的是像信使一样使用单间距字体,字体的小尺寸接近8px,段落之间没有空格,使制表符变小(0.5cm,1cm,…,5cm),在文本周围放置一个简单的线条边框,并禁用语法检查。通过这种方式,我实现了eclipse的线制动,因此我不需要再做任何事情。

希望我帮助了;)


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

以下是屏幕:

屏幕1。

屏幕2。


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

安装名为SublimeHighlight的软件包。

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


如果您使用的是AndroidStudio,您可以简单地复制和粘贴,代码方面和颜色也将被保留。足够简单!


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

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


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

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


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

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


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


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

结果如下:

正如您所看到的,它是与Stack Overflow相同的语法高亮显示,非常棒。

复制步骤:

堆栈溢出时

转到提问(最好使用Chrome)粘贴代码并添加语言标签(例如Java)以获得语法高亮从预览复制代码

在Word中

插入>表格>1x1粘贴代码(您可能需要使用“编辑”菜单中的“特殊粘贴…”>“格式化文本(RTF)”,以免丢失语法)表格设计>边框>无边框选择代码>编辑>查找>替换搜索文档^p(段落标记)替换为^1(手动换行符)(这是为了消除某些线之间的间隙)再次选择代码>查看>语言>选中“不检查拼写或语法”最后,使用“参考”>“插入标题”>“新建标签”>将其命名为“列表”或某事物添加标题

感谢这家伙的示例代码


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

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

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


如果你像我一样,太懒或太匆忙,不想下载其他软件,你可以使用http://markup.su/highlighter/.它非常简单,支持几个突出主题和许多编程语言。在我的案例中,我使用的是Visual Studio代码,由于样式中涉及CSS,因此不允许使用格式复制(如本文所述)。

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

这就是代码最后的样子。


有一个很好的在线工具:https://www.troye.io/planetb/

只需复制生成的代码并将其粘贴到单词编辑软件中即可。到目前为止,我已经在MS Word和WPS Writer上试用过,效果非常好。在Firefox上玩得不好,但在Chrome上运行得很好(还有IE,但谁愿意使用它)。

主要的好处之一是,与Word的代码格式插件不同,它不会干扰代码,并且尊重各种语言的语法。我尝试了其他答案中提供的许多其他选项,但我发现这一个是最有效的(快速且真正有效)。

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

输入:

输出:


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

我将代码粘贴在这里,以便空格、制表符和花括号格式整洁http://www.tutorialspoint.com/online_java_formatter.htm然后我将步骤1中得到的代码粘贴到这里,以便将颜色、字体添加到代码中http://markup.su/highlighter/然后将步骤2得到的预览代码粘贴到MS单词上。最后会变成这样


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

home->styles-><<单击样式下拉箭头>>->代码

这有一个优点,即代码现在可以在文档中搜索(与gargamel的解决方案不同),并且可以格式化多页代码。


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

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

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

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


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


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


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

步骤:

创建3x3表格。选择表格,使其边框不可见(“无边框”选项),并激活“查看网格线”选项。调整单元格间距和列宽度以获得所需的外观。(您必须进入“表财产”进行微调)。为您的代码片段创建一个名为“代码”的“段落样式”(如https://stackoverflow.com/a/25092977/8533804)创建另一个名为“Code_numberline”的“段落样式”,该样式将基于先前创建的样式,但这将在其定义中添加编号行(这将自动进行行编号)。将“Code_numberline”应用于第一列,将“Code”应用于第3列。在中间列中添加填充。保存表格样式并享受!


只需右键单击并使用“保持源格式”选项粘贴。我几乎每天都这样做,以记录我的工作。此外,您可以在“文件”/“选项”/“高级”/“剪切”、“复制粘贴”中设置从各种源粘贴的“默认粘贴”。还有用:在“Word选项”的同一部分中启用“显示粘贴选项”。

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


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

插入文本框

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

插入对象>文档

不可能出现分页符无拼写检查格式和内容保持安全

RTF格式

可能的分页符拼写检查可用从word中再次复制代码时,注释行号在线:Planet2b.cahttp://www.planetb.ca/syntax-highlight-word脱机:突出显示http://www.andre-simon.de/doku/highlight/highlight.php

或任何其他wysiwyg编辑器/在线工具/库来设置代码样式。

一些插件/附加组件

一切都失败了,或者不起作用了。


我正在使用简易代码格式化程序。它也是Office加载项。它允许您选择编码样式/并具有快速格式化按钮。相当整洁。


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

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

编辑:不幸的是,代码块不是结果的一部分,只是突出显示。然而,这总比什么都没有好,通过在周围添加一个块来调整结果仍然比手动格式化每一行要少


2019年试图解决这个问题的人的答案:

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

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


我找到的最好的方法是使用桌子。

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

更新------------------

从Word 2021开始,您可以直接粘贴代码,它将保留格式。无需创建表。感谢@RdC1965提及这一点。


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

你可以自己主持,因为它是开源的。代码在github上。


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


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

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

它支持

185种语言和89个主题。自动语言检测。多语言代码突出显示。


我所做的是使用谷歌备份和同步,并将docx文件放在与谷歌驱动器同步的文件夹中。然后在chrome中打开文件,因为google驱动器具有解析docx文件的功能。然后运行此插件https://workspace.google.com/marketplace/app/code_blocks/100740430168它将代码格式化为具有良好主题的不同语言。完成后,将其保存并在同步后在系统中打开docx文件。