使用Qt在word里面插入图片

Scarlett26 2015-10-05 08:19:35
# pragma execution_character_set("utf-8")
#include <QtWidgets/QApplication>
#include "word.h"
#include <QAxWidget>
#include <QAxObject>
#include "qvariant.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QAxWidget *word = new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);
word->setProperty("Visible", true);
// 获取所有的工作文档
QAxObject * documents = word->querySubObject("Documents");
// 以文件template.doc为模版新建一个文档
documents->dynamicCall("Add(QString)", QString::fromLocal8Bit("D:/doc/template.doc"));
// 获取当前激活的文档
QAxObject *document = word->querySubObject("ActiveDocument");

// 获取文档中名字为text的标签
/* QAxObject *bookmark_text = document->querySubObject("Bookmarks(QVariant)", "text");
// 选中标签,将字符InsertText插入到标签位置
if (!bookmark_text->isNull()){
bookmark_text->dynamicCall("Select(void)");
bookmark_text->querySubObject("Range")->setProperty("Text", "InsertText");
} */

// 获取文档中名字为pic的标签
QAxObject * bookmark_pic = document->querySubObject("Bookmarks(QVariant)", "pic");
// 选中标签,将图片插入到标签位置
if (!bookmark_pic->isNull())
{
bookmark_pic->dynamicCall("Select(void)");

QAxObject *range;
range = bookmark_pic->querySubObject("Range");
QVariant tmp = range->asVariant();
QList<QVariant>qList;
qList << QVariant("D:/1.png");
qList << QVariant(false);
qList << QVariant(true);
qList << tmp;

QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)", qList);
/* bookmark_pic->dynamicCall("Select(void)");
QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
Inlineshapes->dynamicCall("AddPicture(const QString&)", "D:/1.png"); */
// bookmark_pic->querySubObject("Range")->setProperty("InlineShapes", "InsertText");
}

// 将文件另存为docbyqt.doc,关闭工作文档,退出应用程序
document->dynamicCall("SaveAs (const QString&)", QString("D:/doc/docbyqt.doc"));
document->dynamicCall("Close (boolean)", false);
word->dynamicCall("Quit()");

return a.exec();
}

插入图片的时候就会输出QAxBase: Error calling IDispatch member AddPicture: Exception thrown by server。但是插入文字的时候也没事,请问一下,这是哪有问题
...全文
962 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_36735577 2017-06-07
  • 打赏
  • 举报
回复
楼主这个问题解决了么?我也遇到这个问题

16,173

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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