Builder И Office

  • Автор темы sergo555
  • Дата начала
S

sergo555

Гость
#1
Привет всем.
Нужно в пустой файл WORD, используя OPENOFFICE, вставить изображение и установить его размеры. Среда разработки – Builder.
Следующий код вставляет изображение, но не устанавливает его размер. Ошибок при компиляции нет. Как установить размер изображения?
C++:
	Variant App, Desktop, OpenParams, DocWord, ServiceManager, Dispatcher, CurrentController, Frame;
//Открываем OPENOFFICE
App = Variant::CreateObject("com.sun.star.ServiceManager");
Desktop = App.OleFunction("createInstance", "com.sun.star.frame.Desktop");
int Bounds2[2] = {0,0};
OpenParams = VarArrayCreate(Bounds2, 1, varVariant);
Variant MyStruct = App.OleFunction("Bridge_GetStruct","com.sun.star.beans.PropertyValue");
MyStruct.OlePropertySet("name","Hidden");
MyStruct.OlePropertySet("value", false);
OpenParams.PutElement(MyStruct, 0);
//Открытие файла
DocWord = Desktop.OleFunction("LoadComponentFromURL", "file:///C:/Shablon.doc", "_blank", 0, OpenParams);
//Вставляем картику
ServiceManager = Variant::CreateObject("com.sun.star.ServiceManager");
//параметры
Variant MyStruct1 = ServiceManager.OleFunction("Bridge_GetStruct", "com.sun.star.beans.PropertyValue");
MyStruct1.OlePropertySet("name","FileName");
MyStruct1.OlePropertySet("value","file:///C:/1.JPG");
Variant MyStruct2 = ServiceManager.OleFunction("Bridge_GetStruct", "com.sun.star.beans.PropertyValue");
MyStruct2.OlePropertySet("name","AnchorType");
MyStruct2.OlePropertySet("value","com.sun.star.text.TextContentAnchorType.AS_CHARACTER");
Variant MyStruct3 = ServiceManager.OleFunction("Bridge_GetStruct", "com.sun.star.beans.PropertyValue");
MyStruct3.OlePropertySet("name","Width");
MyStruct3.OlePropertySet("value", 25);
int Bounds[2] = {0,2};
Variant VariantArray = VarArrayCreate(Bounds, 1, varVariant);
VariantArray.PutElement(MyStruct1, 0);
VariantArray.PutElement(MyStruct2, 1);
VariantArray.PutElement(MyStruct3, 2);
Dispatcher= ServiceManager.OleFunction("createInstance", "com.sun.star.frame.DispatchHelper");
CurrentController = DocWord.OleFunction("getCurrentController");
Frame = CurrentController.OleFunction("getFrame");
Dispatcher.OleFunction("executeDispatch",Frame,".uno:InsertGraphic","",0, VariantArray);