ich bastle gerade an einem Script, das mir Rahmenkonturen ändern soll. (Hintergrund: Bei der Konvertierung von Quark-Stehsatz werden die ursprünglich nach innen ausgerichteten Konturen mittig erstellt. Damit's wieder passt verschiebt und verkleinert InDesign den Rahmen.) Das Script soll folgendes tun:
1. Die Konturenausrichtung von "mittig" auf "nach innen" umstellen
2.1. Den Ursprung des Rahmens auf die linke obere Ecke setzen 2.2. Den Rahmen um die Hälfte der Konturenstärke nach links und nach oben versetzen 2.3. Die Breite und die Höhe um die Konturenstärke erhöhen
Von Martin hier aus dem Forum habe ich schon folgendes gefunden:
/Kontur nach innen ausrichten //1. Textrahmen app.documents[0].textFrames.everyItem().strokeAlignment = StrokeAlignment.insideAlignment; //2. Rechtecke app.documents[0].rectangles.everyItem().strokeAlignment = StrokeAlignment.insideAlignment; //3. Ovale app.documents[0].ovals.everyItem().strokeAlignment = StrokeAlignment.insideAlignment;
Teil 1 ist also schon erledigt. Kann mir jemand bei Teil 2 helfen?
danke fuer den Tipp. Diese Idee hatte ich auch - allerdings hat diese Option keine Auswirkungen auf den Rahmen, sondern nur darauf, welche Koordinaten in der Steuerungspalette angezeigt werden. Hat ein Rahmen die Konturenstärke 1 mm, mittig ausgerichtet, werden mit der eingeschalteten Option die Koordinaten 0/0 angezeigt, bei ausgeschalteter Option 0,5/0,5. Wenn die Ausrichtung dann nach innen umgestellt wird, bleibt der Rahmen stehen und es werden in beiden Faellen 0,5/0,5 angezeigt (ist ja auch korrekt).
Hat sich jemand schon mal scriptmaessig damit befasst? Waere toll :-)
vielen Dank, das wird mir weiterhelfen. Ich habe Dein Script ein wenig modifiziert, x-y-Koordinaten minus halber Linienstaerke und Breite/Hoehe plus ganze Linienstaerke. Jetzt brauche ich nur noch eins: Einen Tipp, wie ich das Script aendern muss, damit alle Objekte (nicht nur die markierten) verschoben/vergroessert werden.
mit den Änderungen, die Du im Skript gemacht hast, wird beim mir ein Objekt (mit Konur mittig) nach Ausführung des Skripts (danach Kontur innen) um eine Linienbreite größer als das Ausgangsobjekt. Die x,y-Position bleibt gleich. Ist das so beabsichtigt?
Alle Objekte auf allen Seiten ändern (Textframe, Rectangle, Oval) - Zeile 22 ändern in:
zaphodbeeblebroxx
Matthias
(Dieser Beitrag wurde von zaphodbeeblebroxx am 7. Jun 2006, 16:49 geändert)
ha, welch guter Hinweis :-) Du hast Recht. Auch die Koordinate rechts unten darf nur um die halbe Linienstaerke versetzt werden. Dankeschoen.
Dass der Rahmen an der gleichen Stelle gleich gross bleiben soll, ist beabsichtigt. Optisch soll sich ja nichts aendern, nur die Kontur soll anstatt mittig, nach innen ausgerichtet werden.
Vielen Dank fuer Deine Unterstuetzung, das ist wirklich toll.
Melanie
(Dieser Beitrag wurde von mel_123 am 7. Jun 2006, 17:05 geändert)
jetzt ist mir noch was eingefallen. Wenn ich das Script mehrfach anwende, wird der Rahmen natuerlich groesser und groesser. Kann man dafuer sorgen, dass das Script nur auf die Rahmen angewendet wird, deren Konturen mittig waren? Meine Idee:
Step 1: Alle Rahmen mit mittiger Kontur vom Script auswaehlen lassen Step 2: Nur diese Rahmen verschieben Step 3: Kontur von diesen (oder allen) Elementen nach innen setzen
anbei nochmal das gesamte Skript. Die Breite/Höhe der Objekt (Kontur innen) ist nach Ausführung des Skripts wie die Breite/Höhe des Ausgangsobjekts (Kontur mittig). Position x,y bleibt gleich. Mit einer zusätzlichen Abfrage wird geprüft, ob die Kontur des Objekts mittig ist; nur dann wird es "bearbeitet"
gestern Abend habe ich festgestellt, dass Du auf 3 Foren Deine Problemstellung gepostet hattest.
Du hattest auch nach weiteren Möglichkeiten gefragt, um die "Problemchen", die nach dem Import einer Quark-Datei in InDesign auftauchen können, zu beseitigen (Farbe Schwarz/Black und Weiß/Papier, Hoch-/Tiefstellen, Konturen mittig nach/innen).
Hast Du Dir aus den Antworten ein Gesamtscript gebastelt, um diese Punkte auf einmal zu erledigen?
Vielleicht könntest Deine Ergebnisse auch auf diesem Forum posten, denn ich denke, dass würde einige User interessieren (mich auch!)
bin gerade dabei die anderen Scripte zusortieren und zu testen. Es sieht gut aus. Unter anderem mit Deiner ;-) Hilfe habe ich die entsprechenden Probleme geloest. Ich stelle sie heute abend/morgen online.
fuer den leidgeprueften Quark-Konvertierer gibt's dank der Leute in den Foren ein paar kleine Helferlein:
1. mittige Konturen nach innen stellen: Hans vom Page-online-Forum hat noch einen entscheidenden Hinweis gegeben: "Rahmen ohne Kontur "wachsen" um 1 pt in beiden Richtungen. Schuld ist die tumbe (?) Adobe-Vorgabe, dass solche Rahmen eine (unsichtbare) Stärke von 1 pt haben." Deshalb hat er noch einen Check eingebaut, dass Rahmen ohne Kontur von der Modifikation nicht betroffen werden. Wer den ganzen Thread lesen moechte: http://www.page-online.de/page/forum/viewthread/2990/
Hier sein Script:
2. Im amerikanischen Forum habe ich ein Script von Dave Saunders gefunden, das das laestige "nicht-drucken", das bei der Konvertierung mancher Bilder auftaucht, ausschaltet:
3. Ein homemade-Script, das die von Quark importierten Farben Schwarz (ueberdruckt nicht) und Weiß in die InDesign-Standard-Farben [Schwarz] (ueberdruckt) und Papier umwandelt. Es funktioniert zwar, aber ist noch nicht wirklich elegant. Vielleicht hat jemand noch eine bessere Loesung?
Vielen Dank erstmal allen, die mit ihrer Hilfe das Leben leichter machen und viel Spass
ich habe das Script "InnenAlinieren.js" getestet und möchte nur sagen, dass es unter OSX und InDesign CS1 und CS2 hervorragend läuft. Trotzdem gibt es manchmal eine - überflüssige - Fehlermeldung, die ich gerne umgehen würde:
Das Script fragt in der Reihenfolge Textrahmen, Rechtecke und Ovale auf "Linie zur Mitte" ab und stoppt mit einer Fehlermeldung, wenn eine der genannten Rahmenformen (meistens oval) nicht im Dokument vorhanden ist. Gibt es eine Möglichkeit diese Fehlermeldung in Java zu unterbinden? Unter Visual Basic kann ich z. B. eine Sprungmarke setzen mit "On Error Go To ..." und damit ein Weiterlaufen des Scripts erzwingen ...
Ich habe das Skript bei mir ebenfalls getestet, aber diese Fehlermeldung konnte ich nicht nachstellen (Habe ein Dokument mit Textrahmen, Rechteck und Ovalen erstellt, das Skript ausgeführt – keine Fehlermeldung. Neues Dokument ohne Ovale – das Skript ausgeführt – keine Fehlermeldung ...).
danke für die beiden Hinweise. Für die CS1 kann ich das erst morgen testen, aber ich gehe bei Dir mal davon aus, dass das so richtig ist :-)
Zitat:
In JS lautet das Äquivalent: --- Code: --- try { // das was ausgeführt werden soll } catch (error) { // das, was passieren soll, wenn ein Fehler erscheint. // z.B. Fehlermeldung: alert(error)
Martin, wird mit der alert-Fehlermeldung der Codeablauf unterbrochen oder läuft er danach weiter? Wenn es weiter geht wäre es ok, ansonsten hätte ich ja wieder das alte Problem ...
Bei Visual Basic sage ich z. B. "goto Errorhandler" und schreibe das Wort Errorhandler einfach vor die nächste Abfragezeile. Dann springt der Code auf diese Sprungmarke und läuft einfach weiter. Funktioniert das bei "Fehlermeldung: alert(error)" auch so?