Как получить Hyperlink.destination если найден Hyperlink.source?

  • Автор темы Автор темы Vadim_PDF
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Vadim_PDF

Топикстартер
15 лет на форуме
Сообщения
1 648
Реакции
237
Условно - нашли (через findText) кусок текста (в котором предположим есть ссылка(ссылки)).
Код:
var myDocument = app.activeDocument;
app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.findWhat = "ipsam";

var myFoundItems = myDocument.findText();
var myHyperlinkTextSource = myFoundItems[0].findHyperlinks()[0];
var myHyperlinkDestination = ???

Как по HyperlinkTextSource получить HyperlinkDestination ?
Дело в том что по сути задача такая. Найти текст, проверить является ли этот текст ссылкой, если нет - то добавить ссылку. Если да, то получить URL ссылки.

Единственное что приходит на ум - перебирать все ссылки документа и в каждой проверять есть ли мой TextSource.
Других вариантов нет? На всякий случай, уточню (не разобрался в Object Model ) - у каждого объекта Hiperlink может быть только один destination и один source ? То есть виды могут быть разные -
HyperlinkExternalPageDestination
HyperlinkPageDestination
HyperlinkTextDestination
HyperlinkURLDestination
ParagraphDestination

но цель только одна. Как и источник. И даже если в документе 50 ссылок на http://google.com/ - то 50 раз будет создан Hyperlink и 50 раз HyperlinkURLDestination.

То есть для каждого HyperlinkSource существует только один (уникальный) Hyperlink с одним уникальным объектом HyperlinkURLDestination?

не могут ли (кривым импортом из Word, или моими шаловливыми руками в скрипте) HyperlinkSource содержаться в нескольких Hyperlink или несколько Hyperlink ссылаться на один объект HyperlinkURLDestination?
 
с destination ситуация такая - нескольким объектам Hyperlink может принадлежать (быть свойством destination) один объект HyperlinkDestination;
с source нет, попытка присвоить одному Hyperlink - source другого приводит к ошибке (ругается The object you have choisen is alrady in use be another hyperlink) - что логично.

Остался только вопрос - как оптимально (не перебором) получить Hyperlink имея только HyperlinkSource.
 
Статус
Закрыто для дальнейших ответов.