Вход | Регистрация

1С:Предприятие ::

Метки: 

Установить картинку в ворд

Я
   MistaEr
 
17.04.18 - 11:17
Доброго дня.
Заполняю файл MS Word

WD = Новый COMOBject("Word.Application");
    Попытка
        WordDoc = WD.Documents.Open(ПолноеИмяФайла,,0);
    Исключение
        Возврат Неопределено;
    КонецПопытки;
    
    WordDoc = WD.ActiveDocument;
    wdWord = 2;
    wdExtend = 1;
    wdWindowStateMaximize = 1;
    WD.ActiveWindow.View.ShowFieldCodes = 0;
    NumOfFields = WordDoc.Fields.Count;
    
Замена = WordDoc.Content.Find;
    Замена.Wrap = 1;
    Замена.ClearFormatting();
    Замена.Replacement.ClearFormatting();
    Замена.Forward = True;
    Замена.Wrap = 1;
    Замена.Format = False;
    Замена.MatchCase = False;
    Замена.MatchWholeWord = False;
    Замена.MatchWildcards = False;
    Замена.MatchSoundsLike = False;
    Замена.MatchAllWordForms = False;

Замена.Text = "ФИО";
Замена.Replacement.Text = "Иванов И.И.";
Замена.Execute( , , , , , , , , , , 2);

WordDoc.Save();
WordDoc.Close();
WordDoc = Неопределено;    
Если WD.Documents.Count = 0 Тогда 
WD.Quit(0);
КонецЕсли;
WD = Неопределено;


Возникла задача добавить картинку

Selection = WD.Selection;
Picture=Selection.InlineShapes.AddPicture("C:\DO\20180209\Снимок1.png", Ложь, Истина);
        Picture.Height = 100;
        Picture.Width  = 150;

Добавляет в самое начало файла.
Мне нужно в определенное место в середине, не в конце
 
  Рекламное место пустует
   b_ru
 
1 - 17.04.18 - 11:34
Это тайное ниндзютцу, постигается только теми, кто понимает, что такое Selection, зачем он нужен и почему он НЕ нужен в данном случае.
Подсказка, есть такой объект Range, у него есть коллекция InlineShapes. А еще есть объект Paragraph.
   MistaEr
 
2 - 17.04.18 - 11:52
(1) Спасибо!
Параграф = WordDoc.Paragraphs.Item(НомерПараграфа);
       TempImagePath = "C:\DO\20180209\Снимок1.jpg";
       Файл = Новый Файл(TempImagePath);
       Параграф.Range.InlineShapes.AddPicture(TempImagePath);

Только вот не знаю НомерПараграфа как найти
   MistaEr
 
3 - 17.04.18 - 12:53
Может кто знает, как определить номер текущей строки в ворде?
   b_ru
 
4 - 17.04.18 - 13:07
>>Только вот не знаю НомерПараграфа как найти

Да можешь банально посчитать, если у тебя шаблон не меняется. А можешь перебирать все и искать по тексту содержимого, а в шаблоне соответственно в этом месте напиши какую-нибудь метку.
   MistaEr
 
5 - 17.04.18 - 13:21
(4) Да. Метку я поставил. Нашел метку, заменил на "". А как получить номер строки)
   MistaEr
 
6 - 17.04.18 - 13:31
b_ru, спасай!!
   zladenuw
 
7 - 17.04.18 - 14:38
   MistaEr
 
8 - 17.04.18 - 14:44
(7) Это то я сделал. Но НомерПараграфа я хочу задать сам
   MistaEr
 
9 - 17.04.18 - 14:45
Не просто задать цифрой, а найти в файле метку, где должна быть картинка и определить номер строки. Это и будет НомерПараграфа
   zladenuw
 
10 - 17.04.18 - 14:49
 
 
   b_ru
 
11 - 17.04.18 - 14:52
Номер параграфа - это не номер строки, это номер абзаца.
Для Каждого Пар Из WordDoc.Paragraphs Цикл
  Если СтрНайти(Пар.Range.text, МояМетка) > 0 Тогда
    Пар.Range.InlineShapes.AddPicture(TempImagePath);
  КонецЕсли;
КонецЦикла;
   zladenuw
 
12 - 17.04.18 - 14:52
   MistaEr
 
13 - 17.04.18 - 15:22
(11) Сделал вот так. Всем большущее спасибо!


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует