[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Hyperlink von HyperlinkTextSource finden

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Hyperlink von HyperlinkTextSource finden

J.Puff
Beiträge gesamt: 240

12. Jul 2013, 22:30
Beitrag # 1 von 4
Bewertung:
(1627 mal gelesen)
URL zum Beitrag
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
X

Hyperlink von HyperlinkTextSource finden

-hans-
Beiträge gesamt: 748

13. Jul 2013, 09:20
Beitrag # 2 von 4
Beitrag ID: #514936
Bewertung:
(1582 mal gelesen)
URL zum Beitrag
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.


als Antwort auf: [#514934]

Hyperlink von HyperlinkTextSource finden

WernerPerplies
Beiträge gesamt: 2820

13. Jul 2013, 10:26
Beitrag # 3 von 4
Beitrag ID: #514938
Bewertung:
(1560 mal gelesen)
URL zum Beitrag
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.


als Antwort auf: [#514934]

Hyperlink von HyperlinkTextSource finden

J.Puff
Beiträge gesamt: 240

13. Jul 2013, 10:48
Beitrag # 4 von 4
Beitrag ID: #514940
Bewertung:
(1552 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#514936]
X