Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2010, 10:47   #11
psa247
 
Регистрация: 24.02.2010
Сообщений: 5
По умолчанию

Круто, все получилось. Реализация вставки картинки из 1С в произвольное место.
Реализуется с помощью таблицы, которую нужно поместить в то место, где нужна картинка

Макет - макет с Active Document
Путь = ОбщийМодуль3.УзнатьИмяКаталогаРаспо ложенияФайла(ЭтотОбъект);
Попытка
АД = ПолучитьМакет("МакетВорд");
MSWord = АД.Получить();
ДокВ = MSWord.Application.Documents.Add(Пу ть);
АппВ = MSWord.Application.ActiveDocument;

ФИОДляКартинки = СокрЛП(ПодписалДок.Наименование);
Если ТипЗнч(ПодписалДок)=Тип("Справочник Ссылка.Руководители") Тогда
ФИОДляКартинки = СокрЛП(ПодписалДок.Сотрудник.Наимен ование);
КонецЕсли;

ПутьККартинке = Константы.ЦентральноеХранилище.Полу чить()+"\Подписи\"+ОбщийМодуль4.Ини циалы(ФИОДляКартинки, ИСТИНА, ИСТИНА, 8)+"JPG";
Таб = ДокВ.Tables(2);
Пикчер = Таб.Cell(1,2).Range.InlineShapes.Ad dPicture(ПутьККартинке);

ДокВ.ActiveWindow.Visible = TRUE;
ДокВ.Activate();
Исключение
Сообщить("Ошибка при вставке подписи: ["+ОписаниеОшибки()+"]");
MSWord.Application.Quit();
КонецПопытки;
psa247 вне форума Ответить с цитированием
Старый 06.07.2012, 23:36   #12
alexan0308
Пользователь
 
Регистрация: 22.08.2009
Сообщений: 46
По умолчанию А если попалась таблица?

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Если курсор будет в таблице, то картинка вставится во второй столбец первой строки
Кстати, эта же проблема может возникнуть и с текстовыми полями, о которых речь шла в начале темы. То есть если страница начинается с таблице, то текстовый блок попадет не знам куда. Поэтому нужно сначала выйти из таблицы (код на дельфи)
Код:
    Selection.GoTo(What:=wdGoToPage, Which:=wdGoToNext, Name:='3');
while Selection.Information[wdWithInTable] do // а вдруг мы внутри таблицы? нужно выйти
begin
      Selection.MoveRight(Unit:=wdCharacter, Count:=12); // идем вправо
end;
Правда, если таблица на всю страницу, то страница пролетает. Как тут быть, не знаю, к счастью случай наверно редкий...
alexan0308 вне форума Ответить с цитированием
Старый 07.07.2012, 07:46   #13
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,166
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Если курсор будет в таблице, то картинка вставится во второй столбец первой строки
Код:
Sub InsertPictureInTable()
  If Selection.Information(wdWithInTable) Then
    Selection.Tables(1).Cell(1, 2).Range.InlineShapes.AddPicture ("Путь к картинке")
  End If
End Sub
Как я понял, здесь "Путь к картинке" это некий файл?
с каким расширением можно вставлять файл?
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание "суб-меню" из файлов в заданном каталоге Abhorrer Общие вопросы Delphi 5 14.03.2009 21:47
Помогите!Срочно! "Составьте программу получения в порядке убывания всех делителей данного числа" koston Паскаль, Turbo Pascal, PascalABC.NET 2 26.03.2008 12:34
Одна "шапка" на всех листах Noor Microsoft Office Excel 2 30.07.2007 15:39
Как произвести замену всех двузначных чисел на "00число которое заменено" ВЯЧ Microsoft Office Excel 5 06.12.2006 01:02