VC++ 如何拷贝WORD到剪贴板(含页眉页脚)

nslh520 2015-10-06 02:49:26
VC++ 如何拷贝WORD到剪贴板(含页眉页脚)


CApplication wordApp;
COleVariant vTrue((short)TRUE), vFalse((short)FALSE), vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CDocuments docxs;
CDocument0 docx;
CRange aRange;
docxs.ReleaseDispatch();
try
{
CoInitialize(NULL);
if(!wordApp.CreateDispatch(_T("Word.Application"),NULL))//创建一个新的word程序
{
AfxMessageBox(_T("无法启动Word服务器!"));
return NULL;
}
}
catch(...)
{
return NULL;
}

docxs=wordApp.get_Documents();
COleVariant vFileName(str_wordpath);
docx=docxs.Open(vFileName,vFalse,vTrue,vFalse,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);


CSelection sel = wordApp.get_Selection();
sel.WholeStory();
sel.Copy();
这里可以拷贝WORD到剪贴板,但页眉页脚没有一起拷贝进去
请教大家,如何把内容连同页眉页脚一起拷贝到剪贴板?????????? 先谢了!

...全文
274 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nslh520 2015-10-08
  • 打赏
  • 举报
回复
我可以单独得到页眉和页脚,用CSection,也可以单独得到内容Selection,但不知道怎么合在一起,最后转成图片(通过剪贴板,已经实现)
BeanJoy 2015-10-08
  • 打赏
  • 举报
回复
全选好像没有选中页眉、页脚,只有单独处理页眉页脚。 你可以打开WORD,自己全选试一试。 处理页眉、页脚,可以试试用书签,完了后把书签删了就是,像下面这样:

		bookmark = bookmarks.Item(COleVariant(_T("t1")));
		bookmark.Select();
		bookmark.Delete();
		wordSelection.TypeText(_T("新内容"));
nslh520 2015-10-08
  • 打赏
  • 举报
回复
没高手回复,自己顶下
BeanJoy 2015-10-08
  • 打赏
  • 举报
回复
引用 8 楼 nslh520 的回复:
[quote=引用 7 楼 BeanJoy 的回复:] [quote=引用 6 楼 nslh520 的回复:] [quote=引用 4 楼 BeanJoy 的回复:] 能不能单独转成两张图片,然后合并?
你的也是一个思路,我试试看,我用C#可以把页眉页脚和内容一起转成图片,但每次转的时候都要出现打开WORD文件界面,VC++又不能转出页眉页脚,纠结的很[/quote] C#不能像C++打开word那样设置visiable为false吗,或者设置了没效果? 或者换个思路试试行不行,C#的程序启动时不显示界面,再转时WORD文件界面是不是也会不显示了?[/quote] 可以设置 visiable=true,窗口就看不见了,但是只能转含有一页的WORD文件,多页的WORD文件就报错 [/quote] 我觉得这个问题,应该是代码问题,好好查查资料再调试下,应该能解决。
nslh520 2015-10-08
  • 打赏
  • 举报
回复
引用 7 楼 BeanJoy 的回复:
[quote=引用 6 楼 nslh520 的回复:] [quote=引用 4 楼 BeanJoy 的回复:] 能不能单独转成两张图片,然后合并?
你的也是一个思路,我试试看,我用C#可以把页眉页脚和内容一起转成图片,但每次转的时候都要出现打开WORD文件界面,VC++又不能转出页眉页脚,纠结的很[/quote] C#不能像C++打开word那样设置visiable为false吗,或者设置了没效果? 或者换个思路试试行不行,C#的程序启动时不显示界面,再转时WORD文件界面是不是也会不显示了?[/quote] 可以设置 visiable=true,窗口就看不见了,但是只能转含有一页的WORD文件,多页的WORD文件就报错 string startupPath="C:\\Users\\Administrator\\Desktop\\test"; string filename1 = "test3.docx"; ; var docPath = Path.Combine(startupPath, filename1); var app = new Microsoft.Office.Interop.Word.Application(); // MessageFilter.Register(); app.Visible = true; var doc = app.Documents.Open(docPath); doc.ShowGrammaticalErrors = false; doc.ShowRevisions = false; doc.ShowSpellingErrors = false; if (!Directory.Exists(startupPath + "\\" + filename1.Split('.')[0])) { Directory.CreateDirectory(startupPath + "\\" + filename1.Split('.')[0]); } //Opens the word document and fetch each page and converts to image foreach (Microsoft.Office.Interop.Word.Window window in doc.Windows) { foreach (Microsoft.Office.Interop.Word.Pane pane in window.Panes) { for (var i = 1; i <= pane.Pages.Count; i++) { var page = pane.Pages[i]; (如果把visibale=true,有多页的WORD文件,这里就报错,提示:集合所要求的成员不存在,如果设置visibale=false,多页文件不报错了,但会自动打开WORD软件界面,不想让WORD界面出现到桌面,想后台转换) var bits = page.EnhMetaFileBits; var target = Path.Combine(startupPath + "\\" + filename1.Split('.')[0], string.Format("{1}_page_{0}", i, filename1.Split('.')[0])); try { using (var ms = new MemoryStream((byte[])(bits))) { var image = System.Drawing.Image.FromStream(ms); var pngTarget = Path.ChangeExtension(target, "png"); image.Save(pngTarget, ImageFormat.Png); } } catch (System.Exception ex) { } } } } doc.Close(Type.Missing, Type.Missing, Type.Missing); app.Quit(Type.Missing, Type.Missing, Type.Missing); // MessageFilter.Revoke();
BeanJoy 2015-10-08
  • 打赏
  • 举报
回复
引用 6 楼 nslh520 的回复:
[quote=引用 4 楼 BeanJoy 的回复:] 能不能单独转成两张图片,然后合并?
你的也是一个思路,我试试看,我用C#可以把页眉页脚和内容一起转成图片,但每次转的时候都要出现打开WORD文件界面,VC++又不能转出页眉页脚,纠结的很[/quote] C#不能像C++打开word那样设置visiable为false吗,或者设置了没效果? 或者换个思路试试行不行,C#的程序启动时不显示界面,再转时WORD文件界面是不是也会不显示了?
nslh520 2015-10-08
  • 打赏
  • 举报
回复
引用 4 楼 BeanJoy 的回复:
能不能单独转成两张图片,然后合并?
你的也是一个思路,我试试看,我用C#可以把页眉页脚和内容一起转成图片,但每次转的时候都要出现打开WORD文件界面,VC++又不能转出页眉页脚,纠结的很
paschen 2015-10-08
  • 打赏
  • 举报
回复
就算不用程序,你在WORD里也不可能复制时把页眉页脚一起复制,需要单独处理
BeanJoy 2015-10-08
  • 打赏
  • 举报
回复
能不能单独转成两张图片,然后合并?
软件概述 UG(Unigraphics NX)是一款由西门子(Siemens PLM Software)开发的交互式CAD/CAM/CAE系统。作为全球领先的产品工程解决方案,它集成了产品设计、工程仿真与制造加工于一体。其功能强大且应用广泛,能够轻松实现各种复杂实体和造型的构造,为模具、汽车、航空航天及通用机械等行业提供了高性能的机械设计与制图灵活性。 软件基础信息 • 支持系统: 64位 Windows 10、Windows 11 核心功能模块 一、创新设计:高效、灵活、无缝协同 全链路产品设计 涵盖从2D布局、3D建模、装配设计到图纸文档记录的各个环节,大幅提升设计吞吐量,缩短交付周期超35%。 强大的同步建模技术 打破数据壁垒,可无缝导入并直接修改来自其他CAD系统的几何模型,是跨平台协同设计的理想选择。 复杂装配管理 专为大型复杂产品打造,即使面对成千上万的零件也能从容应对,快速识别并解决数字样机中的干涉等问题。 集成设计验证 内置自动验证功能,实时监控设计是否符合公司及行业标准;结合PLM数据可视化合成,辅助工程师做出更明智的决策。 二、综合仿真(Simcenter 3D):精准预测,降低试错成本 极速前后处理 依托先进的几何引擎,将强大的分析命令与几何编辑紧密集成,相比传统有限元工具,可缩短高达70%的仿真建模时间。 全方位结构分析 在同一环境中集成线性静力学、动态、疲劳及非线性分析,底层由业界顶尖的NX Nastran解算器提供支持,确保计算的高精度与可靠性。 声学与热管理分析 提供内外声学仿真以优化音质、降低噪音;具备一流的热传导仿真能力,帮助电子产品和工业机械实现最佳热管理方案。 多物理场耦合 简化了结构动力学、热传导、流体流动等复杂物理现象的模拟过程,消除外部数据传输错误,真实还原产品运行工况。 三、智能制造(CAM):打通从计划到车间的数字主线 全面的制造解决方案 提供从工装设计、CAM编程到机床控制器(如Sinumerik)的一体化支持,助力制定更科学的生产决策。 深度集成的PLM环境 借助Teamcenter实现数据和流程的统一管理,避免多数据库冲突,支持重用验证过的加工工艺与刀具库。 车间级互联 通过DNC系统与车间无缝对接,直接将加工数据和刀具清单下发至CNC机床,实现计划与生产的紧密结合。 提质增效 优化NC编程与刀具路径,提升表面精加工水平与零件精度;减少人为错误,显著提高新机床部署成功率及制造资源利用率。 总结 UG NX 2023作为一款集成化的产品工程解决方案,通过其强大的设计、仿真和制造功能,为现代制造业提供了完整的数字化产品开发平台。无论是复杂产品的设计验证,还是精密制造的流程优化,UG NX 2023都能为工程师团队提供高效、可靠的解决方案,助力企业提升产品创新能力和市场竞争力。 适用领域 模具设计、汽车制造、航空航天、通用机械、消费电子等

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧