Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Hyperlink von HyperlinkTextSource finden

Hyperlink von HyperlinkTextSource finden

J.Puff
Beiträge gesamt: 238

12. Jul 2013, 22:30
Bewertung:

gelesen: 1395

Beitrag als Lesezeichen
Hallo,
ich versuche anhand einer hyperlinkTextSource den dazugehörigen Hyperlink zu finden.
Das funktioniert, in dem ich alle Dokument-Hyperlinks in einer Schleife durchforste, bis ich denjenigen gefunden habe, der zu der HyperlinkTextSource gehört.
Leider ist das recht langsam bei mehreren Tausend Hyperlinks in einem Dokument.
Gibt es einen direkten Weg um von einer HyperlinkTextSource zum Hyperlink zu kommen?

Danke für eine Hilfestellung!
Johannes

Hyperlink von HyperlinkTextSource finden

-hans-
Beiträge gesamt: 748

13. Jul 2013, 09:20
Bewertung:

gelesen: 1350

Beitrag als Lesezeichen
Guten Morgen,

wie wär's mit einem workaround?
Sowohl hyperlink als auch seine source haben eine name-property und in der collection auch die itemByName-Methode.

Vorschlag: Iteriere durch die hyperlinks und setze jeweils für den hyperlink selber und dessen source den gleichen String ein.

->Von der hyperlinktextsource kommst Du dann also darüber mit app.activeDocument.hyperlinks.itemByName(hyperLinkTextSourceName)

Nicht durchgespielt, Variationen möglich.
Lieben Gruß

Hans-Gerd Claßen

Hyperlink von HyperlinkTextSource finden

WernerPerplies
Beiträge gesamt: 2762

13. Jul 2013, 10:26
Bewertung:

gelesen: 1328

Beitrag als Lesezeichen
Hallo Johannes,

ich hatte bei der Entwicklung meines WpsHyperlinkInspector das gleiche Problem.
Um die verwaisten Hyperlinkquellen zu finden, brauche ich natürlich die zugehörigen Hyperlinks.
Eine von mehreren Möglichkeiten ist der Vorschlag von Hans, ich würde allerdings die Verknüpfung über die Labeleigenschaft vornehmen.
Wenn Du einmal die Eigenschaft zugewiesen hast, brauchst Du die Hyperlinks nur noch zu durchsuchen, wenn die entsprechende Labeleigenschaft fehlt oder ungültig geworden ist.
Zitat Leider ist das recht langsam bei mehreren Tausend Hyperlinks in einem Dokument.

Das Durchsuchen einers Arrays oder einer Sammlung ist bei richtiger Strategie eingentlich nicht langsam, langsam ist der Zugriff auf die Hyperlinks.
Deshalb könnte, wenn sich die Hyperlinks während des Skriptlaufes nicht verändern, oder Du über die Veränderungen Buch führst, auch folgendes eine erhebliche Geschwindigkeitssteigerung bringen:

1. Einlesen aller Source-IDs der Hyperlinks in ein Array
2. Sortieren des Arrays
3. Dieses Array binär durchsuchen.

Bei dieser Technik gibt es natürlich weitere Möglichkeiten, wenn Du z. B. die Hyperlink-ID zusätzlich abspeicherst, kannst Du leicht die Gültigkeit des zugehörigen Hyperlinks überprüfen.

Das alles mal als Anregung.

Einen schönen Tag wünscht

Werner Perplies
Praxisnahe Skript-Lösungen und Skript-Programmierung für Adobe InDesign
Aktuelles (Stand: 14.02.2024)
Kundenstimmen

Hyperlink von HyperlinkTextSource finden

J.Puff
Beiträge gesamt: 238

13. Jul 2013, 10:48
Bewertung:

gelesen: 1320

Beitrag als Lesezeichen
Guten Morgen,
die gleichartige Benennung der Hyperlinks und TextSourcen war der endscheidende Tipp. Vielen Dank.
Jetzt geht es um Faktor 10 schneller.

Ein schönes Wochenende noch,
Johannes