[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Text- oder Grafikrahmen nach Position und Größe suchen und ändern

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

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

MarkusD
Beiträge gesamt: 34

23. Jan 2021, 16:50
Beitrag # 1 von 10
Bewertung:
(138129 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Scripter,

trotz aller guten Vorsätze kann ich immer noch nicht scripten. Deshalb hier mein Problem: ich habe hier immer wieder das Problem, dass ich Rahmen (Text- oder Grafik) nach ihrer Position auf der Seite suchen muss und diesen eine neue Breite und Höhe sowie ein Objektformat zuweisen muss.

Über die die Objekt Suche kann man dies leider auch nicht machen.

Das bei ID mitgelieferte Script AdjustPageItems.jsx kann zwar nach gerade und ungerade Seiten unterscheiden, verschiebt aber immer alle Rahmen. Hans Haesler Script TextRahmenVerschieben_601d.js kann einzelne Textrahmen nach ihrer Position suchen und verschieben.

Weiß jemand, ob es ein Script gibt das das kann?
X

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

WernerPerplies
Beiträge gesamt: 2760

23. Jan 2021, 17:22
Beitrag # 2 von 10
Beitrag ID: #578419
Bewertung:
(138115 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

falls Du nichts findest, machbar wäre es auf jeden Fall, ist aber nicht ganz so einfach, wie es scheint.

Man darf dabei nicht nach absoluten Werten suchen, sondern muss eine zulässige Toleranz berücksichtigen, denn ein eingegebener Wert von z. B. 1,10 wird intern mit mehr Stellen abgelegt, also muss man vor einem Vergleich auf jeden Fall schon mal runden.

Ein weiteres Problem besteht darin, dass Anwender nicht immer exakt positionieren, deshalb gilt auch hier oft eine Toleranzzone.

Ich habe vor längerer Zeit mal ein Skript geschrieben, das vermeintlich optisch gleiche Positionen auf verschiedenen Ebenen suchen und angleichen sollte, es gab in einem Katalog extrem viele Treffer, die angeglichen werden mussten!


als Antwort auf: [#578418]

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

Martin Fischer
  
Beiträge gesamt: 12778

23. Jan 2021, 20:50
Beitrag # 3 von 10
Beitrag ID: #578426
Bewertung:
(138089 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

was ist der Maßstab für die Bestimmung der Positionen?
Etwa die Lage des Mittelpunktes in einem bestimmten Raster?
Oder einer der Eckpunkte?
Die Dimension/Ausdehnung vertikal/horizontal spielt keine Rolle?

Oder geht es erst mal nur um die Bestimmung der Position verschiedener Objekte relativ zueinander (das linkeste, das oberste, das mittlere)?

Kannst Du mal an einem Beispiel zeigen, wie ein Ist-Zustand sein könnte, der in einen bestimmten Ziel-Zustand überführt werden sollte.

Mir fehlt noch etwas Fleisch in Deinen gelieferten Angaben. ;-)


als Antwort auf: [#578418]

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

MarkusD
Beiträge gesamt: 34

24. Jan 2021, 14:21
Beitrag # 4 von 10
Beitrag ID: #578431
Bewertung:
(137981 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner, hallo Martin,

die Rundungsproblematik ist mir (leider) schon bekannt.

Hier ein Beispiel:
Dokument mit Doppelseiten. Die Dimension spielt keine Rolle, da in der Regel nur ein Rahmen an einer bestimmten Position liegt. Die Position eines Grafikrahmens soll anhand der linken oberen Ecke gefunden werden. Z.B. ein Rahmen beginnt bei X = 30 mm, Y = 20 mm und soll dann eine bestimmte Höhe und Breite und ein Objektformat zugewiesen bekommen. Über das Objektformat kann ich ja die Position definieren, aber nicht Höhe und Breite.
Ich weiß nicht, ob man nach linker und rechter Seite unterschieden muss oder ob (bei Lineal für Druckbogen) die Position auf dem Druckbogen gefunden wird.
Ich hänge 1 Screenshot der Problematik an.

Ich hoffe mein Problem ist jetzt klarer formuliert.


als Antwort auf: [#578426]
Anhang:
Rahmen anpassen.jpg (268 KB)

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

Martin Fischer
  
Beiträge gesamt: 12778

25. Jan 2021, 08:00
Beitrag # 5 von 10
Beitrag ID: #578435
Bewertung:
(137859 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

jetzt ist es klar.
Du suchst nicht Objekte mit einer "ungefähren" Position, sondern mit ziemlich genauen Positionsangaben des linken oberen Eckpunkts (geringfügige Abweichungen berücksichtig).

Ja, da ließe sich schon was machen.
Versuche Dir gegen Abend eine ausbaufähige Skizze zukommen zu lassen.


als Antwort auf: [#578431]

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

faxinger666
Beiträge gesamt: 167

26. Jan 2021, 21:52
Beitrag # 6 von 10
Beitrag ID: #578462
Bewertung:
(137688 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

ich bin zwar noch nicht so erfahren wie die anderen Skripter, aber ich glaube, dass ich auch ein bißchen Hilfe anbieten kann. :-)

Zuerst noch ein paar Fragen dazu:
Das Dokument welches du durchsuchst: Hat das immer nur eine Doppelseite oder mehrere?

Kann es vorkommen dass auf der Position wo der zu verschiebende Rahmen aufgespürt werden soll ein zweiter Rahmen liegt, der eventuell nicht verschoben werden soll? Oder ist anzunehmen dass es an dieser Position immer nur diesen einen Rahmen gibt? Wie groß soll die Toleranz der Position des zu findenden Rahmens sein?

Wie soll die Zielbreite/Höhe und Position des gefundenen Rahmens sein? Ist diese immer die selbe?

Wenn ich das richtig verstanden habe ist die neue Postion schon im Objektformat enthalten? Das heißt eigentlich willst du nur den Rahmen auf der Position durch das Skript finden, die neuen Maße und ein Objektformat per Skript zuweisen richtig?

Das Objektformat selbst ist aber im Dokument schon enthalten, oder?
LG
faxinger


als Antwort auf: [#578431]
(Dieser Beitrag wurde von faxinger666 am 26. Jan 2021, 22:00 geändert)

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

faxinger666
Beiträge gesamt: 167

26. Jan 2021, 23:52
Beitrag # 7 von 10
Beitrag ID: #578463
Bewertung:
(137669 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

ich hab mal etwas versucht, vielleicht hilft dir das schon bei deinem Problem:

Das Skript funktioniert derzeit nur bei einem Dokument mit einer Doppelseite bei dem der gewünschte Rahmen auf der x Position 20mm liegt.

Die Rahmen werden an die Stege der linken bzw. rechten Seite verschoben und das Objektformat "TEST" wird zugewiesen.

Einfach mal ausprobieren.
Code
var doc = app.activeDocument; 
var objectStyle = doc.objectStyles.itemByName("TEST");
var steglinks_1 = doc.pages[0].marginPreferences.left;
var p2 = doc.pages[1].bounds[1];
var Abstand = doc.pages[1].marginPreferences.right;
var stegrechts_2 = p2 - Abstand;
var rectsli = doc.pages[0].rectangles;
var rectsre = doc.pages[1].rectangles;

for (i = 0; i < rectsli.length; i++)
{ var x_koordlinksoben =rectsli[i].geometricBounds[1];
var rundkoord = Math.round(x_koordlinksoben);

if (rundkoord==20)
{rectsli[i].move([steglinks_1,50])
rectsli[i].appliedObjectStyle = (objectStyle)
};
};

for (j = 0; j < rectsre.length; j++)
{ var x_koordlinksoben =rectsre[j].geometricBounds[0];
var rundkoord = Math.round(x_koordlinksoben);

if (rundkoord==20)
{ rectsre[j].appliedObjectStyle = (objectStyle);
var breite = rectsre[j].geometricBounds[3]- rectsre[j].geometricBounds[1];
rectsre[j].move([stegrechts_2 - breite,50])
};
};



Die Profiskripter können das sicher schöner und effektiver coden, aber ich kenn mich nur soweit aus und kann auch nachvollziehen was in diesem Skript passiert.

LG
faxinger


als Antwort auf: [#578462]

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

faxinger666
Beiträge gesamt: 167

27. Jan 2021, 00:17
Beitrag # 8 von 10
Beitrag ID: #578464
Bewertung:
(137662 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,

es war leider noch ein kleiner Fehler im Skript, aber das hier sollte funktionieren:

Code
var doc = app.activeDocument; 
var objectStyle = doc.objectStyles.itemByName("TEST");
var steglinks_1 = doc.pages[0].marginPreferences.left;
var p2 = doc.pages[1].bounds[1];
var Abstand = doc.pages[1].marginPreferences.right;
var stegrechts_2 = p2 - Abstand;
var rectsli = doc.pages[0].rectangles;
var rectsre = doc.pages[1].rectangles;

for (i = 0; i < rectsli.length; i++)
{ var koord =rectsli[i].geometricBounds[1];
var rundkoord_s1= Math.round(koord);

if (rundkoord_s1 == 20)
{rectsli[i].move([steglinks_1,50])
rectsli[i].appliedObjectStyle = (objectStyle)
};
};

for (j = 0; j < rectsre.length; j++)
{ var koord =rectsre[j].geometricBounds[1];
var rundkoord_s2 = Math.round(koord);

if (rundkoord_s2 ==20)
{ rectsre[j].appliedObjectStyle = (objectStyle);
var breite = rectsre[j].geometricBounds[3]- rectsre[j].geometricBounds[1];
rectsre[j].move([stegrechts_2 - breite,50])
};
};



LG
faxinger


als Antwort auf: [#578463]

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

MarkusD
Beiträge gesamt: 34

27. Jan 2021, 12:28
Beitrag # 9 von 10
Beitrag ID: #578469
Bewertung:
(137578 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo faxinger,

danke für deine Hilfe.

Ich habe meistens Dokumente mit mehreren Doppelseiten. Also wäre es super, wenn das Script alle Seiten durchsucht und die Rahmen mit einem Objektformat versieht.
Dein Script macht genau das, was ich brauche. Wenn ich Linealeinheit auf Ursprung Druckbogen stelle, kann ich den Objekten auf den linken und rechten Seiten eigene Formate zuweisen.
Ich probiere jetzt mal, ob ich es schaffe auch die Y Koordinaten in das Script einzubauen und eine Schleife durch alle Seiten hinzubekommen.


als Antwort auf: [#578464]

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

faxinger666
Beiträge gesamt: 167

27. Jan 2021, 13:18
Beitrag # 10 von 10
Beitrag ID: #578472
Bewertung:
(137567 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Markus,
ja freut mich dass es funktioniert.

Wenn du mehrere Doppelseiten hast musst du eine Schleife außenrum basteln :-)

Was noch nicht berücksichtigt wurde ist die Y-Koordinate, größere Distanzen zur vorgesehenen Koordinate (was wenn der Rahmen auf [18/23] liegt?
und auf welcher Ebene der Rahmen liegt?

Das kommt dann drauf an ob diese Punkte berücksichtigt werden müssen.

LG
faxinger


als Antwort auf: [#578469]
X