DevC++实现代码高亮复制进word
时间: 2019.10.28
缘起: 课程报告大多为word版,日常写代码还是习惯使用DevC++
,然而直接在word复制代码,格式实在陋。
教程现状: 网上不少教程,大部分介绍的都是使用Notepad++来完成。不想换编辑器,因而探索了下,最终找到了使用DevC++实现代码高亮复制入word的方法。
本质: 保存为.rtf
或.html
等带格式的文件,然后复制,在Word中粘贴。
文章目录
- 0. 前言
- 1. 高亮复制原理
- 2. 网上现有方法
- 3.使用DevC++保留代码高亮
- 4.进一步美化
- 4.1 增加底纹
- 4.2 增加边框
- 4.3 增加行号
- 5. 利用 `宏` 实现操作自动化
- 6. 最终效果
- *尾声
- 1. 小感
- 2. 致谢
- 3. 本文不足
- 4. 声明
0. 前言
不少实践课程都要求写word版的报告,有无代码高亮,美观程度还是有很大差别的。下图以示对比:
图上为直接复制c++代码;图下为带高亮复制代码。可以明显看到在美观度上,两者有着不小的差距,尤其是阅读代码时。相信作为报告上交,后者会更容易加分。
1. 高亮复制原理
绝大多数代码编辑器,从中直接复制代码只包含文本,不包含格式信息。因而需要将其剪切为 富文本.rtf
或是 网页.html
,再复制入word,则可以保留高亮。
2. 网上现有方法
在撰写我的报告时,搜寻了不少 c++代码高亮复制入word 等关键词。得到的绝大部分解决方案如下:
- 使用
notepad++
直接Copy RTF/HTML to clipboard
(最多推荐) - 使用
Eclipse
去掉勾选启用折叠
(较少推荐,未验证) - 部分版本
VS
直接复制可以(有说VS2013可以,未验证)
然而。。用习惯了DevC++,不想为了这再换IDE。更重要的是,总觉得这一点DevC++应该也可以实现,因而仔细找了找,终于发现了解决方案!
3.使用DevC++保留代码高亮
步骤:
- 在DevC++中,点选
文件 -> 导出 -> 到RTF / 到HTML
- 打开导出的文件,复制文字
- 打开word,粘贴。即可看到带高亮的代码被粘贴于word。
其实就是围绕着高亮本质,找到保留成 .rtf
或是 .html
的方法即可。
注意: DevC++默认的字体是 Console,直接保留为富文本或网页文件时,其中的中文注释可能出现乱码。此时可以修改DevC++编辑器字体为中文字体,再重复上述步骤,即可解决问题。(工具 -> 编辑器选项 -> 显示 ->字体
)
4.进一步美化
粘贴完之后,可能发觉略显单调。此时可以采取一些进阶操作,来进一步的美化。
4.1 增加底纹
选中代码,对段落增加底纹,推荐 灰色,背景1,深色5%
4.2 增加边框
4.3 增加行号
关于行号,为了使其不影响之后代码的复制。因而可以使用 1行2列
的一个表格,将代码行与代码分开存放。
5. 利用 宏
实现操作自动化
在Word中粘贴代码,绝不会只有1次。这时我们可以使用VBA宏,来自动化一些重复性操作。比如,设置底纹和表格格式、敲打行号等。
Alt + F11可以进入VBA,然后在“Normal -> 模块”,右键选择“插入模块”,然后把我下面的代码复制到“模块1”并保存。(Normal是Word打开时会自动载入的一个模板文件,把宏放在这里,可以保证在任意一个Word文档中都能调用。)
Sub 设置代码表格()
' author: code4101
' 设置代码表格 宏' 背景色为morning的配色方案,RGB为(229,229,229)With Selection.Tables(1)With .Shading.Texture = wdTextureNone.ForegroundPatternColor = wdColorAutomatic.BackgroundPatternColor = 15066597End With.Borders(wdBorderLeft).LineStyle = wdLineStyleNone.Borders(wdBorderRight).LineStyle = wdLineStyleNone.Borders(wdBorderTop).LineStyle = wdLineStyleNone.Borders(wdBorderBottom).LineStyle = wdLineStyleNone.Borders(wdBorderVertical).LineStyle = wdLineStyleNone.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone.Borders.Shadow = False.AutoFitBehavior (wdAutoFitContent) '自动调整大小End WithWith Options.DefaultBorderLineStyle = wdLineStyleSingle.DefaultBorderLineWidth = wdLineWidth050pt.DefaultBorderColor = wdColorAutomaticEnd With' 段落无首行缩进,行间距为固定值12磅With Selection.ParagraphFormat.LeftIndent = CentimetersToPoints(0).RightIndent = CentimetersToPoints(0).SpaceBefore = 0.SpaceBeforeAuto = False.SpaceAfter = 0.SpaceAfterAuto = False.LineSpacingRule = wdLineSpaceExactly.LineSpacing = 12.KeepWithNext = False.KeepTogether = False.PageBreakBefore = False.NoLineNumber = False.Hyphenation = True.FirstLineIndent = CentimetersToPoints(0).OutlineLevel = wdOutlineLevelBodyText.CharacterUnitLeftIndent = 0.CharacterUnitRightIndent = 0.CharacterUnitFirstLineIndent = 0.LineUnitBefore = 0.LineUnitAfter = 0.MirrorIndents = False.TextboxTightWrap = wdTightNone.AutoAdjustRightIndent = True.DisableLineHeightGrid = False.FarEastLineBreakControl = True.WordWrap = True.HangingPunctuation = True.HalfWidthPunctuationOnTopOfLine = False.AddSpaceBetweenFarEastAndAlpha = True.AddSpaceBetweenFarEastAndDigit = True.BaseLineAlignment = wdBaselineAlignAutoEnd With' 清除原有的段落底纹Selection.ParagraphFormat.Shading.BackgroundPatternColor=wdColorAutomaticEnd SubSub 输入连续数字()
' author: code4101行数 = InputBox("请输入代码终止行数", "输入行数", "50")For i = 1 To 行数 - 1Selection.TypeText Text:=iSelection.TypeParagraphNextSelection.TypeText Text:=行数
End Sub
这里找了两个宏,一个是输入连续数字的宏。另一个是对代码表格进行一些处理的宏(可以解决底纹等问题),选中那个一行两列的表格,读者跑跑我的宏就知道效果了。(这两个宏的配置会比较个性化,读者可以根据自己的喜好来开发。)
此处宏代码转自:如何在Word中排出漂亮的代码
6. 最终效果
这是刚完成的一份实验报告,可以看到,相较于无高亮代码,整篇Word的格式还是美观了不少。
*尾声
1. 小感
虽然网上的很多资源不是直接针对DevC++的,但还是从notepad++中借鉴了保留为含格式文本的思想。可见,多查资料,尤其是多查有效的资料,对于学习是一定有帮助的。然而,现在互联网上的博客,质量还是少了点,或者说真正去探索一个源问题的少了点。大多数都是先搜现成答案,搜到则复制到自己博客下做个备忘,搜不到就放那儿,也不去探索了。。个人想法。
2. 致谢
本文写作中,参看了不少博文与资料,以下对主要参看的做一些罗列,排序不分先后:
- 如何在Word中排出漂亮的代码
- 代码复制到Word格式不变
- https://zhidao.baidu.com/question/131849075.html
3. 本文不足
- 源代码为Console等字体导出为富文本或网页文本,出现中文乱码的原因还是没想明白。。先暂时将编辑器字体更换为中文字体来解决,还不是很懂里面原因。
- 步骤略繁琐了些,对比notepad++可以直接将带格式文本复制进入剪贴板。
4. 声明
本文为原创文章,转载务必注明出处。
DevC++实现代码高亮复制进word相关推荐
- excel转word后表格超出页面_excel数据复制后表格变大-从excel中复制进word的表格,自动调整后表格太大,......
excel的数据复制粘贴后中间空格非常大,好像是因为... 第二张图再复制,到一张新表时右键选择选择性粘贴,转置,横排变成竖排,然后再用筛选,把空白行一次筛选出来删除掉,还原,再转置回去就OK了 EX ...
- Eclipse的代码原封不动复制到word,WPS等文档中去
个人推荐:
- 自用在线word代码高亮工具
自用在线word代码高亮工具 http://word.wd1x.com/
- 代码高亮---在线网站
1. Wd1x|ÔÚwordÖÐÓÅÑÅÕ¹ÏֵĴúÂë|´úÂë¸ßÁÁ|wordÖвåÈë´úÂë|´úÂë¸ñʽ»¯ 代码在线高亮工具 | 将高亮美化的代码一键粘贴到 Word 或 On ...
- 将代码保留原格式(高亮)复制到word
有时需要保持美观将代码保持语法突出或高亮复制粘贴到word上,一些方法如下: 法一:借助网站http://www.planetb.ca/syntax-highlight-word/(代码有编号,整体排 ...
- 【代码高亮】解决代码高亮工具复制在word中左边留有空白
代码高亮网站有: http://word.wd1x.com/ https://highlightcode.com/ 下面那个网站对于python的高亮效果不是很好,上面那个网站可选择编程语言. 以第一 ...
- word中代码高亮加行号
word中代码高亮加行号 在IDE,网页中代码都是精心排版的,美观漂亮.但是我们在自己的文档中记录笔记写书籍的时候,word文档中的代码却不尽人意,所以通过查找资料,发现有大神已经早就解决好了word ...
- Unity 之 实现读取代码写进Word文档功能实现 -- 软著脚本生成工具
Unity 之 实现读取代码写进Word文档功能 前言 一,实现步骤 1.1 逻辑梳理 1.2 用到工具 二,实现读写文件 2.1 读取目录相关 2.2 读写文件 三,编辑器拓展 3.1 编辑器拓展介 ...
- Word中使用代码高亮插件
Word中使用代码高亮插件 1.下载并安装:SyntaxHighlighter4Word.zip 解压,然后双击bin\word2010\Kong.SyntaxHighlighter.Word2010 ...
最新文章
- 多迪将企业的Python工程师定位成哪几类?
- python使用TSNE为影像组学(radiomics)数据进行降维可视化分析
- nodejs之思维导图(浅理解)
- 按键中断异步通知实现
- asp.net MVC 应用程序的生命周期
- php裁剪图片并上传源码,改写jcrop插件+php的图片上传实现与裁剪一体化
- 调研了10家公司的技术架构,我总结出了一套大数据平台的套路
- html5视频播放事件相关
- python redis分布式锁_Python 使用 Redis 实现分布式锁
- SpringBoot 手动配置 @Enable 的秘密
- .NET领域驱动设计—初尝(原则、工具、过程、框架)
- Oracle11G数据库的双机热备份配置--基础篇
- [篇二章六]_关于 Windows 11 处于通知状态
- Ubuntu系统下的实用软件推荐
- 渗透测试之信息收集总结
- 【第一章:技术面试通用必备技能】第2节:业务逻辑面试和HR面试
- iFixit是被破拆解Galaxy Fold?Galaxy Fold的问题点
- 03 - 滤波器组典型相关分析(Filter bank canonical correlation analysis,fbcca)
- 【小技巧】解决你的Mac电脑报名教师资格证,为什么一直进不去?
- js判断身份证号码是否正确