[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Hyperlink zu Textanker (CC2020, WIN10, JSX)

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

Hyperlink zu Textanker (CC2020, WIN10, JSX)

cwenet
Beiträge gesamt: 950

6. Jun 2020, 14:00
Beitrag # 1 von 8
Bewertung:
(4068 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

mit folgendem Script versuche ich gerade Hyperlinks zu erstellen.
Die Zielanker sind bereits gesetzt.
Das Script erstellt zwar die gewünschten Hyperlinks, aber das Ziel wird nicht erkannt.
Code
app.findTextPreferences = NothingEnum.nothing; 
app.findTextPreferences.appliedCharacterStyle = "start";
myLinkResult = app.activeDocument.findText();
myDoc = app.activeDocument;

for (i = 0; i < myLinkResult.length; i += 1) {

myLink = myLinkResult[i];
myLinkText = myDoc.hyperlinkTextSources.add(myLink);
myDoc.hyperlinks.add(myLinkText, myLink.contents);

}


Die Namen der Textanker sind identisch mit der Hyperlink-Quelle.

Hier ein Demo-Dok:
https://www.dropbox.com/s/uqs3actdkanw20h/hyperlink.indd?dl=0

Ich bräuchte bitte nochmals Eure Hilfe.
Gruss
Christoph
X

Hyperlink zu Textanker (CC2020, WIN10, JSX)

Martin Fischer
  
Beiträge gesamt: 12311

6. Jun 2020, 17:59
Beitrag # 2 von 8
Beitrag ID: #575614
Bewertung:
(4019 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

schau Dir mal die Syntax des hyperlinks.add()-Befehls an: hyperlinks.add()

Das erste Argument ist hyperlinkSource.
Das ist in Deinem Schnippsel korrekt.

Das zweite Argument ist hyperlinkDestination.
Du übergibst aber einen String.

Hier müsste aber Dein "Anker" als hyperlinkDestination-Objekt (vermutlich HyperlinkTextDestination) angegeben werden.

Wenn dieses Objekt noch nicht definiert ist, musst Du das ggf. aus dem Textobjekt erzeugen: HyperlinkTextDestination.add().

Viele Grüße
Martin




als Antwort auf: [#575609]

Hyperlink zu Textanker (CC2020, WIN10, JSX)

cwenet
Beiträge gesamt: 950

6. Jun 2020, 18:53
Beitrag # 3 von 8
Beitrag ID: #575616
Bewertung:
(3999 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke fürs heranführen.
Eigentlich müsste es doch jetzt so richtig sein:

Code
app.findTextPreferences = NothingEnum.nothing;  
app.findTextPreferences.appliedCharacterStyle = "start";
myLinkResult = app.activeDocument.findText();
myDoc = app.activeDocument;

for (i = 0; i < myLinkResult.length; i += 1) {

myLink = myLinkResult[i];
source = myDoc.hyperlinkTextSources.add(myLink);
anchor = myDoc.hyperlinkTextDestinations.item(myLink.contents);
xref = myDoc.hyperlinks.add (source, anchor);
myRandomString = String(Math.random());
xref.name = myLink.contents+ "_" + myRandomString.slice(2,);
}


Fehler: Ungültiger Wert für Parameter "hyperlinkDestination"
Leider komme ich irgendwie nicht weiter.


als Antwort auf: [#575614]

Hyperlink zu Textanker (CC2020, WIN10, JSX)

Martin Fischer
  
Beiträge gesamt: 12311

6. Jun 2020, 20:06
Beitrag # 4 von 8
Beitrag ID: #575619
Bewertung:
(3957 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, eigentlich müsste es so richtig sein und bei mir funktioniert das auch mit Deinem oben angegebenen Beispieldokument.

Hier ist noch eine kleine Prüfung zur Existenz der hyperlinkTextDestination eingebaut, aber im Wesentlichen ist das Dein Code:

Code
var myDoc = app.activeDocument; 
var myLinkResult = [];
var myLink = null;
var source = null;
var xref = null;
var i = 0;
var myRandomString = '';

app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.appliedCharacterStyle = myDoc.characterStyles.itemByName("start");
myLinkResult = app.activeDocument.findText();

for (i = 0; i < myLinkResult.length; i += 1)
{
myLink = myLinkResult[i];
source = myDoc.hyperlinkTextSources.add(myLink);
if (myDoc.hyperlinkTextDestinations.item(myLink.contents).isValid)
anchor = myDoc.hyperlinkTextDestinations.item(myLink.contents);
else
anchor = myDoc.hyperlinkTextDestinations.add({destinationText:myLink, name: myLink.contents});
xref = myDoc.hyperlinks.add (source, anchor);
myRandomString = String(Math.random());
xref.name = myLink.contents + "_" + myRandomString.slice(2,);
}


Im Moment habe ich keine Erklärung, weshalb es bei Dir mit dem Beispieldokument nicht funktioniert.

---
edit:
Die else-Alternative ist freilich Quatsch, weil sie das Ziel bei der Quelle ergänzt. Das müsstest Du ggf. noch konkreter anpassen. Es sollte nur sicher stellen, dass ein ansprechbares Ziel mit diesem Namen existiert.

Viele Grüße
Martin




als Antwort auf: [#575616]
(Dieser Beitrag wurde von Martin Fischer am 6. Jun 2020, 20:11 geändert)

Hyperlink zu Textanker (CC2020, WIN10, JSX)

cwenet
Beiträge gesamt: 950

6. Jun 2020, 20:39
Beitrag # 5 von 8
Beitrag ID: #575621
Bewertung:
(3938 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank, Martin, für die Aufbereitung.

Es funktioniert fast.
Der erste Hyperlink [1] im Fliesstext verweist komischerweise auf sich selber.
Es wird dort ein Textanker platziert.


als Antwort auf: [#575619]

Hyperlink zu Textanker (CC2020, WIN10, JSX)

Martin Fischer
  
Beiträge gesamt: 12311

6. Jun 2020, 20:46
Beitrag # 6 von 8
Beitrag ID: #575623
Bewertung:
(3928 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat von Christoph Der erste Hyperlink [1] im Fliesstext verweist komischerweise auf sich selber.
Es wird dort ein Textanker platziert.


Dann ist Dir das Ziel (der "Anker") vorhin verlorengegangen. Denn mit meinem Code oben wird ein fehlendes Ziel direkt an der Quelle erzeugt.

Siehe Hinweis oben:

Zitat von Martin Fischer Die else-Alternative ist freilich Quatsch, weil sie das Ziel bei der Quelle ergänzt. Das müsstest Du ggf. noch konkreter anpassen. Es sollte nur sicher stellen, dass ein ansprechbares Ziel mit diesem Namen existiert.


Viele Grüße
Martin




als Antwort auf: [#575621]
(Dieser Beitrag wurde von Martin Fischer am 6. Jun 2020, 20:46 geändert)

Hyperlink zu Textanker (CC2020, WIN10, JSX)

cwenet
Beiträge gesamt: 950

6. Jun 2020, 20:58
Beitrag # 7 von 8
Beitrag ID: #575624
Bewertung:
(3914 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich glaube, ich habe es nicht verstanden.
So läuft es jetzt fehlerfrei durch, aber ohne die erste Fundstelle.
Das Ziel ist aber da.

Code
var myDoc = app.activeDocument;  
var myLinkResult = [];
var myLink = null;
var source = null;
var xref = null;
var i = 0;
var myRandomString = '';

app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.appliedCharacterStyle = myDoc.characterStyles.itemByName("start");
myLinkResult = app.activeDocument.findText();

for (i = 0; i < myLinkResult.length; i ++)
{
myLink = myLinkResult[i];
source = myDoc.hyperlinkTextSources.add(myLink);
if (myDoc.hyperlinkTextDestinations.item(myLink.contents).isValid) {
anchor = myDoc.hyperlinkTextDestinations.item(myLink.contents);
xref = myDoc.hyperlinks.add (source, anchor);
myRandomString = String(Math.random());
xref.name = myLink.contents + "_" + myRandomString.slice(2,);
}
}



als Antwort auf: [#575623]

Hyperlink zu Textanker (CC2020, WIN10, JSX)

cwenet
Beiträge gesamt: 950

6. Jun 2020, 21:02
Beitrag # 8 von 8
Beitrag ID: #575626
Bewertung:
(3907 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Entwarnung.
Ich habe nochmal alle Ziele gelöscht und neu erstellt.
Jetzt tut es.
Die Textanker sind ein Mysterium.
Schönen Abend und vielen Dank
Christoph


als Antwort auf: [#575624]
(Dieser Beitrag wurde von cwenet am 6. Jun 2020, 21:03 geändert)
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
04.09.2020 - 05.03.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 04. Sept. 2020, 13.00 Uhr - Freitag, 05. März 2021, 12.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte. Mit dem Abschluss «Publisher Professional – Profil «Multimedia» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-professional-profil-multimedia

Veranstaltungen
22.09.2020 - 23.09.2020

Digicomp Academy AG, Basel, Bern oder virtuell
Dienstag, 22. Sept. 2020, 08.30 Uhr - Mittwoch, 23. Sept. 2020, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Preis: CHF 1'400.-
Dauer: 2 Tage

Nein

Organisator: Digicomp Academy AG

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/desktop-publishing/adobe-photoshop-cc/kurs-adobe-photoshop-cc-basic

Neuste Foreneinträge


Ja ich finde Adobe Anwendungen spitze, aber ...

Indesign Fußnoten/Endnoten bei Buchfunktion

Problem mit der Verknüpfung von InDesign mit Excel

Suchen und Ersetzen in Arrays

Pfeil zurück geht nur im eingeloggten Zustand

Illustrator: Anker-Anzeige in Schrift

Automatische Farbmengenberechnung

Lüftergeräusch nach Installation von Catalina update 10.15.6

Tastatur-Kürzel in Dialogen tun nicht mehr

safaribookmarkssyncagent wurde unerwartet beendet Fehlermeldung geht nicht mehr weg
medienjobs