Builder И Office

Тема в разделе "C/C++/C#", создана пользователем sergo555, 12 ноя 2011.

Наш партнер Genesis Hackspace
  1. sergo555

    sergo555 Гость

    Привет всем.
    Нужно в пустой файл 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);
     
Загрузка...

Поделиться этой страницей