Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Отловить удаление картинки в документе Word / 8 сообщений из 8, страница 1 из 1
12.10.2015, 18:17
    #39074823
PVN
PVN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
Документ открывается в OLE CONTROL в приложении Power Builder.
Программно в него добавляется картинка с подписью пациента и сопутствующая информация.
Пользователь может удалить картинку с подписью.

Как можно это отловить, например при сохранении документа?
Нужно в этом случае добавить соответствующий текст в документ.
...
Рейтинг: 0 / 0
12.10.2015, 21:02
    #39074916
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
PVN,
можно при добавлении картинки создать в документе variables c позицией картинки и "соответствующим текстом". При сохранении документа проверить число картинок, и находится ли первая картинка в нужной позиции. Если нет, то вставить текст из переменной.
...
Рейтинг: 0 / 0
12.10.2015, 21:07
    #39074921
PVN
PVN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
Спасибо за идею.

А можно как-то поименовать картинку и потом искать по имени?
Искомая картинка может быть не первой.
...
Рейтинг: 0 / 0
13.10.2015, 10:33
    #39075167
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
PVN,
у картинок обоих типов (Shape и InlineShape) есть свойство AlternativeText. Используйте его.
...
Рейтинг: 0 / 0
13.10.2015, 16:02
    #39075756
PVN
PVN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
Казанский

Спасибо!

Работает,в Power Builder синтаксис своеобразный и не все типы данных поддерживаются.
Но вроде разобрался.

Уткнулся в простой казалось бы вопрос - как
добавить файл с подписью в конец документа?
Пытался так

This.ole_word.Object.Application.ActiveDocument.Content.InsertParagraphAfter()
This.ole_word.Object.Application.Selection.InsertFile (ls_sign_temp)
...
Рейтинг: 0 / 0
13.10.2015, 21:04
    #39076037
PVN
PVN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
Вот фрагмент по вставке рис.

If lole_Word.ActiveDocument.Bookmarks.Exists("signature_image") = True Then
lole_Word.ActiveDocument.Bookmarks.Item("signature_image").Select()
lole_Word.Application.Selection.InlineShapes.AddPicture(is_sign_filename, False, True)
ll_count = lole_Word.ActiveDocument.InlineShapes.Count
if ll_count > 0 then
lole_Word.ActiveDocument.InlineShapes[ll_count].AlternativeText = is_sign_image_name //'signature_image'
lole_Word.ActiveDocument.Bookmarks.Item("signature_image").Delete()
end if
End If

Картинка вставляется, но счетчик не меняется:

lole_Word.ActiveDocument.InlineShapes.Count = 0

lole_Word.ActiveDocument.Shapes.Count тоже не меняется(2 надписи как были так и есть).

Как тогда добраться до вновь вставленного объекта?
...
Рейтинг: 0 / 0
13.10.2015, 21:19
    #39076051
PVN
PVN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
Поэкспериментировал, оказалось причина в том, что закладка установлена внутри надписи.

Если вставлять рисунок просто в текущую позицию, то счетчик отрабатывает нормально.

Но хотелось бы оставить надпись как контейнер для блока с подписью.
...
Рейтинг: 0 / 0
18.10.2015, 18:15
    #39079439
PVN
PVN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отловить удаление картинки в документе Word
Может быть кому пригодиться - нужно в цикле по всем Shapes документа
выделять их и затем искать картинку внутри TextBox.

Скрипт на Power Builder

// to check if exists sign image in document marked with AlternativeText = as_var
Long ll_count, ll_count_in_shape
Long ll_i, ll_j
Boolean lb_exists

ll_count = This.ole_word.Object.Application.ActiveDocument.Shapes.Count
FOR ll_i = 1 TO ll_count
This.ole_word.Object.Application.ActiveDocument.Shapes[ll_i].Select()
ll_count_in_shape = This.ole_word.Object.Application.Selection.InlineShapes.Count
FOR ll_j = 1 TO ll_count_in_shape
If This.ole_word.Object.Application.Selection.InlineShapes[ll_j].AlternativeText = as_var Then
lb_exists = true
exit
end if
NEXT
NEXT
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Отловить удаление картинки в документе Word / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]