[GastForen Programme Print/Bildbearbeitung Adobe InDesign JavaScript, Grep, underlineColor bearbeiten

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

JavaScript, Grep, underlineColor bearbeiten

andreas131
Beiträge gesamt: 22

28. Okt 2008, 12:21
Beitrag # 1 von 11
Bewertung:
(4990 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

bin dabei mir ein JavaScript für Suche/Ersetze in InDesign CS3 zu schreiben. Damit ich die vom Script geänderten Stellen in meinem Testdokument angezeigt bekomme, möchte ich diese gerne mit einer Hinterlegung hervorheben.

Leider kann ich bei "underlineColor" nur "Black" oder "Paper" angeben, nicht aber eine bereits definiertes Farbfeld, z.B. "rot".

Was muss ich für "underlineColor" angeben, damit mein vorhandenes Farbfeld "rot" angewendet wird?

Code
//Change 
with(app.changeGrepPreferences){
underline=true;
underlineWeight=12;
underlineOffset=-4;
underlineColor="Black"; //Swatch??
underlineTint=20;
}

Vielen Danke für eure Hilfe!

Grüße
Andreas


Windows XP, InDesign CS3

(Dieser Beitrag wurde von andreas131 am 28. Okt 2008, 12:23 geändert)
X

JavaScript, Grep, underlineColor bearbeiten

Marc Sidon
Beiträge gesamt: 262

28. Okt 2008, 14:28
Beitrag # 2 von 11
Beitrag ID: #372218
Bewertung:
(4975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

Du musst den Swatch mitgeben, nicht den Names des Swatch!

Also eher so:

Code
//Change  
with(app.changeGrepPreferences){
underline=true;
underlineWeight=12;
underlineOffset=-4;
underlineColor=myDocument.swatches.itemByName ("rot");
underlineTint=20;
}


Gruß,
Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#372181]

JavaScript, Grep, underlineColor bearbeiten

Martin Fischer
  
Beiträge gesamt: 12623

28. Okt 2008, 14:35
Beitrag # 3 von 11
Beitrag ID: #372222
Bewertung:
(4970 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

> Du musst den Swatch mitgeben, nicht den Names des Swatch!

Aber nicht 'myDocument.swatches.itemByName ("rot")'. ;-)

Hier gibt es einen Bug in InDesign CS3.
Beim Suchen/Ersetzen lässt sich das Farbfeld eines Dokuments nicht addressieren.

Workaround:
Das Farbfeld, das im Dokument bereits vorhanden ist, auch auf Programmebene erzeugen, dann in der Suche-Ersetze-Funktion verwenden und anschließend wieder löschen (auf Applikationsebene, nicht auf Dokumentebene).

Viele Grüße
Martin




als Antwort auf: [#372218]

JavaScript, Grep, underlineColor bearbeiten

Marc Sidon
Beiträge gesamt: 262

28. Okt 2008, 14:59
Beitrag # 4 von 11
Beitrag ID: #372233
Bewertung:
(4963 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Na gut,
wenn da ein Bug ist, dann geht es so nicht... :)
Sonst ginge es aber!

Dann halt so wie Du gesagt hast:

Code
var myDocument = app.activeDocument; 
var mySwatch = myDocument.swatches.itemByName ("rot");
var myAppSwatch = app.swatches.itemByName("rot");
var deleteAgain1 = false;

if (myAppSwatch == null) {
myAppSwatch = app.colors.add(mySwatch.properties);
deleteAgain1 = true;
}

with(app.changeGrepPreferences){
underline=true;
underlineWeight=12;
underlineOffset=-4;
underlineColor=myAppSwatch;
underlineTint=20;
}


... und dann irgendwo am Ende wieder löschen...

Code
if (deleteAgain1)  
myAppSwatch.remove();


Marc
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#372222]
(Dieser Beitrag wurde von Marc Sidon am 28. Okt 2008, 14:59 geändert)

JavaScript, Grep, underlineColor bearbeiten

Martin Fischer
  
Beiträge gesamt: 12623

28. Okt 2008, 15:52
Beitrag # 5 von 11
Beitrag ID: #372245
Bewertung:
(4953 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

Dein Code zum workaround gefällt mir besser als alle meine eigenen Lösungen.
Deswegen reiß' ich mir den jetzt klammheimlich unter den Nagel und tu' so, als sei ich selber schlau. ;-)

Viele Grüße
Martin




als Antwort auf: [#372233]

JavaScript, Grep, underlineColor bearbeiten

andreas131
Beiträge gesamt: 22

28. Okt 2008, 17:12
Beitrag # 6 von 11
Beitrag ID: #372263
Bewertung:
(4929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
hallo Marc,

Wow ... das ist genial! Vielen Dank für die schnelle und ausführliche Antwort.

Da habe ich ewig rumprobiert mit myDoc.swatches ... OK ein Bug ... das beruhigt mich wieder etwas :)).

Dann versuche ich mich in der Umsetzung.

Danke + Grüße
Andreas


als Antwort auf: [#372233]

JavaScript, Grep, underlineColor bearbeiten

andreas131
Beiträge gesamt: 22

28. Okt 2008, 19:01
Beitrag # 7 von 11
Beitrag ID: #372297
Bewertung:
(4910 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Danke für die Hilfe. Funktioniert prima!

Code
//js InDesign 5.0  
//Findet Text (Suche Text) und unterstreicht diesen

var myFindText = "Suche Text"; // Text or RegExp

var myDocument = app.activeDocument;

//Create a color.
try{
myDocument.colors.item("rot").name;
}
catch (myError){
myDocument.colors.add({name:"rot", model:ColorModel.process, colorValue:[0, 100, 100, 0]});
}

var mySwatch = myDocument.swatches.itemByName ("rot");
var myAppSwatch = app.swatches.itemByName("rot");

var deleteAgain1 = false;

if (myAppSwatch == null) {
myAppSwatch = app.colors.add(mySwatch.properties);
deleteAgain1 = true;
}

resetSearchOptions ()

//Search
app.findGrepPreferences.findWhat = myFindText;

with(app.changeGrepPreferences){
underline=true;
underlineWeight=12;
underlineOffset=-4;
underlineColor=myAppSwatch;
underlineTint=20;
}

//Do change
app.activeDocument.changeGrep();

//resetSearchOptions ()
resetSearchOptions ()

//if (deleteAgain1)
if (deleteAgain1){
myAppSwatch.remove();
myDocument.swatches.item(-1).remove(mySwatch); //Farbfeld auch aus der Farbpalette löschen
}

function resetSearchOptions (){
//find/change text preferences
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
//find/change grep preferences
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
}


Die Farbe die in die INDD-Einstellung übergeben wurde erscheint auch in der Farbpalette. Um die noch zu löschen habe ich eine Zeile ergänzt:

Code
if (deleteAgain1){ 
myAppSwatch.remove();
myDocument.swatches.item(-1).remove(mySwatch); //Farbfeld auch aus der Farbpalette löschen
}


Hoffe, das damit die richtige Farbe gelöscht wird :)

Grüße
Andreas


als Antwort auf: [#372233]

JavaScript, Grep, underlineColor bearbeiten

Marc Sidon
Beiträge gesamt: 262

28. Okt 2008, 20:06
Beitrag # 8 von 11
Beitrag ID: #372304
Bewertung:
(4899 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich verstehe nicht ganz, warum Du die Farbe zuerst im Dokument anlegst, um sie dann (wegen dem Bug) in der Anwendung anzulegen um sie dann anschliessend wieder zu löschen..... Hmmm....

Ich dachte, die Farbe existiert bereits im Dokument.

Du kannst die Farbe auch einfach in der Application erstellen um sie dann zu nutzen! Sie wird dann automatisch auch im Dokument angelegt, wenn Du die gefundenen Wörter hinterlegst.

Aber warum löschst Du dann am Schluss die Farbe aus dem Dokument?

Wenn Du sie aus dem Dokument auch löschst, dann sind die Wörter doch auch nicht mehr in der Farbe hinterlegt !?!?!?
*wunder*

Gruß,
Marc

P.S.:
@Martin: mich wundert zwar, dass Dir ausnahmsweise mein Code gefällt, aber Du kannst ihn gerne übernehmen...
*grins*
------------------------------------------

modernmediasidon
Erstellung von InDesign Scripts


als Antwort auf: [#372297]

JavaScript, Grep, underlineColor bearbeiten

andreas131
Beiträge gesamt: 22

29. Okt 2008, 11:47
Beitrag # 9 von 11
Beitrag ID: #372358
Bewertung:
(4846 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

bei mir wurde in den Farbfelder jeweils ein weiteres Farbfeld "rot1" oder "rot2" zugefügt.

Vielleicht habe ich irgendwas vermurxst.

Vielleicht wird das Farbfeld in den Farbfeldern angelegt, wenn es in die Voreinstellungen von Indesign übergeben wird. Oder die Farbe wird hinzugefügt weil beim Testen das Script gelegentlich nicht vollständig ausgeführt wurde.

Ich schau mir das später genauer an und gebe Bescheid. Alleine die Farbe zuweisen zu können ist super ...

Grüße
Andreas


als Antwort auf: [#372304]

JavaScript, Grep, underlineColor bearbeiten

Quarz
Beiträge gesamt: 3488

29. Okt 2008, 15:20
Beitrag # 10 von 11
Beitrag ID: #372384
Bewertung:
(4829 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

von Hans Häsler gibt es ein Script
›Mehrfachfarbfelder entfernen‹.

http://www.fachhefte.ch/java_scripts/windows_d/

Du bist also nicht der Einzige, dem das passiert.

Gruß
Quarz

------------------------
WinXP | CS3


als Antwort auf: [#372358]

JavaScript, Grep, underlineColor bearbeiten

andreas131
Beiträge gesamt: 22

12. Nov 2008, 12:12
Beitrag # 11 von 11
Beitrag ID: #374266
Bewertung:
(4670 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marc,

entschuldige, dass ich erst jetzt antworte.

Du hast vollkommen recht. Die Zeile

Code
myDocument.swatches.item(-1).remove(mySwatch); //Farbfeld auch aus der Farbpalette löschen 


muss aus dem Script gelöscht werden.

Da ist mir beim Test ein Fehler unterlaufen.

Dein Skript läuft prima.

Grüße
Andreas


als Antwort auf: [#372304]
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
29.09.2022

IDUGS#85 Press2id

Zoom Meeting
Donnerstag, 29. Sept. 2022, 19.00 - 21.00 Uhr

Vortrag

Kennst du WordPress? Vielleicht. Verwendest du WordPress? Ja, klar! WordPress ist das am weitesten verbreitete System für die Erstellung von Webseiten. Um Webseitenbau soll es auf dieser IDUG aber nicht gehen. Gregor zeigt press2id (github.com/grefel/press2id). Seine Open-Source-Lösung für die Verbindung von Web und InDesign. Richtig gelesen: InDesign liest mithilfe von press2id die Inhalte der WordPress-Webseiten und generiert daraus Zeitschriften, Kataloge, Programmhefte oder Bierdeckel (das zeigen wir natürlich auch!). So wird die „Content First“ Theorie zu einer konkret anwendbaren Praxis, ohne gleich die ganz großen Räder zu drehen. Versprochen: Jeder kann nach der IDUG innerhalb kürzester Zeit Daten von WordPress nach InDesign importieren. Aber Achtung: Prinzipiell kann press2id aus jeder Website, oder besser Contentmanagementsystem (CMS) Daten auslesen und nach InDesign importieren! Spannend, oder? Danach geht es in die Praxis: Stefan hat die Webseite des Parktheater Iserlohn (parktheater-iserlohn.de) gestaltet. Die gedruckten Spielpläne (parktheater-iserlohn.de/interaktive-spielplaene) werden mit press2id realisiert. Wir schauen in den Maschinenraum und zeigen, wie die Lösung des Projekts realisiert wurde.

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs85.eventbrite.de/

Von Wordpress nach InDesign
Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=310

Enfocus World Tour 2022