有谁知道在 Microsoft Word 文档中显示代码并保留颜色和格式的方法?优选地,该方法也将不引人注目并且易于更新。
我试图将代码作为常规文本包含在内,这看起来很糟糕,并且在编辑常规文本时会妨碍您。我还尝试在文档中插入对象、写字板文档和文本框,然后将代码放入这些对象中。代码看起来好多了,并且在编辑其余文本时更容易避免。然而,这些对象只能跨越一页,当需要添加几页代码时,这使得编辑成为一场噩梦。
最后,我知道有更好的编辑器/格式可以毫无问题地处理这个问题,但我一直在使用 MS Word。
有谁知道在 Microsoft Word 文档中显示代码并保留颜色和格式的方法?优选地,该方法也将不引人注目并且易于更新。
我试图将代码作为常规文本包含在内,这看起来很糟糕,并且在编辑常规文本时会妨碍您。我还尝试在文档中插入对象、写字板文档和文本框,然后将代码放入这些对象中。代码看起来好多了,并且在编辑其余文本时更容易避免。然而,这些对象只能跨越一页,当需要添加几页代码时,这使得编辑成为一场噩梦。
最后,我知道有更好的编辑器/格式可以毫无问题地处理这个问题,但我一直在使用 MS Word。
对我来说,这是在 word 中添加代码的最佳方式:
Insert
选项卡,Text
部分,单击Object
按钮(在右侧)OpenDocument Text
哪一个会打开一个新的嵌入 Word 文档结果看起来非常好。以下是这种方法的优点:
而且只需要几秒钟。
下载并安装Notepad++并执行以下操作:
将代码粘贴到窗口中;
从语言菜单中选择编程语言;
选择要复制的文本;
右键单击并选择Plugin commands -> Copy Text with Syntax Highlighting;
将其粘贴到 MS Word 中,您就可以开始使用了!
2013 年 6 月 29 日更新:
Notepad++ 有一个名为“NppExport”(预安装)的插件,允许您复制到 RTF、HTML 和 ALL。它允许数十种语言,而上述 IDE 仅限于少数几种(没有其他插件)。
我使用将所有格式复制到剪贴板并在 MS Word 中“粘贴为 HTML”。
代码格式插件现在可在 Office 365 的 Office 插件中使用!只需选择代码并单击转换,它将代码文本转换为带有行号的格式化颜色代码!!!
小欢喜!
此处提供代码格式:https ://appsource.microsoft.com/en-us/product/office/WA104379501?tab=Overview
在阅读了很多相关答案之后,我遇到了自己的解决方案,这对我来说是最合适的。
如您所见,它与 Stack Overflow 上的语法突出显示相同,非常棒。
重现步骤:
在堆栈溢出
在 Word 中
感谢这个人的示例代码
有一个不错的在线工具:http ://www.planetb.ca/syntax-highlight-word
↑ 此应用自 2020 年起不再可用,这是一个新的分叉工具: https ://www.troye.io/planetb/
只需复制生成的代码并将其粘贴到您的文字编辑软件中即可。到目前为止,我已经在MS Word和WPS Writer上尝试过,效果非常好。与 Firefox 不兼容,但在 Chrome 上运行良好(和 IE 也一样,但谁想使用它)。
主要好处之一是,与 Word 的代码格式加载项不同,它不会弄乱您的代码,并尊重各种语言的语法。我尝试了其他答案中提供的许多其他选项,但我发现这是最有效的(快速且非常有效)。
另一个答案(markup.su)中还引用了另一个 onlinz 工具,但我发现planetB 输出更优雅(尽管用途较少)。
输入 :
输出 :
我在 Visual Studio 中键入我的代码,然后复制粘贴到 word 中。它保留了颜色。
完成此操作后,我已广泛使用样式。它有很大帮助。
我所做的是创建一个段落样式(可能称为“ Code Example
”或类似的东西),它使用等宽字体、精心挑选的标签、非常浅的灰色背景、上下细黑色边框(这有助于提高可见性)和拼写关闭。我还确保行间和段落间的间距设置正确。然后,我在顶部创建额外的字符样式(例如,“ Comment
”、“ String
”、“ Keyword
”、“ Function Name Decl
”、“ Variable Name Decl
”),然后将它们叠加在上面;那些设置颜色以及文本是否为粗体/斜体。然后很容易通过并将粘贴的示例标记为代码并让它看起来非常好,这对于简短的片段非常有效。很长的代码块通常不应该出现在死树上。:-)
这样做的一个优点是很容易适应你正在做的任何代码。您不必依赖某些 IDE 来弄清楚发生了什么。(主要问题?打印的页面通常没有编辑器窗口那么宽,所以换行会很糟糕......)
也许这过于简单,但是您是否尝试过粘贴代码并将其上的字体设置为 Courier New?
尝试定义一种称为“代码”的样式并使其使用固定宽度的小字体,这样看起来应该会更好。
使用CTRL+SPACEBAR重置样式。
如果您使用的是Sublime Text,您可以将代码从 Sublime 复制到 MS Word 中,保留语法突出显示。
安装名为SublimeHighlight的包。
在 Sublime 中,使用光标选择要复制的代码,右键单击它,选择“复制为 rtf”,然后粘贴到 MS Word 中。
如果你和我一样懒惰或赶时间不想下载额外的软件,你可以使用http://markup.su/highlighter/。它非常直截了当,并支持几个突出主题和许多编程语言。在我的情况下,我使用的是Visual Studio Code ,由于样式中涉及 CSS(如此处所报告),它不允许使用格式复制。
从预览框中复制文本,然后在 Word 中转到插入 -> 文本框,从网站粘贴预览,突出显示所有文本,然后禁用该文本框的拼写检查。
我正在使用Easy Code Formatter。它也是一个 Office 加载项。它允许您选择编码风格 / 并有一个快速格式化按钮。漂亮整齐。
这有点间接,但效果很好。获取 LiveWriter 并安装此插件:
http://lvildosola.blogspot.com/2007/02/code-snippet-plugin-for-windows-live.html
使用插件将您的代码插入博客文章中。全选并复制到Word。
它看起来很棒,并且可以包含行号。它还可以很好地跨越页面。
高温高压
科尔比非洲
根据我的经验,来自 eclipse 和 Notepad++ 的复制粘贴直接与 word 一起使用。
出于某种原因,我遇到了一个没有保留颜色的文件的问题。我创建了一个新的 .java 文件,将代码复制粘贴到该文件,然后将其复制粘贴到 word 并且它起作用了......
正如其他人所说,创建一个新的段落样式。我所做的是使用像 courier new 这样的单行距字体,字体接近 8px 的小尺寸,段落之间没有空格的单行距,使制表位变小(0.5cm,1cm,..,5cm),放置一个简单的线条边框围绕文本并禁用语法检查。这样我就实现了日食的线制动,所以我不必再做任何事情了。
希望我有所帮助;)
这是我遵循的最简单的方法。考虑我想粘贴 java 代码。
我在这里粘贴代码,以便整齐地格式化空格、制表符和花括号http://www.tutorialspoint.com/online_java_formatter.htm
然后我在这里粘贴从第 1 步得到的代码,以便将颜色、字体添加到代码http://markup.su/highlighter/
然后将步骤 2 中获得的预览代码粘贴到 MS 字中。最后它看起来像这样
2019 年试图解决此问题的人们的答案:
这个问题的大多数答案现在已经过时了。我希望有一种方法可以不时地重新检查旧的问题和答案!
我为这个问题找到的适用于 Office 365 及其相关程序的方法可以在这里找到。
我正在使用 Word 2010,我喜欢从 github gist 复制和粘贴。只要记住保持源格式!
然后我将字体更改为 DejaVu Sans Mono。
您可以选择复制或不复制编号。
使用Windows 附带的等宽字体,例如 Lucida Console 。如果您从 Visual Studio 或支持语法突出显示的东西中剪切/粘贴,通常可以保留语法突出显示的配色方案。
复制到 Eclipse 中并将其粘贴到 Word 中也是另一种选择。
如果您使用的是 Intellij IDEA,只需从 IDE 中复制代码并将其粘贴到 word 文档中即可。
您可以在任何办公程序上简单地使用此插件。
转到insert选项卡,然后Get Add-ins,然后搜索Easy Syntax Highlighter
它支持
185 种语言和 89 个主题。
自动语言检测。
多语言代码高亮。
如果您不想安装繁重的 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*。
一个有多种语言的着色网站。 http://hilite.me/
您可以自己托管一个,因为它是开源的。代码在github 上。
确实没有一种干净的方法可以做到这一点,根据您的确切样式设置,它仍然可能看起来很可疑。
您可以尝试做的是首先运行代码到 HTML 的转换(有很多程序可以做到这一点),然后尝试用 word 打开 HTML 文件,这可能会为您提供格式化和漂亮的代码,然后将其复制并粘贴到您的文档中。
我使用表格创建了一种更简单的方法,因为它们更易于创建、管理和更一致(可以将表格的样式保存在文档本身中),但我找不到更好的代码着色方案方法,对此感到抱歉。
脚步:
创建一个 3x3 表。
为您的代码片段创建一个名为“代码”的“段落样式”(如https://stackoverflow.com/a/25092977/8533804中所述)
创建另一个名为“ Code_numberline ”的“段落样式” ,它将基于先前创建的样式,但是您将在其定义中添加一个编号行(这将自动进行行编号)。
保存该表格样式并享受!
文档中代码的最佳表示是固定宽度的字体(它应该出现在 IDE 中),带有模糊的阴影背景或浅色边框,以将块与其他文本区分开来。
如果它的 Java 源代码将其复制到 Visual Studio,然后将其复制回 Word。
好的,这很奇怪,但是为了解决我在文本中正常粘贴的背景颜色问题,选择整个块,单击荧光笔工具进行高亮(即使高亮设置为“无颜色”),然后我可以设置文本块的样式,而不会使文本的背景颜色保持白色。我正在使用 VS 11 和 Word 2010,但问题已经存在了很长时间(请参阅http://www.visualstudiodev.com/visual-studio-setup-installation/copypaste-code-from-vs-1305.shtml )
如果您使用的是Android Studio,您可以简单地复制和粘贴,并且将保留代码方面和颜色。够简单!
从 Powershell ISE复制并粘贴到 Word。
与 Visual Studio 相同。
我已阅读并尝试了所有帖子,我想概述一下所有解决方案。最好的方法取决于您的要求。如果只有不超过一页的短片段,则使用插入对象。如果代码长于一页,请使用 RTF 格式。
插入文本框
插入对象 > 文档
RTF 格式
或任何其他所见即所得的编辑器/在线工具/库来设置代码样式。
一些插件/附加组件
全部关闭或不再工作。
如果您已经创建了包含大量代码片段的文档,并且您正在与时间赛跑(不幸的是我就是这样)。将文件另存为.doc
,.docx
然后瞧!为我工作。呸!
注意:显然您的文档不能具有 > word 2007 中的花哨功能。
注意 2:如果您担心,文件大小会变大。
至少对我来说,最简单的解决方案是将代码粘贴到文档中,突出显示它,然后导航到:
主页 -> 样式 -> << 按样式单击下拉箭头 >> -> 代码
这样做的好处是现在可以在文档中搜索代码(与 gargamel 的解决方案不同),并且能够格式化多页的代码。
只需右键单击并使用“保留源格式”选项进行粘贴。我几乎每天都这样做来记录我的工作。此外,您可以在File/Options/Advanced/Cut,CopyPaste中设置“默认粘贴”以从各种来源粘贴。也很有用:在 Word 选项的同一部分中启用“显示粘贴选项”。
请注意,代码编辑器主题中的所有文本属性(颜色、字体等)都将添加到 Word 文档的样式表中,因此我建议您不要直接对粘贴的文本进行任何更改,因为这会添加样式表混乱,随后的粘贴将不匹配。快速研究一下在 Word 中使用“样式”(实际上是 CSS)对您大有裨益。他们非常强大。使用 Word 的样式表可以对粘贴的文本进行全局更改,但可能会导致后续粘贴的文本添加新样式。
您可以将代码粘贴到LINQPad中。然后从 LINQPad 复制到 MS Word。LINQPad 支持以下编程语言:C#、VB、SQL、ESQL 和 F#
答案中似乎还没有提到 Hilite,所以:Hilite 支持多种语言(20 多种),也可以通过 API 在线使用,并且在 Github 上(因此您可以在您的如果您不信任在线服务,请拥有)。在线版本也可以通过 CSS 规则根据自己的需要进行调整。
我几分钟前才发现它,因为我需要一个将 xQuery 复制到 Word 中的工具,但找不到合适的工具。源程序是baseX,由于某种原因,它的格式无法传输到Word(粘贴时也不能通过保持格式等)。此外,许多给定的答案现在(即 06/2019)不再工作或不支持 xQuery。然而,海力达的工作做得很好。
编辑: 代码块不是结果的一部分,不幸的是,只是突出显示。尽管如此,总比没有好,通过添加块来调整结果仍然比手动格式化每一行要少