Обо мне

Моя фотография
Индивид, которому нравится слушать качественную музыку, а потом делиться впечатлениями с другими!
Показаны сообщения с ярлыком word. Показать все сообщения
Показаны сообщения с ярлыком word. Показать все сообщения

четверг, 28 июля 2011 г.

[Qt] Создание нового документа MS Word с параметрами по-умолчанию

Добрый день! Возникла необходимость создать новый документ Microsoft Word с заданными по-умолчанию некоторыми параметрами, например, пароль на открытие файла. Достичь желаемого результата можно очень и очень просто! Нам на помощь опять приходит нет-нет, не Чип и Дейл, а сокровищница знаний MSDN...


среда, 30 марта 2011 г.

[Qt] Поиск и замена текста в Microsoft Word посредством ActiveQt

Обратил внимание на то, что в интернете на форумах достаточно сложно найти информацию о том, как производить поиск и замену текста в Microsoft Word посредством ActiveQt. Для собственного проекта написал следующую процедуру:

void MsWordDocument::replaceString(const QString& oldString, const QString& newString)
{
  QAxObject* WordSelection = WordApplication->querySubObject("Selection");

  QAxObject* Find = WordSelection->querySubObject("Find");
  if (!Find) return;
  Find->dynamicCall("ClearFormatting()");

  QList<QVariant> params;
  params.operator << (QVariant(oldString));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant(true));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant(newString));
  params.operator << (QVariant("2"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  params.operator << (QVariant("0"));
  Find->dynamicCall("Execute(const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,"
                    "const QVariant&,const QVariant&,const QVariant&)",
                    params);
 
}
Более подробную информацию о передаваемых параметрах можно прочитать на MSDN 

воскресенье, 27 марта 2011 г.

[Qt] Изменение шрифта во всем документе Microsoft Word посредством ActiveQt

Сегодня хотел бы написать небольшую заметку о том, как изменить шрифт во всем документе, созданном в Microsoft Word. Не буду многословен, а просто доработаю предыдущий пример:


  1.  QAxObject* WordApplication = new QAxObject("Word.Application");
  2.  if (!WordApplication) return;
  3.  WordApplication->dynamicCall("SetVisible(bool)", false);
  4.  WordApplication->querySubObject("Documents")->querySubObject("Open(QVariant)", _filename);
  5.  
  6.  QAxObject* active_doc = WordApplication->querySubObject("ActiveDocument");
  7.  QAxObject* WordSelection = WordApplication->querySubObject("Selection");
  8.  WordSelection->dynamicCall("WholeStory()");
  9.  QAxObject *Font = WordSelection->querySubObject("Font");
  10.  Font->setProperty("Size", 22);
  11.  QVariant newF(_outputDir + newFilename);
  12.  QVariant fileFormat(6); //Saving as filtered rtf
  13.  active_doc->querySubObject("SaveAs(const QVariant&, const QVariant&)", newF, fileFormat);
  14.  
  15.  WordApplication->querySubObject("ActiveDocument")->dynamicCall("Close()");
  16.  WordApplication->dynamicCall("Quit()");
* This source code was highlighted with Source Code Highlighter.

вторник, 22 марта 2011 г.

[Qt] конвертация файлов из Microsoft Word (doc) в RTF

Сказано - сделано:
QAxObject* WordApplication = new QAxObject("Word.Application");
  WordApplication->dynamicCall("SetVisible(bool)", false);
  WordApplication->querySubObject("Documents")->querySubObject("Open(QVariant)", _filename);


  QString newFilename = ...new...name...

  QAxObject* active_doc = WordApplication->querySubObject("ActiveDocument");
  QVariant newF(_outputDir + newFilename);
  QVariant fileFormat(6); //Сохраняем в rtf. 2 - txt
  active_doc->querySubObject("SaveAs(const QVariant&, const QVariant&)", newF, fileFormat);

  // Закрываем
  WordApplication->querySubObject("ActiveDocument")->dynamicCall("Close()");
  WordApplication->dynamicCall("Quit()");

Открываем doc файл, сохраняем его в rtf. При этом окно Ms Word скрываем