如何将格式化的代码添加到Microsoft Word文档?


29

我需要在MS-Word 2007中编写一个文档,其中包含许多VB.NET和C#代码示例。

使代码在文档中看起来合理的最佳方法是什么?

人们使用什么样式等?

(我没有时间去手工编辑/格式化代码,如果它看起来与开发人员工作室中的一样,那将非常高兴)

在其他工作中,人们正在写编程书籍,为此必须有一个好的自动化解决方案。


我想要一种使用单词样式表来控制代码外观的方法,但是不希望必须“选择”每个关键字等来设置其样式。


另请参阅https://stackoverflow.com/questions/387453/how-do-you-display-code-snippets-in-ms-word-preserving-format-and-syntax-highlig/2653406#2653406


您可能会发现stackoverflow.com/questions/760121/…有用。
旅行者

来自@ user1068538:此链接可能对stackoverflow.com/a/2653406/1068538有用。我认为@gargamel的答案(在上面的SO链接中)是在Word文档中使用编程代码的最简单方法,特别是如果您正在写书,因为它不会显示拼写错误。
fixer1234

Answers:


14

您可以使用源突出显示服务并将其复制/粘贴到Word文档。我认为这将是最快的方式(更新。VS的简单复制粘贴也将起作用)。

第二种方法是为代码块创建样式,保存样式,然后将其应用于所有代码块。


1
如何使用“资源突出显示服务”?
伊恩·林罗斯

4
例如,转到source.virtser.net,粘贴C#代码,突出显示,复制输出并粘贴到Word。

source.virtser.net链接给出“找不到页面”错误,“您尝试访问的页面在此服务器上不存在...”
JohnC 2014年

11

Word本机不支持语法突出显示或其他代码格式。因此,最好是在不同的程序来创建高亮等(Visual Studio中,日食,记事本+ +,或网站,可以做14种语言,无需安装)。

但是,粘贴文本时,直接在word文档本身中进行粘贴会导致头痛,例如拼写和语法下划线。

要解决此问题,请使用插入 -> 对象 -> OpenDocument文本,而不是直接复制和粘贴。这将打开一个新文档。在此处粘贴文本,然后关闭窗口。现在,您的代码将显示为一个对象,具有上一个窗口中显示的所有格式,但不显示任何拼写或语法检查。

虽然可以使用样式来格式化代码,但是没有内置样式可以做到这一点,并且样式实际上并不是要做什么。如果要使用样式来格式化代码,只需在创建的所有对象中使用此样式。

更新:如果要使用代码样式执行此操作,请参考以下一些想法。

  • 使用等宽字体的段落样式
  • 浅色背景(灰色效果很好)
  • 拼写功能已关闭
  • 确保行距是您想要的方式

如果您想增加一些复杂性,可以在段落样式的顶部放置字符样式,以在类溢出,类名称,实例名称等不同的格式和/或颜色下创建类似于stackoverflow上的代码预览的样式。

像这样设置样式需要花些功夫,但是与使用notepad ++或Visual Studio语法高亮显示的结果相比,您可以获得可定制的结果。

为了加快使用样式设置代码格式的速度,可能首先在其中一个程序中突出显示语法,然后使用Word的“查找”实用程序搜索与颜色或其他字体样式匹配的文本可能会有所帮助。手动识别什么是类名,例如在代码中手动识别(在查找提示中位于more-> format下)。


@ianRingrose您是否在寻找其他功能?
soandos 2012年

我希望用单词样式完成语法标注,以便我可以轻松更改类型大小等。
伊恩·林格罗斯

@IanRingrose,更新。让我知道是否缺少什么。
soandos 2012年

我认为这是格式化Word中代码的最佳方法之一。我总是在格式化方面遇到问题,作为一个对象,我再也没有任何问题了。非常感谢 ; )
xtarsy 2012年

在MS Word 2007及更高版本中,“插入->对象-> OpenDocument文本”的替代方法是在粘贴代码并使用“查看” |“选择”后选择代码。打样 设置语言并确保选择“不检查拼写或语法”。您可能必须多次应用该设置才能使其坚持下去。
JohnC


3

如果将VS设置为看起来像文档中的样子,则可以简单地复制粘贴代码。它将保留颜色和其他格式。

但是,如果您想更改文档中的样式,这将非常难以管理。在这种情况下,创建code文字样式并确保所有粘贴的代码均设置为该样式(然后,如果您更改样式,则标记为该样式的所有内容都会更改)。这将不允许您像VS中那样突出显示语法。


有一些问题,例如长于文档宽度的行会是什么样子?
旅行者

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.