今天偶然一个朋友问起QAxObject 操作word文档添加页码的问题,因为利用QAxObject 做过ppt转pdf的经过,所以花了时间做了一下这个。算是第一次写博客,写的不明白,请大家轻喷,谢谢。

QString QAxBase::generateDocumentation()

Returns a rich text string with documentation for the wrapped COM object. Dump the string to an HTML-file, or use it in e.g. aQTextBrowser widget.

generateDocumentation可以打印出来不同的接口的相应的属性,槽函数,以及信号函数。在generateDocumentation打印出来的html文件,不想assistant有很详细的说明,所以我们可以同时借助VBAWD10.CHM。

下面就是pagenumber的一些相关信息,虽然不是C++语言,但是语言都是相同的大概的意思应该可以看明白。根据下列的提示信息可以有相应的步骤去设置pagenumbers.

QString filepath = QFileDialog::getOpenFileName(this, tr("Save orbit"), ".", tr("Microsoft Office 2007 (*.docx)"));//获取保存路径

if (!filepath.isEmpty())
{
QVariantList params;
QAxWidget *excel = new QAxWidget(this);
excel->setControl("Word.Application");//连接Excel控件  
QAxObject *document = excel->querySubObject("Documents");
connect(excel, SIGNAL(exception(int, QString, QString, QString)), this, SLOT(someSlot(int, QString, QString, QString)));
QString text = document->generateDocumentation();
QFile file("test.html");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput(&file);
txtOutput << text << endl;

file.close();

excel->dynamicCall("SetVisible (bool Visible)", "true");//true显示office窗体,false不显示
excel->setProperty("DisplayAlerts", true);//不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示  
QAxObject *presentation = document->querySubObject("Open(const QString&)", filepath);
QString text2 = presentation->generateDocumentation();
QFile file2("test2.html");
if (!file2.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput2(&file2);
txtOutput2 << text2 << endl;
file2.close();

QString name = "Sections";
QAxObject *presentation1 = presentation->querySubObject(name.toStdString().c_str());
QString text3 = presentation1->generateDocumentation();
QFile file3(QString("test_%1.html").arg(name));
if (!file3.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput3(&file3);
txtOutput3 << text3 << endl;
file3.close();
QAxObject *presentation2 = presentation1->querySubObject("First");
QString text4 = presentation2->generateDocumentation();
QFile file4("test4.html");
if (!file4.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput4(&file4);
txtOutput4 << text4 << endl;
file4.close();

QAxObject *presentation3 = presentation2->querySubObject("Headers");//添加页眉
//QAxObject *presentation3 = presentation2->querySubObject("Footers");//添加页脚
QString text5 = presentation3->generateDocumentation();
QFile file5("test5.html");
if (!file5.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput5(&file5);
txtOutput5 << text5 << endl;
file5.close();

params.clear();
params << 1;
QAxObject *presentation4 = presentation3->querySubObject("Item(WdHeaderFooterIndex)", params);
QString text6 = presentation4->generateDocumentation();
QFile file6("test6.html");
if (!file6.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput6(&file6);
txtOutput6 << text6 << endl;
file6.close();

QAxObject *presentation5 = presentation4->querySubObject("PageNumbers");
QString text7 = presentation5->generateDocumentation();
QFile file7("test7.html");
if (!file7.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput7(&file7);
txtOutput7 << text7 << endl;
file7.close();

params.clear();
params << 2;
params << 1;
QAxObject *presentation6 = presentation5->querySubObject("Add(QVariant&, QVariant&)", params);
QString text8= presentation6->generateDocumentation();
QFile file8("test8.html");
if (!file8.open(QIODevice::WriteOnly | QIODevice::Text))
{
//cout << "Open failed." << endl;
//return -1;
}
QTextStream txtOutput8(&file8);
txtOutput8 << text8 << endl;

file8.close();

presentation->dynamicCall("SaveAs(const QString&)", filepath);
delete presentation;
presentation = NULL;
excel->dynamicCall("Quit()");
delete excel;

excel = NULL;

哈哈,这只是QAxObject  操作office的冰山一角的冰山一角,但是如果要做这方面的话,就用generateDocumentation和VBAWD10.CHM吧,绝对的好帮手。

qt QAxObject word文档添加页码(页眉和页脚)相关推荐

  1. QAxObject word文档添加页码(页眉和页脚)

    基于QAxObject 操作word文档 加油吧 骚年 分享的起因 最近工作需求有QAxObject 操作word文档添加页码的问题,借助朋友的分享. 解释 首先我们看看ActiveQt的非常重要的一 ...

  2. word文档添加目录

    当需要给word文档添加目录时,当需要查看word文档结构图(即左边显示目录--点击目录,右边自动跳转至目录所在页)时, 第一步,你需要先把希望显示的文字,设置其样式为"标题",才 ...

  3. word 技巧之一:给word文档添加目录、查看word文档结构图

    当需要给word文档添加目录时,当需要查看word文档结构图(即左边显示目录--点击目录,右边自动跳转至目录所在页)时, 第一步,你需要先把希望显示的文字,设置其样式为"标题",才 ...

  4. QT读取Word文档

    Word文档读取 开发工具与关键技术:QtCreator.C++ 作者:何任贤 撰写时间:2020年06月02日 Word文档读取 我们先要在工程文件加入 QT += axcontainer 我们要用 ...

  5. 怎么查看计算机一共多少文档,不打开Word文档如何查看文章有几页 -电脑资料

    关于这个命题,似乎有点悬了! 当我们面对一大堆文档的时候,如果想查看一下每一篇文档到底有多少页的时候? 平时您是不是这样做的呢?一篇文档一篇文档的打开,之后通过使用插入页码的方法在文档中插入页码,之后 ...

  6. java 多文字水印_Java 如何给Word文档添加多行文字水印

    前言html 我在以往的文章中曾介绍过如何给Word文档添加文本水印和图片水印,及怎样删除文档中的水印.关于文本水印,以前那篇教程里主要指的是单行字体的水印,而在操做Word文档时,有时也会碰到须要添 ...

  7. java怎么给文档加水印_Java 如何给Word文档添加多行文字水印

    前言 我在以往的文章中曾介绍过如何给Word文档添加文本水印和图片水印,及怎样删除文档中的水印.关于文本水印,之前那篇教程里主要指的是单行字体的水印,而在操作Word文档时,有时也会碰到需要添加多行文 ...

  8. word小技巧--怎么去掉Word文档封面页码的方法

    怎么去掉Word文档封面页码的方法   很多人在设置页码时都会有这样的烦恼,那就是老师要求封面第一页及目录不得出现页码,但现实是word设置目录第一页封面就会自动出现页码,那么如何去掉呢?在此本人也是 ...

  9. 使用PDF编辑器为PDF文档添加页码教程

    在日常工作中编辑PDF文档时,必然会遇到需要给PDF文档添加页码的情况.那么如何给PDF文档添加页码呢?需要借助什么软件才能完成呢? 今天就教大家轻松为PDF文档添加页码. PDF编辑器https:/ ...

  10. Qt对word文档操作总结

    Qt对word文档操作总结 近期在使用Qt对word进行读写操作时候遇到很多问题,对于Qt内部没有很好的库函数可以使用.office官网上的文档只有VBA的示例,没有Qt的语法例子.在这里作者介绍了一 ...

最新文章

  1. python套接字socket的作用_【学习笔记】python实现的套接字socket
  2. asp.net 二级域名(路由方式实现)
  3. VCSA 6.5 HA配置 之四 开启vCenter HA
  4. typecho 调用评论最多热门文章
  5. mysql查询所有男生中姓王的_数据库6.22
  6. 三极管开关为什么工作在饱和区和截至区
  7. 代理模式代码举例(java语言版)
  8. 安卓机顶盒安装软件教程
  9. 网站打开速度慢如何压缩图片_网站打开速度变慢原因,网站打开速度慢的原因分析,了解网站变慢...
  10. java实现录屏_java录屏详细代码
  11. 罗振宇解读《今日简史》:21个议题就是21个千亿美金的机会
  12. 代码庆端午--粽你心意
  13. 如何让业务实现三周内实现点击率翻倍?我们是这么做到的...
  14. 《MATLAB 神经网络43个案例分析》:第32章 小波神经网络的时间序列预测——短时交通流量预测
  15. node mysql商城开发_NideShop:基于Node.js+MySQL开发的微信小程序商城开源啦
  16. 数商云工业制造行业B2B电商平台解决方案
  17. 刚刚下载的Ubuntu界面过小问题解决方案
  18. Android Jetpack导航组件——Navigation的使用
  19. wms、wmts和wfs的区别
  20. sklearn聚类算法之HAC

热门文章

  1. np.ones用法总结
  2. 拉普拉斯(Laplace)变换——自控笔记系列(一)
  3. rk356x-Android 刷机
  4. 曝光一下阿里的工资待遇和职位级别
  5. appium : 查看Android手机自带浏览器内核版本(webview版本)
  6. TCP 拥塞控制详解
  7. HTTP 状态码502 深度解析
  8. 互联网的发展简史—web
  9. ultravnc 设置代理_紫竹桥代理记账哪家好详情
  10. Python:雷达图的实现