最近在做一个功能,客户端调用一个网页,从网页上点击一个按钮,将格式文本复制到粘贴板,由于网页不支持设置粘贴板类型设置,导致往目标容器粘贴的时候格式丢失。

此时在delphi中操作粘贴板也无法实现,由于是2006版本,很多新功能没有,此时想到了借助delphi调用word的方式实现,先将内容粘贴进入word(可设置不可见,即没有看到word打开的界面)中,然后在word中替换文本后再进行复制,这样再粘贴的时候就可以实现了,格式文本与最初的一样;

实例代码如下:

引用单元:Clipbrd,  Word2000,ComObj

创建:

m_WordApp,m_WordDoc:Variant;

if VarIsEmpty(m_WordApp) then
  begin
    m_WordApp := CreateOLeObject('Word.application');
    m_WordApp.visible := false;
    m_WordDoc := m_WordApp.documents.add;
  end;

功能实现:

m_WordApp.Selection.Paste;//粘贴原有内容至word
    Clipboard.Clear;//清空粘贴板
    m_WordApp.Selection.Find.ClearFormatting;
    m_WordApp.Selection.Find.Text := '要替换的字符';//需要替换为空的字符
    m_WordApp.Selection.Find.Replacement.Text := '替换成的字符';//可设置你想要替换成的字符
    m_WordApp.Selection.Find.forward := True;
    m_WordApp.Selection.Find.MatchAllWordForms := False;
    m_WordApp.Selection.Find.MatchCase := False;
    m_WordApp.Selection.Find.MatchWildcards := False;
    m_WordApp.Selection.Find.MatchSoundsLike := False;
    m_WordApp.Selection.Find.MatchWholeWord := False;
    m_WordApp.Selection.Find.MatchFuzzy := False;
    m_WordApp.Selection.Find.Wrap := wdFindContinue;
    m_WordApp.Selection.Find.Format := False;

m_WordApp.Selection.Find.Execute(Replace := wdReplaceAll);//可设置全部替换或仅替换第一个找到的目标字符串

m_WordDoc.select;//全选
    m_WordApp.selection.copy;//复制到粘贴板

释放:

if (not VarIsEmpty(m_WordApp)) then
  begin
    m_WordApp.ActiveDocument.Close(wdDoNotSaveChanges);//不会提示保存窗口
    // WordApp.ActiveDocument.Close;//提示保存窗口
    m_WordApp.Quit;
    m_WordApp := Unassigned;
  end;

Delphi 操作Word实现粘贴板RTF格式内容替换相关推荐

  1. Delphi操作word的基本用法

    刚把delphi捡起来,第一个要做的竟然操作word,总结一下. 一. 定义word应用程序,文档对象,比如: wordApp: OleVariant;    wordDoc: OleVariant; ...

  2. Delphi操作Word,Excel替换

    有的时候想把数据库里的内容按某种格式写在Word,Excel里,在Word,Excel里按某种格式保存字段名称,下面以"%+字段名称+%"为例 一.Delphi 操作 Word 替 ...

  3. .NET操作WORD文档另存为其他格式的文件

    刚在研究研究怎么可以在.NET程序中把WORD文档另存为XPS文件,学习了一些概念和操作,马上记录下来吧,进入正题. 1. 添加与WORD互操作的类库,里面包含着WORD对象模型的.NET表示: 一看 ...

  4. vc向richedit控件写RTF格式内容(表格)

    RTF格式文本以前很少接触过,因工作原因,需要向richedit控件插入表格. 从度娘上搜索了一些基本内容,下了RTF规范,也没有仔细研究.对于一些简单的表格,可以采用"逆向工程" ...

  5. C# 操作Word书签(二)——读取、替换Word书签

    在上一篇文章中介绍了关于C#如何插入Word书签.插入图片或表格到word.删除word书签等内容,本篇文章将继续介绍C#操作word书签的方法.下面的示例中将介绍 C# 如何读取Word书签 C# ...

  6. Bash:把粘贴板上的内容拷贝的文件中。(脚本)

    2019独角兽企业重金招聘Python工程师标准>>> 一个把粘贴板中的信息存放到文件中去的bash代码. 要求: 1.先检测要执行的命令是否存在 2. 检测文件是否存在 3. 检测 ...

  7. rtf格式内容转html

    最近项目里需要把以前的客户问题数据导入到新的系统中来,从开始到完成整整花了一天半的时间,现把大概的一些开发过程记录如下: 一.分析 图A 图B 要从A中的内容转成B,先分析图A 1.A中内容是经过ba ...

  8. Python:用【Win32】模块,结合Word通配符替换,将Word文档表格的部分内容替换为加粗

    目录 一.思路 1.遍历表格,根据需要,如果只设置某一个表格,指定即可(具体代码注释有) 2.对表格区域查找替换 二.代码 三.执行结果 1.执行前 2.执行后 一.思路 1.遍历表格,根据需要,如果 ...

  9. ADB 操作手机的粘贴板

    一.使用方法 1.安装APK 下载地址:application.apk 1.启动广播 adb shell am startservice ca.zgrs.clipper/.ClipboardServi ...

最新文章

  1. 我的世界java测试版下载_我的世界中国版PC不删档测试版_网易我的世界JAVA版测试版单机游戏下载...
  2. wgs84坐标格式转换度分秒_一起爬山吗?寻找GIS坐标系统中“隐秘的角落”
  3. [BUUCTF-pwn]——starctf_2019_babyshell
  4. 把nc v6的源码看懂
  5. swagger2导出html文档和pdf文档(解决pdf中文乱码与显示不全问题)
  6. nginx rewrite 实现二级域名跳转
  7. Gemini 2 for Mac(重复文件查找清理工具)
  8. android如何去掉自动更新,如何停止Android手机上的应用程序自动更新
  9. Luogu2774 方格取数问题
  10. Win10如何玩Win7自带的游戏
  11. React 环境 webpack less 配置 及 javascriptEnabled 解决方法
  12. 解锁中智集团30平方米数据中心备受追捧的密码
  13. Java获取Excel表格的真实行数
  14. ipv4地址怎么设置 手机_怎么修改手机ip地址?手机ip地址更改方法介绍
  15. sed编辑器之删除行
  16. KindEditor图片上传路径URL的处理
  17. Python安装失败0x80070642错误解决方法
  18. 亡命威龙评测:像城管一样开警车
  19. Canvas 动画引擎解析与微信小程序中的应用
  20. (从完全入门开始)思科模拟器创建校园网,第一次写博客

热门文章

  1. IsBackground对线程的重要作用
  2. w3m 浏览器简明使用教程
  3. 差分进化算法和遗传算法的区别
  4. android的崩溃报告(crash dump)
  5. 致4个月后自己的一封信
  6. java inputstream理解_Java进阶核心之InputStream流深入讲解
  7. 程序员什么时候该跳槽?
  8. C#之AutoEventWireup
  9. 贝叶斯网络,看完这篇我终于理解了!
  10. Libsvm java工程实践