ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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

我采用了混合解决方案。使用 RTF 格式复制,粘贴到 OpenOffice Writer,删除背景(如果有的话),然后将代码粘贴到 MS Word 中。出于某种原因,我无法删除 Word 中的背景 :-( 无论如何,在 PhpStorm、WebStorm、PyCharm 中执行此操作的 "Copy on steroids" 插件非常棒!
从 Office 365 开始,我什至不知道 Word 2013 或 2016。它具有称为“代码格式”的在线插件。安装该 Office 插件,在您的 word 文档中,您只需选择所有代码(甚至多页),然后单击代码格式插件中的转换按钮,它将其转换为带有行号的格式化颜色代码。我找不到没有行号的格式化选项!!!但尽管如此,还不错!
除了专用于格式化代码的任何特定插件之外,最好的解决方案是使用样式或图像。样式用于格式化。我曾经使用过从 Star Office 到 Libre Office 的许多分支,但我刚刚进入 Word,我发现如何通过浏览样式配置来做到这一点。只需使用 Notepad++ 导出 RTF,然后使用样式。我做的一些事情是添加边框,我喜欢的背景颜色,检查“不要在相同样式之间添加间距”或类似的(我有法语 GUI,所以我不知道确切的英文标题)以及任何你喜欢。
代码格式不可用 - 但这里的 Easy Code Formatter 工作得很好:appsource.microsoft.com/en-us/product/office/…
小心使用在线代码高亮工具,一旦你提交了代码,你永远不知道你的代码会发生什么。工具提供者可能会要求你的代码或任何东西。不过只是一个警告。

P
PSEUDO

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

转到插入选项卡,文本部分,单击对象按钮(它在右侧) 选择 OpenDocument 文本,这将打开一个新的嵌入式 Word 文档 从 Visual Studio / Eclipse 复制并粘贴您的代码到这个嵌入式 Word 页面中 保存并关闭

优点

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

代码保持其原始布局和颜色

代码与文档的其余部分分开,就像是图片或图表一样

拼写错误不会在代码中突出显示(这很酷!)

而且只需要几秒钟。


杰出的!多年来,我一直在摆弄样式、表格和其他解决方法。这一口气解决了所有问题。请注意,您还可以获得为代码添加标题的好处。我为布朗尼点添加了一个新的标签类型“列表”:-)
请注意,这需要在您的机器上安装 open/libre office。
@BetaRide 不,它没有。我只是在没有安装 OpenOffice 的机器上的文档上使用了它。 OpenDocument 是指一种得到 MS Office 支持的文件格式:en.wikipedia.org/wiki/OpenDocument
在 OSX 上的 Word 2011 上看不到该选项 :(
对于 OSX 上的 Word 2011,请使用:插入 -> 对象...Microsoft Word 文档
r
root-11

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

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

2013 年 6 月 29 日更新:

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

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

https://i.stack.imgur.com/woIcU.jpg


这很好用。我已经有 Notepad++ 用于其他代码项目,但从未想过使用它。结合添加了淡蓝色背景、边框和禁用拼写检查的 Word 样式,它看起来相当不错,并且对于许多文件来说相当快,而不是涉及文件导出和导入的方法。虽然我希望有一种方法可以将其添加为一个字段,该字段会自动检查原始 .java 文件的更新,并在 Word 文件中保留最新的源代码。
感谢您的提示。 Plugins -> NppExport -> Copy RTF to Clipboard 也可以。
这工作得很好。在 Word 2007+ 中,添加边框并禁用拼写检查: 1) 选择您的代码; 2) 'Home->Styles->Save selection as new Quick Style'(它是一个下拉按钮); 3) 将其命名为“代码”或类似名称; 4) 修改; 5)Format->Border(左下)添加边框; 6) Format->Language [X] 不检查拼写或语法。现在,您可以将相同格式的“代码”应用于从 NppExport 粘贴的文本。
这个效果很好,无法让 Word 文档中的 Word 文档播放得很好。伙计们,这是要走的路!
@BennyNeugebauer:可以通过配置格式->编号选项来添加行号,定义新的数字格式,删除第一个样式中的点。您可以按照@ Blazes 的步骤或在样式中选择新样式->管理样式->修改来进入格式选项
J
JohnLBevan

https://i.stack.imgur.com/Fz9Fd.jpg

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

小欢喜!

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


唯一的帖子我看到答案是在单词中添加的。最简单的解决方案,这应该是 2017 年公认的答案!
@schauhan 从来没有打算删除拼写错误/警告。这个插件的目的是用关键字高亮和缩进格式化代码。
不再可用
在插件列表中找到了 Easy Code Formatter,效果很好。
或者,一个名为 Easy Syntax Highlighter 的单词插件提供特定于语言的突出显示,每种语言具有多个主题和自动语言检测。
D
Dexter Legaspi

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

https://i.stack.imgur.com/Qik8H.jpg

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

重现步骤:

在堆栈溢出

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

在 Word 中

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

示例代码感谢 this guy


要添加行号,您可以在左侧插入一列并将所有行号包含在一个单元格中。
这是我最喜欢的答案,因为它允许阅读文档的人复制/粘贴代码。
在这种方法下,在进行自动字幕时,代码将被标记为表格。
在 macOS big sur Word 16.50 上为我失去了漂亮的语法突出显示
@spartygw 确保您使用“选择性粘贴 -> 格式化文本 (RTF)”
G
Golden

有一个不错的在线工具: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 输出更优雅(尽管用途较少)。

输入 :

https://i.stack.imgur.com/mlfmm.png

输出 :

https://i.stack.imgur.com/ByCak.png


只是为了让其他人知道,上面的输出也是它在 Word 文档中的显示方式,带有行号和绿色边框以及语法突出显示
唯一的缺点是如果你想复制和粘贴代码,你必须手动删除行号。
行号只是一个普通的 Word 编号列表,因此您可以通过取消选择编号列表选项(主页>段落>编号 = 无)轻松地将它们复制/粘贴到 Word 中。
这是这里唯一对我有用的解决方案 - 它绝对是最干净的选择!
“此应用程序当前不可用” :(
J
Jimmy

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


但远非 100% 的保真度。由于某种原因,复制过程似乎删除了很多格式。
顺便说一下,这与 Eclipse 和 OpenOffice Writer 配合得很好(虽然我不知道 Eclipse/Word 或 VisualStudio/Writer)。
我想知道这是否取决于您是使用制表符还是让 Visual Studio 将制表符转换为空格。我没有注意到空格有任何问题。
使用空格似乎可以修复任何格式错误。有点痛苦,但它确实有效。
工作,但因为我有一个黑色的主题......结果难以辨认。 blog.wekeroad.com/wp-content/uploads/2007/10/codefile.gif
D
Donal Fellows

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

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

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


感谢多纳尔提供此信息。不过可能会问,我如何使用意图来表示嵌套的代码行?如果我为我的段落使用背景颜色和边框,当我使用缩进时,整个块都在移动。
分享你的风格/模板会很好吗?
多年来一直在做同样的事情 - 一个大问题:每当我应用该样式时,Word 仍然会在拼写问题上用红色下划线。如果我修改样式并选择“格式”->“语言”,则选中“不检查拼写和语法”,如果我现在单击“确定”关闭格式对话框,这些行就会消失 - 但它们总是会出现,直到我这样做。
@Rhubarb,将“不检查”属性添加到您的样式中。这可行,但如果您想保持颜色,则需要做大量的工作。
从 Visual Studio/SSMS/Notepad++ 复制以获取颜色。然后在 word 中制作并保存此样式:字体:(默认)Consolas,9.5 pt,不检查拼写或语法,缩进:左:2.54 cm 右:2.54 cm 行距:单,空格前:16 pt 后:16 pt , 不要在相同样式的段落之间添加空格, Level 9 Pattern: Clear (Custom Color(RGB(242,242,242))), 不要调整拉丁文和亚洲文字之间的空格, 不要调整亚洲文字和数字之间的空格,样式:链接,自动更新,在样式库中显示基于:正常
c
chaos

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


它仍然不会保持语法突出显示。
@Sk8erPeter:不一定是这样。复制和粘贴不仅能够传输颜色信息——它一直都在这样做,而我宁愿不这样做。这取决于源应用程序和目标应用程序是否都支持相同的模式来指定它。
*** 对 VS 用户的重要 ***:很多这些答案都有效。但是,如果您没有在 Visual Studio 中设置正确的选项,大多数都将无法工作。为了从 Visual Studio 复制 COLOR 编码,您需要转到工具 > 选项 > 文本编辑器 > 高级 > 确保选中“复制/剪切时复制富文本”复选框。一旦你这样做了,这个问题的几乎所有答案都会起作用。
P
Patrick_870206

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

安装名为 SublimeHighlight 的软件包。

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


这对我来说非常有效。 Word 扩展完全搞乱了我的代码和注释,使我无法阅读。这实际上工作得很好。我要补充一点,您可以简单地转到 sublime,按 cmd+shift+P,转到 Install package 并在此处键入 highlight。它会立即安装
高光工作正常,但格式变得混乱。
或者只是在编辑菜单中说“复制为 HTML”
s
shA.t

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

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


你不会保持语法高亮。
如果我们在这里谈论的是 Word 文档,那么语法突出显示就被高估了。但它也很容易在 VB 脚本中实现,该脚本将所有样式设置为“代码”的文本着色。
我也是这样做的,结果非常好,尽管我也关闭了我的“代码”样式的拼写/语法检查。
当然你可以保持语法高亮:Create a Style without a font color
M
Mavi Domates

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

https://i.stack.imgur.com/OxEwO.png


这看起来很酷,但无法在我的 word 2016 中安装它......一直以来都出现错误
@Jebik - 如果您使用的是公司帐户,也许您的管理员可能阻止了安装?我在 2016 年使用它...你的内部版本号是多少?
我有版本 16.0.4849.1000。但正如我所说,我已经安装了 2 个其他补充。所以我的公司似乎没有阻止安装。这是我无法安装的扩展程序。老实说,我什至没有在商店里找到它。从我打开商店并查找应用程序时的单词开始,这个不在列表中
这意味着您的 Word 处于不支持此插件的构建版本中。
如果可以,请尝试更新 word,您的版本似乎有点旧。
m
maaw

https://i.stack.imgur.com/scFrH.png

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

https://i.stack.imgur.com/BNSdu.png


有没有办法改变字体大小?我的代码非常大,我想把它放在 word 的几页中。更改 word 中的字体大小无济于事
可能是您在更改字体大小之前没有突出显示文本框中的文本吗?
@dark32 如果我正确理解您的问题,您需要更改行距:support.office.com/en-us/article/…
这在一周前运行良好,但是从 2017 年 12 月 78 日起,网站 markup.su/highlighter 不再运行。希望它会很快恢复。
林克又死了……只是提醒一下。
S
Shubham Chadokar

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

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

https://i.stack.imgur.com/F5FlN.png


这不会从 vba 复制颜色。可以与其他语言一起使用。
从未尝试过VBA。但这取决于 IDE 主题。尝试更改主题,然后粘贴。
是的。非常感谢你!只需创建表 1x1,从 VSCode 复制代码。完毕!
C
Colby Africa

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

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

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

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

高温高压

科尔比非洲


需要 Windows Live 或 Wordpress 或其他 10 个博客平台中的帐户。
G
Gowtham

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

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


D
Dimitrios K.

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

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

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

希望我有所帮助;)


S
Siddarth Kanted

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

我在这里粘贴代码,以便整齐地格式化空格、制表符和花括号 http://www.tutorialspoint.com/online_java_formatter.htm 然后我在这里粘贴从第 1 步获得的代码,以便将颜色、字体添加到代码中http://markup.su/highlighter/ 然后将第2步得到的预览代码粘贴到MS word中。最后它看起来像这样

https://i.stack.imgur.com/9WW8s.png


C
Capan

https://i.stack.imgur.com/rNQTi.png


我为这个问题找到了最聪明的答案。谢谢!
R
RFAI

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

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

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


我认为建议将链接中的一些描述添加到答案文本中,以防链接最终失效。 meta.stackexchange.com/a/8259
b
bluekeys

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

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

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


i
imesh

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


M
Marawan Mamdouh

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

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

它支持

185 种语言和 89 个主题。

自动语言检测。

多语言代码高亮。


这也适用于在线 MS Word。非常感谢。
别客气。
警告(不仅是浪费时间) 询问您的电话号码和其他个人信息,然后将您发送到断开的链接
跳过链接,只需转到您使用的办公程序中的插入选项卡,然后单击获取加载项,然后搜索“Easy Syntax Highlighter”并添加它。 @RobHoff
C
ConcernedOfTunbridgeWells

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


J
Joe Cheng

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


J
Joseph Coco

如果您不想安装繁重的 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* , Flagship (Clipper / XBase), Flash (ActionScript), Fortran*, Forth*, GAP*, Gettext, Haskell, HTML*, HTML with embedded JavaScript, VBScript, PHP and ASP*, Gui4Cli*, IDL - MSIDL 和 XPIDL *、INI、properties* 和类似的、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*、Ver ilog*、VHDL*、XML*、YAML*。


粘贴 PHP 代码时不起作用。只有开始和结束括号突出显示:(虽然适用于 Java。
P
Pedro Lourenço

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

创建一个矩形并将文本放入其中。

将字体更改为 Consolas,大小约为 10。

将文本字体更改为接近黑色的灰色(灰色 25%,深色 75%)

如果需要,使用较深的颜色突出显示您的文本,并选择一种作为轮廓。

https://i.stack.imgur.com/cCmax.png


O
Ognyan Dimitrov

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

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


hilite.me 也适用于 Google 文档!
U
Uri

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

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


N
Nader Belal

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

脚步:

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


如果您复制并粘贴代码,则必须手动将行拆分为行。
上次我使用这种方法时,我不必这样做。可能您需要选择各种行。
R
Rob

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