[GastForen Programme Print/Bildbearbeitung Adobe InDesign JSFindschange vereinfachen

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

JSFindschange vereinfachen

meistroM
Beiträge gesamt: 13

8. Aug 2007, 13:23
Beitrag # 1 von 12
Bewertung:
(50892 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

wie kann man die Routinen (TextCleanup) vereinfachen, hier ein Beispiel. Derzeit wird jede Zahl einzeln abgefragt. Alles in einer Zeile abzufragen wäre natürlich super...

Code
{findText:"0m"}	{changeText:"0^<m"}	once	Find all m and replace with 1/8m 
{findText:"1m"} {changeText:"1^<m"} once Find all m and replace with 1/8m
{findText:"2m"} {changeText:"2^<m"} once Find all m and replace with 1/8m
{findText:"3m"} {changeText:"3^<m"} once Find all m and replace with 1/8m
{findText:"4m"} {changeText:"4^<m"} once Find all m and replace with 1/8m
{findText:"5m"} {changeText:"5^<m"} once Find all m and replace with 1/8m
{findText:"6m"} {changeText:"6^<m"} once Find all m and replace with 1/8m
{findText:"7m"} {changeText:"7^<m"} once Find all m and replace with 1/8m
{findText:"8m"} {changeText:"8^<m"} once Find all m and replace with 1/8m
{findText:"9m"} {changeText:"9^<m"} once Find all m and replace with 1/8m


Danke für eure Hilfe
Gruß
MM
X

JSFindschange vereinfachen

Martin Fischer
  
Beiträge gesamt: 12783

8. Aug 2007, 13:51
Beitrag # 2 von 12
Beitrag ID: #306992
Bewertung:
(50824 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Manfred,

mit "alles-in-einer-Zeile" ist in CS2 noch nicht drin (in CS3 ginge das über GREP).

Aber Du könntest statt dem TextCleanup.jsx das Skript ReplaceInStringProWithConfig.jsx von Matthias verwenden.

Gesuchter String "^9m"
ersetze: "m"
durch: "^<m"

Zur Funktion:
Zunächst werden alle Kombinationen zwischen einer beliebigen Zahl und "m" mit einer temporären Farbe markiert. Anschließend werden alle markierten "m"s durch "^>m" ersetzt.


als Antwort auf: [#306982]

JSFindschange vereinfachen

zaphodbeeblebroxx
Beiträge gesamt: 408

8. Aug 2007, 23:41
Beitrag # 3 von 12
Beitrag ID: #307104
Bewertung:
(50783 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo MM, Hallo Martin,

wenn Du nur schwarzen Text durchsuchst kannst Du folgendes machen:

Im InDesign-Dokument eine temporäre Farbe anlegen z.B. die Farbe "Gefunden" in RGB-Rot.

In Deiner Suchen/Ersetzen-Liste suchen nach "^9m" (beliebige Zahl + m) ersetzen mit der temporären Farbe.
Nach "m" in der temporären Farbe suchen und durch "^<m" in der Farbe schwarz ersetzen.

Somit wären es noch zwei Zeilen. Habe momentan keine Scripting-Referenz zur Hand, aber es müsste in etwa wie folgt lauten:

Code
{findText:"^9m"} {fillColor:"Gefunden"} once	 
{findText:"m", fillColor:"Gefunden"} {changeText:"^<m", fillColor:"Black"} once



als Antwort auf: [#306992]

JSFindschange vereinfachen

Marco Morgenthaler
Beiträge gesamt: 2474

9. Aug 2007, 10:48
Beitrag # 4 von 12
Beitrag ID: #307153
Bewertung:
(50766 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Matthias

Ohne es jetzt getestet zu haben: Bleiben mit deiner zweizeiligen Liste nicht die Zahlen in RGB-Rot? Oder wo werden die wieder umgestellt auf Farbe Schwarz?

Gruss Marco


als Antwort auf: [#307104]

JSFindschange vereinfachen

zaphodbeeblebroxx
Beiträge gesamt: 408

9. Aug 2007, 12:25
Beitrag # 5 von 12
Beitrag ID: #307170
Bewertung:
(50750 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 
Hallo Marco,

Du hast natürlich recht. Ich habe vergessen zu erwähnen, dass ich in so einem Fall am Ende die temporäre Farbe wieder manuell lösche und im darauffolgenden Menü [schwarz] als "Ersetzungsfarbe" auswähle.

Alternativ benötigt man in der Suchen/Ersetzen-Liste noch eine weitere Zeile, in der alle Zahlen in der temporären Farbe wieder durch schwarz ersetzt werden.

Man benötigt also statt der 10 Zeilen (für alle Zahlen von 0 bis 9) 3 Zeilen, um das Problem zu lösen. Immerhin 7 Zeilen für das Textcleanup-Skript eingespart.


als Antwort auf: [#307153]

JSFindschange vereinfachen

Quarz
Beiträge gesamt: 3555

9. Aug 2007, 17:27
Beitrag # 6 von 12
Beitrag ID: #307264
Bewertung:
(50719 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Matthias,

JSFindchange mit CS3

Ich hatte vor einiger Zeit Schwierigkeiten
mit einem Script "fillColor" zuzuweisen.
Ich habe dann statt einer Farbe ein
ZF "dummy" zugewiesen.

Weißt Du denn vielleicht, wie der Code
für "Farbe" in CS3 lauten muss?

Gruß
Quarz


als Antwort auf: [#307170]

JSFindschange vereinfachen

Martin Fischer
  
Beiträge gesamt: 12783

9. Aug 2007, 17:37
Beitrag # 7 von 12
Beitrag ID: #307265
Bewertung:
(50715 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Quarz,

fillColor ist schon richtig.
Aber Du bist einem Bug auf die Schliche gekommen.

Die Farbe, nach der Du im Dokument suchst, muß - für das Script - auch auf Programmebene vorhanden sein (also da, wo kein Dokument geöffnet ist).

Wenn sie auch dort vorhanden ist, kannst Du sie im Dokument suchen - wahrscheinlich auch mit JSFindChange.

Diesem Bug sind wir vor ca. 2 Wochen im InDesign Scripting-Forum auf die Schliche gekommen (Dave Saunders hat den workaround gefunden).


als Antwort auf: [#307264]

JSFindschange vereinfachen

Quarz
Beiträge gesamt: 3555

9. Aug 2007, 18:33
Beitrag # 8 von 12
Beitrag ID: #307272
Bewertung:
(50702 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ja, es funktioniert, so wie Du es beschrieben hast.
Jetzt kann ich meine alten Textdateien wieder benutzen.

Ich danke Dir.

Gruß
Quarz


als Antwort auf: [#307265]

JSFindschange vereinfachen

Martin Fischer
  
Beiträge gesamt: 12783

9. Aug 2007, 20:40
Beitrag # 9 von 12
Beitrag ID: #307281
Bewertung:
(50689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

fein, daß es so geht.

((Christoph, bitte mal diskret wegschauen))
Das folgende Skript addiert den Überfluß der Farben im Dokument (gebenüber der Applikation) zu den Farben der Applikation (es erweitert also die Farbfelderpalette um die Farben, die nur im Dokument, nicht aber in der Applikation definiert sind).

Code
// addDocSwatchesSurplus2App.jsx 

var myCols = app.activeDocument.swatches;
var newCols = new Array;
for ( i = 0; i< myCols.length; i++ )
try
{
eval ( 'app.colors.add' + eval( 'myCols[i].properties.toSource()' ) );
app.swatches.item(myCols[i].name).label = 'temp';
newCols.push( myCols[i].name );
}
catch( e ){}

if ( newCols.length > 0 )
alert( 'Hinzugefügte Farben (Programmebene):\r' + newCols.join( '\r' ) );

Das Skript oben markiert die der Applikation neu hinzugefügten Farben.
Auf diese Weise ist es möglich, diese temporär hinzugefügten (und markierten) Farben auch wieder von der Applikation zu entfernen:
Code
// removeTempSwatches.jsx 

var myCols = app.swatches;
var delCols = new Array;

for ( i = myCols.length -1; i >= 0; i-- )
{
if (myCols[i].label == 'temp')
{
delCols.push(myCols[i].name);
myCols[i].remove();
}
}

if ( delCols.length > 0 )
alert( 'Gelöschte temporäre Farben (Programmebene):\r' + delCols.join( '\r' ) );



als Antwort auf: [#307272]
(Dieser Beitrag wurde von Martin Fischer am 9. Aug 2007, 20:46 geändert)

JSFindschange vereinfachen

Quarz
Beiträge gesamt: 3555

10. Aug 2007, 10:47
Beitrag # 10 von 12
Beitrag ID: #307349
Bewertung:
(50664 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

gestern beim Testen hatte ich nach dem Ausführen
von TextCleanup haufenweise neue, duplizierte und
durchnummerierte Farben in der Farbpalette.

Heute habe ich Deine beiden neuen Scripte testen.
Aber nach dem Durchlauf von TextCleanup war in
der Farbpalette nur eine neue Farbe "black"
aufgetaucht.

Diese wurde auch von Deinem ersten Script angezeigt
aber mit dem zweiten Script nicht gelöscht.

Gruß
Quarz


als Antwort auf: [#307281]

JSFindschange vereinfachen

Martin Fischer
  
Beiträge gesamt: 12783

10. Aug 2007, 10:55
Beitrag # 11 von 12
Beitrag ID: #307352
Bewertung:
(50661 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Quarz,

Antwort auf: gestern beim Testen hatte ich nach dem Ausführen
von TextCleanup haufenweise neue, duplizierte und
durchnummerierte Farben in der Farbpalette.

Der Teil vor der Nummer würde mich interessieren.
Ist es der Name Deiner temporäre Farbe?

Die duplizierten Farben waren im Dokument (also nicht auf Programmebene) - oder?

Antwort auf: Diese wurde auch von Deinem ersten Script angezeigt
aber mit dem zweiten Script nicht gelöscht.


Das zweite Skript löscht nur solche Farben, die über das erste Skript dem Programm (nicht dem Dokument) neu zugewiesen wurden und die dabei ein bestimmtes Etikett ('temp') verpaßt bekommen haben.

Wenn "black" über TextCleanup im Dokument angelegt worden ist, dann gehört das Aufräumen dieser Farbe aus zweierlei Gründen nicht mehr zum Job des zweiten Skripts:
1. "black" ist eine Farbe des Dokuments;
2. "black" ist nicht durch das erste Skript angelegt worden und trägt deswegen auch nicht das genannte Label.


als Antwort auf: [#307349]

JSFindschange vereinfachen

Quarz
Beiträge gesamt: 3555

10. Aug 2007, 12:22
Beitrag # 12 von 12
Beitrag ID: #307385
Bewertung:
(50645 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

auch bei einer Wiederholung kommen nicht mehr die vielen Farben.
Ich kann Dir also leider nichts dazu sagen, denn gestern habe ich
die Datei nicht abgespeichert.

Aber, wenn das "Programm" die benötigten Farben hat, brauchen
sie im "Dokument" nicht aufgeführt zu werden.
Sie werden dann automatisch mit dem Script erstellt.

Gruß
Quarz


als Antwort auf: [#307352]
X