我正在通过Qt's Active Qt
模块生成一个 Word 文档。
我能够写入文档,指定该书写的“样式”(粗体、斜体、对齐对齐等)并查询它的不同部分。
现在我正在尝试显示一张图片并将其放置在页面的中心。
插入图片:
QAxObject word( "Word.Application" );
QAxObject* activeDocument = word.querySubObject("ActiveDocument");
QAxObject* activeWindow = activeDocument->querySubObject( "ActiveWindow" );
QAxObject* selection = activeWindow->querySubObject( "Selection" );
selection->dynamicCall( "Collapse(int)", 0 );
const int pos = selection->dynamicCall( "End" ).toInt();
QAxObject* shapes = activeDocument->querySubObject( "Shapes" );
QAxObject* shape = shapes->dynamicCall( "AddPicture(QString,bool,bool,float,float,float,float)",
picPath,
true, true );
这会在页面左侧插入图片。在Word
中,我可以插入图片,选择它并指定它的对齐方式(在我的情况下是居中的),但我无法通过代码执行此操作。
我试图将图片的锚点设置为中心,但它仍然出现在页面的左侧:
shape->querySubObject( "Anchor" )->querySubObject( "ParagraphFormat" )->setProperty( "Alignment", 1); // 1 == wdAlignParagraphCenter
和:
shape->querySubObject( "Anchor" )->dynamicCall("InsertAlignmentTab(int)",1); // 1 == center
另外,请注意,当我打开带有插入图像的创建文档时,如果我选择其中一张图片,我无法将其居中;而使用插入菜单,我可以选择图片并将其居中。
有没有办法让我插入的任何图片居中Word
?