Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2011, 22:03   #1
sergo555
 
Регистрация: 11.11.2011
Сообщений: 5
По умолчанию Builder и Office

Привет всем. На других форумах мне не смогли помочь, может тут кто сможет..
Нужно в шаблон WORD, используя OPENOFFICE, вставить изображение и установить его размеры. Среда разработки – Builder.
Вот код. Изображение вставляется, а размер - нет. Где ошибка?
Код:
    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);
Как установить размер картинки?

Последний раз редактировалось sergo555; 12.11.2011 в 11:33.
sergo555 вне форума Ответить с цитированием
Старый 11.11.2011, 23:35   #2
sergo555
 
Регистрация: 11.11.2011
Сообщений: 5
По умолчанию

Есть код из книги Питоньяка, но я не смог его перевести в Билдер.
Код:
Sub InsertGraphicObject(oDoc, sURL$)
REM Author: Andrew Pitonyak
Dim oCursor
Dim oGraph
Dim oText
oText = oDoc.getText()
oCursor = oText.createTextCursor()
oCursor.goToStart(FALSE)
oGraph = oDoc.createInstance("com.sun.star.text.GraphicObject")
With oGraph
.GraphicURL = sURL
.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER
.Width = 6000
.Height = 8000
End With
' теперь вставляем изображение в текстовый документ
oText.insertTextContent( oCursor, oGraph, False )
End Sub

Последний раз редактировалось sergo555; 12.11.2011 в 11:33.
sergo555 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CodeGear C++ Builder 2007 Lite не может откомпилировать исходники C++ Builder 6 Ecosasha C++ Builder 2 22.11.2013 15:02
Открыть файлы Office 2007 в Office 2003 vryskov Microsoft Office Word 13 28.12.2012 00:37
Синтаксис Delphi Builder --> C++ Builder KingBelt C++ Builder 2 28.11.2010 16:25
Перенести код из C++ Builder 5 в C++ Builder 2009 Kreadlling C++ Builder 2 13.09.2009 14:00
Office Dark Energy Безопасность, Шифрование 5 19.01.2008 22:11