Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
4 / 4 / 3
Регистрация: 05.11.2012
Сообщений: 245
1

Вывод картинки из dbimage в word

05.11.2012, 22:18. Показов 3529. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Друзья, такой вопрос как вывести картинку из dbimage в word. Я разобрался с тем как выводить данные из dbedit в word, с использованием шаблона word (.dot). Думал по аналогий вывести и из dbimage но не тут то было.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
procedure TForm3.Button1Click(Sender: TObject);
var
word,doc:OleVariant;
str,text,type1,foto:string;
begin
Getdir(0,str);
 word:=CreateOleObject('Word.Application');
 word.documents.open(str+'\sotr3.dot');
 //Вывод первого абазаца
 doc:=word.documents.item(1);
 text:=doc.paragraphs.item(1).Range.Text;
 text:=Replace(text,'DBEdit3',DBEdit3.Text);
 text:=Replace(text,'DBEdit4',DBEdit4.Text);
 text:=Replace(text,'DBEdit5',DBEdit5.Text);
 doc.paragraphs.item(1).Range.Text:=text;
 //Вывод первого абазаца
 
 //Вывод второго абзаца(Табельный номер)
  doc:=word.documents.item(1);
 text:=doc.paragraphs.item(3).Range.Text;
 text:=Replace(text,'DBEdit1',DBEdit1.Text);
 doc.paragraphs.item(3).Range.Text:=text;
 //Вывод второго абзаца(Табельный номер)
 
  //Вывод должности
  doc:=word.documents.item(1);
 text:=doc.paragraphs.item(6).Range.Text;
 text:=Replace(text,'DBEdit7',DBEdit7.Text);
 doc.paragraphs.item(6).Range.Text:=text;
 //Вывод должности
  word.visible.true;
end;
В принципе всё очень примитивно с выводом текста из dbedit, но вот блин dbimage никак не могу расколоть. Помогите пожалуйста, буду очень благодарен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2012, 22:18
Ответы с готовыми решениями:

Вывод вложения (картинки) в DBImage
Всем привет! Помогите решить проблему. Нужно вывести вложение (картинку) из базы данных Access в...

Сохранение картинки в DBImage
Есть DBGrid с полями (фамилия,Имя,Фото-поле типа OLE) есть DBImage для отображения фото есть код...

Картинки из в DBImage. Переход по записям
Вся программа в архиве! После запуска программы и нажатия на "Начать тест". Все вопросы считываются...

Ошибка при загрузке картинки в DBImage из БД
Не получается из БД Access загрузить картинку в компонент DBImage. Появляется ошибка "Bitmap image...

4
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
06.11.2012, 04:51 2
Как то так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
procedure TForm1.Button2Click(Sender: TObject);
var
  tformat, tappbrd: OleVariant;
  len, a, b, vstart, vend: OleVariant;
begin
  WordApplication1.Connect;
  WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
  WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
 
  WordApplication1.Visible:=true;
 
  WordDocument1.Range.InsertParagraphAfter;
  WordApplication1.Selection.InsertAfter('fkjghdfjkghkafhpicturejkasgdf');
 
  WordDocument1.Range.InsertParagraphAfter;
  a:=0;
  b:=0;
  WordDocument1.Tables.Add(WordDocument1.Range(a, b), 5, 5, EmptyParam, EmptyParam);
  tformat:=wdTableFormatGrid1;
  tappbrd:=wdTableFormatApplyBorders;
  i:=1;
  WordDocument1.Tables.Item(i).AutoFormat(tformat, tappbrd, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
 
//  WordDocument1.Range.InsertParagraphAfter;
{  Clipboard.Assign(Image1.Picture);
  a:=0;
  b:=0;
  WordDocument1.Frames.Add(WordDocument1.Range(a, b));
  i:=1;
  WordDocument1.Frames.Item(i).Height:=Image1.Height;
  WordDocument1.Frames.Item(i).Width:=Image1.Width;
  WordDocument1.Frames.Item(i).Select;
  WordApplication1.Selection.Paste;}
 
  len:=Length(WordDocument1.Range.Text)-30;
  for j:=0 to len-8 do
  begin
    a:=j;
    b:=j+7;
    if WordDocument1.Range(a, b).Text='picture' then
    begin
      vstart:=j;
      vend:=j+7;
    end;
  end;
  WordDocument1.Range(vstart, vend).Select;
 
{  WordDocument1.Range.InsertParagraphAfter;
  a:=0;
  b:=0;
  WordDocument1.Tables.Add(WordDocument1.Range(a, b), 5, 5, EmptyParam, EmptyParam);
  tformat:=wdTableFormatGrid1;
  tappbrd:=wdTableFormatApplyBorders;
  i:=1;
  WordDocument1.Tables.Item(i).AutoFormat(tformat, tappbrd, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);}
end;
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
06.11.2012, 09:09 3
Здесь придётся картинку сначала сохранить в файл, а потом можно будет её загрузить в документ MS Word.
Предположим, wdDoc - документ типа Word.Document, wdRng - диапазон Word.Range, на место которого надо вставить картинку.
Delphi
1
2
var
  wdDoc, wdRng : Variant; //В Delphi 5 и более ранних: OleVariant.
1.
Delphi
1
2
wdDoc.InlineShapes.AddPicture(FileName:=<Picture_FileName>, LinkToFile:=False,
  SaveWithDocument:=True, Range:=wdRng);
2.
Delphi
1
2
wdDoc.Shapes.AddPicture(FileName:=<Picture_FileName>, LinkToFile:=False,
  SaveWithDocument:=True, Left:=<Left>, Top:=<Top>, Width:=<Width>, Height:=<Height>, Anchor:=wdRng);
Здесь:
- Left, Top - координаты левого верхнего угла картинки относительно верхней позиции диапазона wdRng (Anchor:=wdRng).
- Width, Height - размер изображения в документе (оригинальный размер изображения может быть другим).
3. Если надо вставить изображение на полотно для рисования в документе.
Delphi
1
2
3
4
5
6
7
var
  wdDoc, wdCnvShp : Variant; //wdCnvShp - полотно для рисования.
...
begin
...
  wdCnvShp.AddPicture(FileName:=<Picture_FileName>, LinkToFile:=False,
    SaveWithDocument:=True, Left:=<Left>, Top:=<Top>, Width:=<Width>, Height:=<Height>);
1
4 / 4 / 3
Регистрация: 05.11.2012
Сообщений: 245
06.11.2012, 15:23  [ТС] 4
Блин, вроде логически всё правильно, не понимаю почему не работает, вылетает вот такая ошибка
"type not allowed in variant dispatch call". Не хочет работать не в какую=(
0
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
06.11.2012, 23:56 5
Это значит, какой-то параметр при вызове метода COM имеет "неправильный" тип. Надо код посмотреть. Вместе с участками, где формируются объекты, которые в качестве параметров передаются.
0
06.11.2012, 23:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2012, 23:56
Помогаю со студенческими работами здесь

Загрузка картинки в Jpeg - затем из буфера в DBImage
Добрый вечер! Подскажите, пожалуйста... Перекопал очень много источников, не нашел в чем причина:...

Изменение картинки в dbimage при смене строки в dbgrid
Как мне сделать в Delphi, чтобы при смени строки в dbgrid изменялась картинка в dbimage? База...

Вывод изображения в DBImage
Здравствуйте,у меня проблема с выводом изображения bmp из таблицы access в dbimage с помощью...

Firebird DBImage - вывод изображения в LazReport
Если делать по мурзилке http://wiki.freepascal.org/LazReport_Tutorial Now we have to tell the...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru