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

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

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

Спасибо!

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

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

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

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
Отловить удаление картинки в документе Word
    #39076051
PVN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поэкспериментировал, оказалось причина в том, что закладка установлена внутри надписи.

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

Но хотелось бы оставить надпись как контейнер для блока с подписью.
...
Рейтинг: 0 / 0
Отловить удаление картинки в документе Word
    #39079439
PVN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть кому пригодиться - нужно в цикле по всем 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
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Отловить удаление картинки в документе Word
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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