Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
irabva
0 / 0 / 2
Регистрация: 14.12.2015
Сообщений: 11
#1

Добавление изображения в документ Word

06.06.2016, 11:13. Просмотров 258. Ответов 2

Пытаюсь добавить изображение в Word:
Рисунок выбирается через OpenPictureDialog (еще в TEdit(PathToPicture) показывается выбранный путь)
Delphi
1
2
Shape:=Act.ActiveDocument.Shapes.AddPicture(FileName:=UTF8tosys(OpenPictureDlg.FileName.Text), 
          LinkToFile:=False, SaveWithDocument:=True, Anchor:=MyRange);
пробовала
FileName:=UTF8tosys(PathToPicture.Text)
FileName:=OpenPictureDlg.FileName
и несколько других вариантов.
Выдает ошибку. Подскажите, пожалуйста, как решить проблему.
0
Миниатюры
Добавление изображения в документ Word  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2016, 11:13
Ответы с готовыми решениями:

Добавление изображения в документ Word
Комрады, нужна помощь. Никак не могу понять, что я делаю не так. Пытаюсь...

Открыть документ MS Word. Функция
Пишу функцию для открытия документа MS Word: ... // Constants for enum...

Создать документ Word по шаблону?
Если просто создавать документ, то все создается без проблем....

Не получается вставить *.bmp в документ Word
for i:= 1 to 2 do begin MSWORD.Selection.GotoNext(Wath:= wdGotoPage); ...

Перенос значений RadioButton в документ Word
Добрый вечер, проблемка такая, на форме есть различные радиобаттон, необходимо...

2
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25981 / 17423 / 6909
Регистрация: 22.10.2011
Сообщений: 30,662
Записей в блоге: 6
06.06.2016, 11:51 #2
Приведи код полностью, вместе с получением MyRange. Почему обязательно надо дать только строку, которая выдает ошибку, а тут сиди и думай, а как ее ПОВТОРИТЬ???

Добавлено через 5 минут
Вот это:
Pascal
1
2
     Shape:=Doc.ActiveDocument.Shapes.AddPicture(FileName:=WideString(OpenPictureDlg.FileName),
               LinkToFile:=False, SaveWithDocument:=True);
прекрасно добавляет картинку без Anchor-а. Если проблема была именно в пути к файлу - то она решена. При чем тут FileName.Text - я так и не понял, нет у строки свойства Text.
0
irabva
0 / 0 / 2
Регистрация: 14.12.2015
Сообщений: 11
06.06.2016, 15:30  [ТС] #3
Мне необходимо вставить рисунок в определенное место. Нашла такой способ:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 if Picture.CheckBox.Checked then
     begin
          MyRange:=Act.ActiveDocument.Range(Act.ActiveDocument.Characters.Count-1,
                  Act.ActiveDocument.Characters.Count-1);
          Act.ActiveDocument.Range.InsertAfter('PICTURE' + #13 + #10);
          MyRange := Act.ActiveDocument.Content;
          MyRange.Find.ClearFormatting;
          MyRange.find.forward := true;
          MyRange.find.text := 'PICTURE';
          MyRange.Find.MatchCase := False;
          MyRange.Text := '';
          Shape:=Act.ActiveDocument.Shapes.AddPicture(FileName:=WideString(OpenPictureDlg.FileName),
LinkToFile:=False, SaveWithDocument:=True, Anchor:=MyRange);
     end;
Все равно ошибка. При открытии файла использую
Delphi
1
PathToDoc:= UTF8ToSys(ProjectName + '\Документы\Акт Обследования.doc');
И все работает.

попробовала
Delphi
1
2
Shape:=Act.ActiveDocument.Shapes.AddPicture(FileName:=WideString(OpenPictureDlg.FileName),
               LinkToFile:=False, SaveWithDocument:=True);
тоже ошибка.

Добавлено через 2 часа 30 минут
Нашла решение:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if Picture.CheckBox.Checked then
     begin
          MyRange:=Act.ActiveDocument.Range(Act.ActiveDocument.Characters.Count-1,
                    Act.ActiveDocument.Characters.Count-1);
          img := TImage.Create(Self);
          img.AutoSize:=true;
          Img.Picture.LoadFromFile(utf8toSys(PathToPicture.Text));
          if img.Width > 800 then img.Width := 800;
          if img.Height > 600 then img.Height := 600;
          Clipboard.Assign(Img.Picture.Bitmap);
          Act.ActiveDocument.Frames.Add(MyRange);
          Act.ActiveDocument.Frames.Item(1).Height:=Img.Height;
          Act.ActiveDocument.Frames.Item(1).Width:=Img.Width;
          Act.ActiveDocument.Frames.Item(1).Select;
          Act.Selection.Paste;
          FreeAndNil(img);
          Clipboard.Clear;
          Act.Selection.InsertAfter(WideString(Utf8ToAnsi(#13 + #10 + 'Рисунок 1 - Схема информационной системы' 
                 + #13 + #10 )));
          Act.ActiveDocument.Range(0, Act.ActiveDocument.Characters.Count-1).Select;
       end;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2016, 15:30

Как через Delphi записать макрос в документ Word?
Вопрос, который я задаю, относится не только к языку Delphi, но и к программе...

Добавление документа Word в ListBox
Помогите сделать добавление документа Word в ListBox с компьютера чтобы...

Пошаговое добавление строк в Word документ
Всем приветик!!! VB2008 Такая задачка: При нажатии на кнопку создаётся ворд...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru