Название: выбор кодировки открытия файла в word
Отправлено: aptypr от Сентябрь 14, 2011, 13:16
судя по http://msdn.microsoft.com/en-us/library/bb216319%28v=office.12%29.aspx нужно использовать что-то типа querySubObject("Open(const QString &,,,,..,const QString&)",list) где в list - QList<QVariant>.Но в консоли постоянно выводится type mismatch parameter 8. кому нибудь приходилось при открытии документа word указывать кодировку открываемого файла, если да, то подскажите, как это правильно сделать. Заранее благодарю.
Название: Re: выбор кодировки открытия файла в word
Отправлено: SeverusSnape от Сентябрь 14, 2011, 14:06
Может быть пригодится - в своей программе использую функцию "Сохранить как", в которой также можно указать кодировку void MsWordDocument::saveAsDoc(const QString& filename) { if (filename.isEmpty() || QFile::exists(filename)) return;
QList<QVariant> params;
QVariant newFileName(filename); QVariant fileFormat(0); //doc QVariant LockComments(false); QVariant Password(""); QVariant recent(true); QVariant writePassword(""); QVariant ReadOnlyRecommended(false);
QVariant EmbedTrueTypeFonts(true); QVariant SaveNativePictureFormat(true); QVariant SaveFormsData(false); QVariant SaveAsAOCELetter(false); QVariant Encoding(20127); QVariant InsertLineBreaks(false); QVariant AllowSubstitutions(false); QVariant LineEnding(0); QVariant AddBiDiMarks(false);
params << newFileName << fileFormat << LockComments << Password << recent << writePassword << ReadOnlyRecommended << EmbedTrueTypeFonts << SaveNativePictureFormat << SaveFormsData << SaveAsAOCELetter << Encoding << InsertLineBreaks << AllowSubstitutions << LineEnding << AddBiDiMarks;
WordApplication->querySubObject("ActiveDocument()")->querySubObject("SaveAs(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&, const QVariant&)", params);
}
Название: Re: выбор кодировки открытия файла в word
Отправлено: aptypr от Сентябрь 14, 2011, 14:59
QVariant Encoding(20127); Это откуда такое число взяли?
Название: Re: выбор кодировки открытия файла в word
Отправлено: SeverusSnape от Сентябрь 14, 2011, 15:24
msdn - отличный справочник
Название: Re: выбор кодировки открытия файла в word
Отправлено: SeverusSnape от Сентябрь 14, 2011, 15:25
Вот здесь расписаны все константы http://msdn.microsoft.com/en-us/library/aa170976(v=office.11).aspx
Название: Re: выбор кодировки открытия файла в word
Отправлено: Пантер от Сентябрь 14, 2011, 15:27
msdn - отличный справочник
Ужасный справочник.
Название: Re: выбор кодировки открытия файла в word
Отправлено: aptypr от Сентябрь 14, 2011, 15:54
Вот здесь расписаны все константы http://msdn.microsoft.com/en-us/library/aa170976(v=office.11).aspx
Ясно, спасибо за ссылку. Правда у меня всё ещё та же ошибка возникает QVariant fileName("C:\\path\\somewhere\\file.ext"); QVariant confirmConversions(false); QVariant readOnly(true); QVariant passWordDocument; QVariant passwordTemplate(""); QVariant revent(false); QVariant writePasswordDocument(""); QVariant writePassWordTemplate(""); QVariant format(0); QVariant encoding(1251); QList<QVariant> list; list<<fileName<<confirmConversions<<readOnly<<NULL<<passwordTemplate<<revent<<writePasswordDocument; list<<writePassWordTemplate<<format<<encoding; WordDocuments->querySubObject("Open(const QString&,const QString&,const QString&,const QString&,const QString&,const QString&,const QString&,const QString&,const QString&)",list);
Собстенно ошибка(word запускается, но пустое окно) - QAxBase: Error calling IDispatch member Open: Type mismatch in parameter 8
|