Экспорт TImage в документ Microsoft Office Word

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Daniel_Riccardo
незнакомец
Сообщения: 4
Зарегистрирован: 29.09.2016 17:46:28

Экспорт TImage в документ Microsoft Office Word

Сообщение Daniel_Riccardo »

Добрый вечер! Возникла необходимость экспортирования изображения TImage из Lazarus в документ MS Office Word. Скажите, как это реализовать?

На форме имеется Изображение, кнопка. При нажатии кнопки должен автоматически открываться "Word", а в нём должно быть то самое изображение.
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

Active X в помощь .

OpenDcoument(); открытие документа
Daniel_Riccardo
незнакомец
Сообщения: 4
Зарегистрирован: 29.09.2016 17:46:28

Сообщение Daniel_Riccardo »

mig-31 писал(а):Active X в помощь .

OpenDcoument(); открытие документа


Помогите, пожалуйста, реализовать.
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

Google никто не отменял.

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/OleAuto_CreateOleObject.html

Код: Выделить всё

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,comobj,LCLintf;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  Word, Doc: Variant;
begin
  //create OLE Object
  Word := CreateOleObject('Word.Application');
  //create New doc
  Doc := Word.Documents.Add;
  //insert picture
  Word.ActiveDocument.InlineShapes.AddPicture('C:\data\test.png');
  //save doc
  Doc.SaveAs('C:\data\test.docx');
  //delete OLE object
  Word.Quit;
  //open doc
  OpenDocument('C:\data\test.docx');
end;

end.               
Daniel_Riccardo
незнакомец
Сообщения: 4
Зарегистрирован: 29.09.2016 17:46:28

Сообщение Daniel_Riccardo »

mig-31 писал(а):Google никто не отменял.

http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/OleAuto_CreateOleObject.html

Код: Выделить всё

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,comobj,LCLintf;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
  Word, Doc: Variant;
begin
  //create OLE Object
  Word := CreateOleObject('Word.Application');
  //create New doc
  Doc := Word.Documents.Add;
  //insert picture
  Word.ActiveDocument.InlineShapes.AddPicture('C:\data\test.png');
  //save doc
  Doc.SaveAs('C:\data\test.docx');
  //delete OLE object
  Word.Quit;
  //open doc
  OpenDocument('C:\data\test.docx');
end;

end.               


Большое вам спасибо! Подтолкнули на правильное решение.
1) Написал код для сохранения изображения в определённую директорию;
2) Используя вами представленный код - добавляю изображение в MS Word.
Ответить