[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: 945

6. Jun 2020, 14:00
Beitrag # 1 von 8
Bewertung:
(1768 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: 12289

6. Jun 2020, 17:59
Beitrag # 2 von 8
Beitrag ID: #575614
Bewertung:
(1719 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: 945

6. Jun 2020, 18:53
Beitrag # 3 von 8
Beitrag ID: #575616
Bewertung:
(1699 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: 12289

6. Jun 2020, 20:06
Beitrag # 4 von 8
Beitrag ID: #575619
Bewertung:
(1657 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: 945

6. Jun 2020, 20:39
Beitrag # 5 von 8
Beitrag ID: #575621
Bewertung:
(1638 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: 12289

6. Jun 2020, 20:46
Beitrag # 6 von 8
Beitrag ID: #575623
Bewertung:
(1628 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: 945

6. Jun 2020, 20:58
Beitrag # 7 von 8
Beitrag ID: #575624
Bewertung:
(1614 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: 945

6. Jun 2020, 21:02
Beitrag # 8 von 8
Beitrag ID: #575626
Bewertung:
(1607 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

PDF / Print
impressed_logo_300

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
06.07.2020

Digicomp Academy AG, Basel, Bern, Zürich oder virtuell
Montag, 06. Juli 2020, 08.30 - 17.00 Uhr

Kurs

In diesem Kurs lernen Sie alle wichtigen Funktionen von Affinity Designer, die Ihren Workflow optimieren und Ihre Ideen zum Fliegen bringen. Nach dem Kurs können Sie Ihre Projekte mit viel Kreativität und Freude abwickeln.

Preis: CHF 500.-
Dauer: 1 Tag

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/affinity-produkte/kurs-affinity-designer-basic

Veranstaltungen
06.07.2020 - 07.07.2020

Digicomp Academy AG, Zürich oder virtuell
Montag, 06. Juli 2020, 08.30 Uhr - Dienstag, 07. Juli 2020, 17.00 Uhr

Kurs

Adobe Experience Design, kurz XD ist das neue Programm für UX/UI-Design. Mit XD lassen sich visuelles Design und klickbare Prototypen nahtlos verbinden. Lernen Sie die wichtigsten Funktionen vom Entwurf am Bildschirm bis zum online geteilten Prototypen.

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/web-publishing/adobe-xd-cc/kurs-adobe-xd-basic

Neuste Foreneinträge


QuarkXPress in InDesign

Mikrotypografie im Englischen (USA)

Bilderdruckpapier ohne OBA, gibt es noch?

Ende Zeichenformat suchen

Benutzerdefinierte Eigenschaft in Formularfeld schreiben

QXP 2020 Testinstallation

Zeichenstift erkennt Objektkontur. Und Illustrator?

extendStudio stellt die Arbeit an Plugins f�r DW ein.

Time Machine konnte das Backup auf �Elements_10� nicht abschlie�en.

Lesezeichen mit Adobe Acrobat X Pro
medienjobs