彩色matlab代码拷贝到word研究,matlab编辑器合并_彩色MATLAB代码拷贝到WORD研究

本文详细介绍了如何解决MATLAB彩色代码拷贝到Word时出现的颜色丢失、乱码等问题。通过编程实现,利用MATLAB的publish功能结合COM接口操作IE或Word,实现了选中代码后按快捷键Alt+Z即可一键拷贝带有行号的彩色代码。文章逐步讲解了整个研究过程,从手动操作到自动化处理,最终优化为高效快捷的代码拷贝方法。
摘要由CSDN通过智能技术生成

公众号:理念世界的影子

文不可无观点,观点不可无论据。

转载请注明出处

b7f021508ad64ba2dc6502d693887de6.png

结果简单,重在过程

有时将彩色Matlab代码拷贝到Word中,可能出现彩色消失、中文乱码、没有行号、字体不佳等问题。已有的措施包括但不限于:

先将代码拷贝到Word,手动修改乱码,适用于中文字符不多的场合。

先将代码拷贝到PowerPoint,然后再拷贝回Word。

在Word中增加行号,但有时颜色会消失。

将代码拷贝到notepad++或某网站,调整好格式后再拷贝到Word。

拷贝彩色代码本就是编程问题。对于强大的编程语言Matlab,如采用以上措施,无异于衣锦夜行。

但怎么编程实现一键彩色代码拷贝,还真是个问题。直至有次笔者发现在主菜单中,点击File/Publish,弹出了Matlab浏览器,并显示了彩色代码,于是有了思路,并一步一步地形成了最终的方法。

方法为:在Matlab中选中代码,按Alt+Z键,切换到Word,按Ctrl+V,即可拷贝带行号的彩色代码。参见如下视频:

ecb5fdd03187629260c36b5625675804.gif

图 拷贝代码示意图

下面是方法研究过程。

第一步:点击菜单发布.m文件+手动操作IE

+

点击File/Publish,直接从弹出的Matlab浏览器选中文字,拷贝到Word,但没有颜色信息。具体如下图

e6e77e06cb0b7e7c6791829b05d8e053.png

图 直接从MATLAB浏览器拷贝后黏贴,没有颜色信息

看来是浏览器问题,好在浏览器中有网址,用IE/Edge/Chrome打开再复制,可在Word中黏贴彩色文本。如下图:

0fa4aa126143fbe9310520c4cdb14505.png

图 用其它浏览器打开复制后黏贴,有颜色信息,无乱码

第二步:编程发布.m文件+手动操作IE

+

在第一步中,每次复制代码,都要点击Publish再切换到浏览器,非常麻烦。

笔者坚信,任何Matlab的界面操作,都能找到指令代替。

譬如菜单的Publish操作就有publish函数,再加上调用IE的命令,形成如下两条命令:

editorhtml2clipboard.m

file=publish(

'test.m'

,

'html'

);

eval(['!"c:\\ProgramFiles\\Internet Explorer\\iexplore.exe" "' file '"'])

这次可以直接弹出IE供拷贝了。(Win10中可能没有安装iexplorer,可以将打开程序更换为Edge,或打开控制面板/程序/启用或关闭Windows功能, 勾选Internet Explorer 11,然后重启计算机)。

912b40524dfdb13adb1718224e18684a.png

图 在Windows功能中启用Internet Explorer 11

第三步:编程发布.m文件+COM操作IE

+

第二步中需要切换到浏览器再复制比较麻烦,可以利用COM接口调用浏览器。代码如下:

editorhtml2clipboard.m

file=publish('test.m', struct('format', 'html', 'useNewFigure', false)); % 发布,不弹出figure界面

app=actxserver('internetexplorer.application'); % 打开ie组件

app.Navigate(file); % 打开文件

while(~strcmpi(app.ReadyState,'READYSTATE_COMPLETE')) end

%OLECMDID_COPY = 12, OLECMDID_SELECTALL = 17,见docobj.h

app.ExecWB(17, 0); % 全选

app.ExecWB(12, 0); % 拷贝

app.Quit; %退出

这里为了使用COM,需要关闭IE的保护模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值