Важная информация
Показано с 1 по 4 из 4

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

  1. #1 Экспорт TImage в документ Microsoft Office Word 
    Новичок
    Регистрация
    29.09.2016
    Сообщений
    7
    Сказал(а) спасибо
    5
    Поблагодарили 1 раз в 1 сообщении
    Добрый вечер! Возникла необходимость экспортирования изображения TImage из Lazarus в документ MS Office Word. Скажите, как это реализовать?

    На форме имеется Изображение, кнопка. При нажатии кнопки должен автоматически открываться "Word", а в нём должно быть то самое изображение.
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,911
    Сказал(а) спасибо
    1,841
    Поблагодарили 976 раз(а) в 834 сообщениях
    Записей в блоге
    1
    Скажите, как это реализовать?
    Варианта три:
    1) Вручную создать файл формата .doc и запустить word с параметром имени этого файла.
    2) Перевести изображение из TImage в буфер обмена, запустить word, убедиться, что он запущен и
    сымитировать нажатие CTRL+V.
    3) Поискать готовые решения (библиотеки или компоненты) для данной задачи и сделать тоже самое,
    что и в первом способе, но только используя их.

    Первый вариант потребует изучить формат файла .doc, работа достаточно ёмкая.
    Второй вариант потребует изучить только соответствующие WinAPI функции(буфер обмена, имитация
    нажатия кнопки), по идее это делается существенно проще, чем первый способ, но везде есть свои нюансы.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. Пользователь сказал cпасибо:

    Daniel_Riccardo (11.10.2016)

  4. #3  
    Новичок
    Регистрация
    29.09.2016
    Сообщений
    7
    Сказал(а) спасибо
    5
    Поблагодарили 1 раз в 1 сообщении
    Решил вопрос следующим образом:
    1) Написал код для сохранения изображения в определенную директорию;
    2) С помощью другого кода копирую изображение из директории в MS Word.
    Ответить с цитированием  
     

  5. Пользователь сказал cпасибо:

    >Quiet Snow< (12.10.2016)

  6. #4  
    Профи Аватар для nik_1
    Регистрация
    03.08.2014
    Сообщений
    283
    Сказал(а) спасибо
    160
    Поблагодарили 145 раз(а) в 109 сообщениях
    Записей в блоге
    1
    с помощью технологии OLE.
    Pascal Code:
    1.  
    2. ник
    3.  
    4.  
    5. unit Unit1;
    6.  
    7. {$mode objfpc}{$H+}
    8.  
    9. interface
    10.  
    11. uses
    12. Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    13. ExtCtrls, Variants, ComObj, Clipbrd, Buttons;
    14.  
    15. type
    16.  
    17. { TForm1 }
    18.  
    19. TForm1 = class(TForm)
    20. Button1: TButton;
    21. Button2: TButton;
    22. Image1: TImage;
    23. Image2: TImage;
    24. Image3: TImage;
    25. Panel1: TPanel;
    26. ScrollBox1: TScrollBox;
    27. procedure Button1Click(Sender: TObject);
    28. procedure Button2Click(Sender: TObject);
    29. private
    30. { private declarations }
    31. public
    32. { public declarations }
    33. end;
    34.  
    35. var
    36. Form1: TForm1;
    37. Word: OleVariant;
    38.  
    39. implementation
    40.  
    41. {$R *.lfm}
    42.  
    43. { TForm1 }
    44. //        вставка в ворд
    45. procedure TForm1.Button1Click(Sender: TObject);
    46. var str :Variant;
    47.  
    48. begin
    49.  
    50. Word:=CreateOleObject(Word.Application);//создаём новое приложение
    51. Word.Documents.Add; //добавляем в ворд новый документ
    52. Word.Visible:=true; //делаем приложение видимым
    53. Word.ActiveDocument.Paragraphs.Item(1).Range.Text:=»; //создаем параграф номер 1
    54.  
    55. str:=Utf8ToAnsi(#10#13’Вставляем рисунок №1’#10#13);
    56. Word.Selection.Range.Text:=str;
    57. Word.Selection.Collapse;//снимаем выделение
    58. Clipboard.Assign(Image1.Picture.Bitmap); //копирует в буфер обмена преобразованый в формат бмп рисунок
    59. Word.Selection.Range.Paste;//вставляем из буфера обмена
    60. Word.Selection.Collapse;//снимаем выделение
    61. Clipboard.Clear; //чистим буфер обмена
    62.  
    63. str:=Utf8ToAnsi(#10#13’Вставляем рисунок №2’#10#13);
    64. Word.Selection.Range.Text:=str;
    65. Word.Selection.Collapse;//снимаем выделение
    66. Clipboard.Assign(Image2.Picture);   //копирует в буфер обмена рисунок в формате бмп
    67. Word.Selection.Range.Paste; //вставляем из буфера обмена
    68. Word.Selection.Collapse;//снимаем выделение
    69. Clipboard.Clear; //чистим буфер обмена
    70.  
    71. str:=Utf8ToAnsi(#10#13’Вставляем канву формы’#10#13);
    72. Word.Selection.Range.Text:=str;
    73. Word.Selection.Collapse;//снимаем выделение
    74. Clipboard.Assign(Image3.Picture);   //копирует в буфер обмена рисунок в формате бмп
    75. Word.Selection.Range.Paste; //вставляем из буфера обмена
    76. Word.Selection.Collapse;//снимаем выделение
    77. Clipboard.Clear; //чистим буфер обмена
    78.  
    79. Word.Quit; //закрываем процесс
    80.  
    81. end;
    82. //        копируем канву формы в рис3
    83. procedure TForm1.Button2Click(Sender: TObject);
    84. var Rect1, Rect2: TRect;
    85. begin
    86. //готовим канву Image3 к работе
    87. Image3.Canvas.Brush.Color:=clRed;
    88. Image3.Canvas.FillRect(0,0,Image3.Width,Image3.Height);
    89. Rect1.Left:=1;
    90. Rect1.Top :=1;
    91. Rect1.Right:=Form1.Width-2;
    92. Rect1.Bottom:=Form1.Height-2;
    93. Rect2:=Rect1;
    94. Form1.Canvas.CopyMode := cmSrcCopy;
    95. Image3.Canvas.CopyMode := cmSrcCopy;
    96. Image3.Canvas.CopyRect(Rect1, Form1.Canvas, Rect2);
    97. end;
    98.  
    99. end.
    Ответить с цитированием  
     

  7. Пользователь сказал cпасибо:

    >Quiet Snow< (29.11.2016)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 13.06.2017, 11:56
  2. Ответов: 5
    Последнее сообщение: 04.10.2015, 11:31
  3. Санкции от Microsoft
    от >Quiet Snow< в разделе Новости
    Ответов: 9
    Последнее сообщение: 22.06.2015, 23:06
  4. Утилита Redact v1.4 (Рисование примитивами, экспорт в код)
    от >Quiet Snow< в разделе Проекты на Basic
    Ответов: 9
    Последнее сообщение: 18.05.2012, 04:00
  5. Microsoft =)
    от pingvin в разделе Юмор
    Ответов: 13
    Последнее сообщение: 09.06.2011, 21:33
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •