Qt ActiveX извлекает количество страниц в текстовом документе

Я не опытный в VBA, но мне нужно использовать документацию от Microsoft форма документации msdn чтобы получить количество страниц в документе Word. Я пробовал вещи, как в приведенном ниже фрагменте:

 mWordDoc=new CustomQAxWidget("d:\\gakwandi.docx",0);

QAxObject* selection = mWordDoc->querySubObject( "Selection" );

QAxObject* pageNumbers = selection ->querySubObject( "PageNumbers" );

int numberOfPages = pageNumbers->property("Count").toInt();

Но я получаю сообщения об ошибках типа QAxBase :: dynamicCallHelper: PageNumbers: такого свойства нет в d: \ gakwandi.docx [unknown]. Кандидаты: ….., что говорит о том, что я где-то неправильно понимаю синтаксис. более опытный в программировании Windows мог бы указать, что я могу делать неправильно.

Благодарю.

0

Решение

В Word VBA вы можете проверить количество страниц следующим образом:

? ActiveDocument.Range.Information(wdNumberOfPagesInDocument)

или же

? ActiveDocument.Content.Information(wdNumberOfPagesInDocument)

Я не знаю, как выразить это в синтаксисе C ++, но надеюсь, что вы сами разберетесь в этом.

0

Другие решения

Я так же смог собрать кусок кода, чтобы получить то, что хотел. Просто оставьте его здесь на тот случай, если кому-то еще понадобится то же самое. Еще раз спасибо KazJaw. Ваш вклад был действительно полезным.

QAxObject*  word = new QAxObject("Word.Application", this);

//2.OPEN THE DOCUMENT
QAxObject*    doc = word->querySubObject("Documents");
doc->dynamicCall("Open(QVariant)", "d:\\gakwaya11.docx");
doc->setProperty("Visible",false);
//3.GET TO THE CONTENTS
QAxObject * activeDocument=word->querySubObject("ActiveDocument");

QAxObject * content=activeDocument->querySubObject("Content");

int mNumberOfPages = content->dynamicCall("Information(wdNumberOfPagesInDocument)").toInt();

//doc->dynamicCall("SaveAs (const QString&)", QString("d:\\karamage.docx"));
doc->dynamicCall("Close (boolean)", false);
word->dynamicCall("Quit (void)");
0

По вопросам рекламы [email protected]