Имя: Пароль:
1C
1С v8
Установить картинку в ворд
0 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;

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

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

Да можешь банально посчитать, если у тебя шаблон не меняется. А можешь перебирать все и искать по тексту содержимого, а в шаблоне соответственно в этом месте напиши какую-нибудь метку.
5 MistaEr
 
17.04.18
13:21
(4) Да. Метку я поставил. Нашел метку, заменил на "". А как получить номер строки)
6 MistaEr
 
17.04.18
13:31
b_ru, спасай!!
7 zladenuw
 
17.04.18
14:38
8 MistaEr
 
17.04.18
14:44
(7) Это то я сделал. Но НомерПараграфа я хочу задать сам
9 MistaEr
 
17.04.18
14:45
Не просто задать цифрой, а найти в файле метку, где должна быть картинка и определить номер строки. Это и будет НомерПараграфа
10 zladenuw
 
17.04.18
14:49
11 b_ru
 
17.04.18
14:52
Номер параграфа - это не номер строки, это номер абзаца.

Для Каждого Пар Из WordDoc.Paragraphs Цикл
  Если СтрНайти(Пар.Range.text, МояМетка) > 0 Тогда
    Пар.Range.InlineShapes.AddPicture(TempImagePath);
  КонецЕсли;
КонецЦикла;
12 zladenuw
 
17.04.18
14:52
13 MistaEr
 
17.04.18
15:22
(11) Сделал вот так. Всем большущее спасибо!
Программист всегда исправляет последнюю ошибку.