[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Textanker über Script anlegen

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

Textanker über Script anlegen

MarioF
Beiträge gesamt: 310

7. Sep 2014, 23:49
Beitrag # 1 von 2
Bewertung:
(1725 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich stehe noch am Anfang was das Scripten betrifft und benötige evt. ein Gedankenanstoß ;)
Ich wollte ein Script machen, welches aus einen Absatzformat ein Textanker erstellt. Das klappt so weit auch ganz gut.
Code
var doc = app.activeDocument       
var myParagraphStyle = sucheDialog(doc);
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;
app.findTextPreferences.appliedParagraphStyle = myParagraphStyle;

var myFound = app.activeDocument.findText();

for( var n = myFound.length-1; n >= 0; n-- ) {

var myTargetContent= myFound[n];
var aText = myTargetContent.texts[0];
var aDest =doc.hyperlinkTextDestinations.add(aText, {name:aText.contents});


}



function sucheDialog(doc){
var myFieldWidth = 120;

var myCharStyles = doc.paragraphStyles.everyItem().name;

var sucheDialog = app.dialogs.add({name:"Textanker erstellen"});


with(sucheDialog.dialogColumns.add()){
with(dialogRows.add()){



with(dialogColumns.add()){
staticTexts.add({staticLabel:"Absatzformat: ", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var mySourceDropdown = dropdowns.add({stringList:myCharStyles, selectedIndex:myCharStyles.length-1});
}
}
}
var myResult = sucheDialog.show();
if(myResult == true){
var theCharStyle =myCharStyles[mySourceDropdown.selectedIndex];
sucheDialog.destroy();
}
else{
myDialog.destroy()
exit();
}
return theCharStyle;
}

Nun würde ich die ganze Sache ein wenig erweitern. Es soll bei der Abfrage des Absatzformat eine Abfrage erfolgen, ob nur neue Eintrage mit dem Absatzformat als Textanker verlinkt werden oder alle. Mit der Option soll vermieden weden, das es doppelte oder mehr Einträge gibt.
---
Viele Grüße
Mario
X

Textanker über Script anlegen

Uwe Laubender
Beiträge gesamt: 4853

13. Sep 2014, 12:04
Beitrag # 2 von 2
Beitrag ID: #532016
Bewertung:
(1562 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Mario!

Nur so ein paar Ideen in die Runde:

hyperlinkTextDestination-Einträge werden über einen Special Character im Text repräsentiert. Kodierung: <FEFF> in der Textsuche. Die GREP-Suche taugt dafür nicht. Vorsicht: Ein Vorkommen von <FEFF> heißt nicht unbedingt, dass es sich um eine hyperlinkTextDestination handelt.

Alle destinationText-Werte aller hyperlinkTextDestinations werden über insertionPoints definiert.

Code
app.documents[0].hyperlinkTextDestinations.everyItem().destinationText 


Dies ergibt ein Array von insertionPoints. Diese könnten abgefragt werden, ob deren Formatierung der des gewünschten Absatzformats entspricht.

An einen konkreten Absatz kommst Du so heran:

Code
app.documents[0].hyperlinkTextDestinations[0].destinationText.paragraphs[0] 


Fragen, die sich mir stellen:

Was geschieht, wenn nach einem Skriptdurchgang Text umformatiert wurde?

Was, wenn hyperlinkTextDestinations in Verwendung sind? Können, sollen diese zusammen mit ihren Hyperlinks gelöscht werden, falls das falsche Absatzformat zugewiesen wurde?

Ach ja, Du wirst mit der Erzeugung der hyperlinkTextDestinations auf den Bauch fallen, wenn verschiedene Absätze mit gleichem Inhalt vorkommen, denn Du benamst ja die hyperlinkTextDestinations nach dem Inhalt des gefundenen Absatzes. Die Namen von hyperlinkTextDestinations müssen einmalig sein. Das müsstest Du sicherstellen.

Nur so mal zum Nachdenken…
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#531825]

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
26.01.2021 - 27.01.2021

Digicomp Academy AG, Zürich oder virtuell
Dienstag, 26. Jan. 2021, 08.30 Uhr - Mittwoch, 27. Jan. 2021, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

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

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM2

Veranstaltungen
27.01.2021 - 28.01.2021

Digicomp Academy AG, Bern oder Basel
Mittwoch, 27. Jan. 2021, 08.30 Uhr - Donnerstag, 28. Jan. 2021, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

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

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AFT

Neuste Foreneinträge


Gleich Große Icons erstellen

Absätze vor/nach AF suchen

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

Laser Drucker druckt schwarze Flecken Links und Rechts von Blatt

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Langsamer MacMini

Illustrator Skript Übersatztext - Hilfe benötigt

ID CC 2019 und 2020: Crash beim Startvorgang - 2021

Inhalt Textrahmen verbinden

iPhone Farbprofil
medienjobs