[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Bild teilen nach Maßvorgabe ID CS5

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

Bild teilen nach Maßvorgabe ID CS5

Effges
Beiträge gesamt: 16

15. Jul 2013, 20:50
Beitrag # 1 von 22
Bewertung:
(11183 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
schon einige Zeit suche ich nach einer Skriptlösung für das Teilen von großen Bildern, allerdings geht es nicht um das gleichmäßige Aufteilen mit Zwischenräumen, wie es vom Skript MakeGrid.jsx bekannt ist. Das Bild wäre im Dokument platziert und als Auswahl markiert. Es hat beispielsweise eine Höhe von 1.200 mm und eine Länge von 5.800 mm. Die Länge des Bildes soll in (z.B.) vier unterschiedlich Große Segmente unterteilt werden.
Segment A ist 1.250 mm breit, Segment B 1.500 mm, Segment C wieder 1.250 mm und das Vierte Segment 1.800 mm.
Es würde mir schon reichen, wenn ich durch mehrfache Anwendung eines Skriptes (bei dem ein Breitenwert = linkes Segment von mir abgefragt wird) zu einer gewünschten Teilung käme. Hat jemand von euch eine Idee o der kennt wer ein ähnliches Skript?

Für jeglichen Hinweis besten Dank!
Hier Klicken X

Bild teilen nach Maßvorgabe ID CS5

Gerald Singelmann
  
Beiträge gesamt: 6193

16. Jul 2013, 11:51
Beitrag # 2 von 22
Beitrag ID: #515073
Bewertung:
(11118 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen


als Antwort auf: [#515037]

Bild teilen nach Maßvorgabe ID CS5

Effges
Beiträge gesamt: 16

16. Jul 2013, 12:36
Beitrag # 3 von 22
Beitrag ID: #515082
Bewertung:
(11101 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Gerald,

das geht genau in die gewünschte Richtung.
Das Skript werde ich mir genauer ansehen und an meine genauen Vorstellungen anpassen. Vielen Dank!


als Antwort auf: [#515073]

Bild teilen nach Maßvorgabe ID CS5

Martin Fischer
  
Beiträge gesamt: 11878

16. Jul 2013, 12:53
Beitrag # 4 von 22
Beitrag ID: #515085
Bewertung:
(11093 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

gut gemacht.
Funktioniert und gefällt.


Antwort auf: Auf HDS gab es heute eine Anfrage, die mir kurzweiliger erschien als das Projekt, das eigentlich dringend meine Aufmerksamkeit bräuchte ;)


Genau so ging es auch mir.
Und ich hab auch einen Entwurf gefertigt.
Allerdings nicht so komfortabel mit Eingabedialog und so wie bei Dir.
Deswegen hatte ich mein Konzept noch zurückgehalten.
Nun bin ich froh über diese Entscheidung. ;-)

Viele Grüße
Martin


als Antwort auf: [#515073]

Bild teilen nach Maßvorgabe ID CS5

Ralf Hobirk
Beiträge gesamt: 5807

16. Jul 2013, 13:13
Beitrag # 5 von 22
Beitrag ID: #515090
Bewertung:
(11079 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich hänge mich jetzt mal hier dran ;-)

Ich habe in meinen Jobs häufig Bilder, die in der Breite über eine komplette Doppelseite laufen. Da die Bindung dieser Kataloge in Klebebindung erfolgt, und ich den später nicht sichtbaren Teil der Bilder kompensieren muss, mache ich vor dem Export der Druck-PDFs folgendes:

– Ich teile das Bild im Bund (exakt in der Mitte). Im Klartext: "Step & Repeat" ohne Versatz, dann jeweils die Rahmen mit der Maus entsprechend zusammenziehen, so dass sie sich im Bund "treffen".

– Dem Bild im linken Rahmen einen bestimmten Versatz nach links geben, dem Bild im rechten Rahmen nach rechts.

Ließe sich das Script von Gerald dahingehend erweitern/ändern? Ggfs. mit fest im Script eingegebenen Werten für den rechts/links-Versatz? Es geht immer nur um einen senkrechten Schnitt.

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)


als Antwort auf: [#515085]

Bild teilen nach Maßvorgabe ID CS5

-hans-
Beiträge gesamt: 737

16. Jul 2013, 14:06
Beitrag # 6 von 22
Beitrag ID: #515096
Bewertung:
(11053 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mein Ansatz als Nichtprogrammierer, und ich fürchte nach Arbeitsweise und logischem Denkansatz wird das auch nix mehr ;-)

Code
var currSel = app.selection[0]; 
if(currSel ==undefined)exit();
if(currSel.graphics.length ==0)exit();

var currDoc = app.activeDocument;

with(currDoc.viewPreferences){
horizontalMeasurementUnits = MeasurementUnits.millimeters;
verticalMeasurementUnits = MeasurementUnits.millimeters;
}

var oGBounds = currSel.geometricBounds
var currWidth = oGBounds[3] - oGBounds[1];

var segmentsArray = currDialog(currWidth);

setSegments(segmentsArray, currSel);


function currDialog(currWidth){

var currNbr = getSegmentsCount();
var w = new Window ("dialog", "get exact widths ...", );
var g = w.add('group');
for(var i = 0; i < currNbr; i++){
var eT = g.add ("edittext");
if(i == 0)eT.text = currWidth;
eT.characters = currWidth.toString().length;
eT.onChanging = function(){
var allET = this.parent.children;
var res = 0;
for(var e = 0; e < allET.length-1; e++){
res = res + parseFloat(allET[e].text);
}
var rest = 0;
allET[allET.length-1].visible = false
if(currWidth - res > 0){rest = currWidth - res; allET[allET.length-1].visible = true}
allET[allET.length-1].text = rest;

}
}


w.add ("button", undefined, "OK");
w.add ("button", undefined, "Cancel");
w.show ();

sArray = [];
allET = g.children
for(var e = 0; e < allET.length; e++){
currText = allET[e].text;
if(currText == '' || allET[e].visible = false){alert('nicht korrekt ausgefüllt'),exit();
}else{
sArray.push(currText)}
}

return sArray

}

function getSegmentsCount(){
var w = new Window ("dialog", "Segments");
var myDropdown = w.add ("dropdownlist", undefined, ["2", "3","4", "5", "6","7", "8", "9","10"]);
myDropdown.selection = 0;
w.add ("button", undefined, "OK");
w.add ("button", undefined, "Cancel");
w.show ();

return myDropdown.selection.index +2;

}



function setSegments(segmentsArray, currSel){
for(var s = 0; s < segmentsArray.length; s++){
if(s == 0){
var oGBounds = currSel.geometricBounds;
var newx2 = oGBounds[1] + parseFloat(segmentsArray[s]);
currSel.geometricBounds = [oGBounds[0], oGBounds[1],oGBounds[2],newx2];
}else{
var currSel = currSel.duplicate(undefined,[0,0]);
var oGBounds = currSel.geometricBounds;
var newx2 = oGBounds[3] + parseFloat(segmentsArray[s]);
currSel.geometricBounds = [oGBounds[0],oGBounds[3],oGBounds[2],newx2];
}

}
}


P.S. Als Antwort nur auf Post 1
Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#515085]

Bild teilen nach Maßvorgabe ID CS5

Effges
Beiträge gesamt: 16

16. Jul 2013, 17:55
Beitrag # 7 von 22
Beitrag ID: #515117
Bewertung:
(11009 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Allen, die sich meiner Angelegenheit angenommen haben, erbiete meinen herzlichen Dank. Ganz besondere Anerkennung gilt aber dem HANS! Du bist mir doch noch Einiges voraus und Dein Skript ist genau so geworden, wie ich es mir gewünscht habe. Hast das auch noch schneller hinbekommen als die Polizei erlaubt... #ZWINKER + SMILEY#


als Antwort auf: [#515096]

Bild teilen nach Maßvorgabe ID CS5

-hans-
Beiträge gesamt: 737

16. Jul 2013, 18:10
Beitrag # 8 von 22
Beitrag ID: #515119
Bewertung:
(11005 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
sehr lieb, Danke

Scriptbeschreibung ergänzend:
Im ersten Textfeld des Dialoges wird die Grafikrahmenbreite als Orientierung angezeigt.
Der Wert im Textfeld für das letzte Segment wird automatisch ergänzt und ist 'schreibgeschützt'
Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#515117]

Bild teilen nach Maßvorgabe ID CS5

Effges
Beiträge gesamt: 16

16. Jul 2013, 18:14
Beitrag # 9 von 22
Beitrag ID: #515120
Bewertung:
(11000 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ihr,
habe noch eben einen Dokument- und Auswahl-Check ergänzt und die Eingabeaufforderung angepasst. Ich liebe es, das Skript und auch das erfolgreiche Skripten von selbsternannten Nicht-Programmierern.

Beste Grüße
Thomas
Code
#target indesign 
//InDesign Skript "Bildsegmentierung.jsx"
//
//Existenz von Seite und Auswahl prüfen
if (app.documents.length != 0){
if (app.selection.length != 0){
}
else {
alert("Kein Objekt ausgewählt.");
}
}
else{
alert("Kein Dokument geöffnet. Bitte Dokument öffnen und wiederholen.");
}

var currSel = app.selection[0];
if(currSel ==undefined)exit();
if(currSel.graphics.length ==0)exit();

var currDoc = app.activeDocument;

with(currDoc.viewPreferences){
horizontalMeasurementUnits = MeasurementUnits.millimeters;
verticalMeasurementUnits = MeasurementUnits.millimeters;
}

var oGBounds = currSel.geometricBounds
var currWidth = oGBounds[3] - oGBounds[1];

var segmentsArray = currDialog(currWidth);

setSegments(segmentsArray, currSel);


function currDialog(currWidth){

var currNbr = getSegmentsCount();
var w = new Window ("dialog", "Bitte horizontale Segmentbreiten eingeben", );
var g = w.add('group');
for(var i = 0; i < currNbr; i++){
var eT = g.add ("edittext");
if(i == 0)eT.text = currWidth;
eT.characters = currWidth.toString().length;
eT.onChanging = function(){
var allET = this.parent.children;
var res = 0;
for(var e = 0; e < allET.length-1; e++){
res = res + parseFloat(allET[e].text);
}
var rest = 0;
allET[allET.length-1].visible = false
if(currWidth - res > 0){rest = currWidth - res; allET[allET.length-1].visible = true}
allET[allET.length-1].text = rest;

}
}


w.add ("button", undefined, "OK");
w.add ("button", undefined, "Cancel");
w.show ();

sArray = [];
allET = g.children
for(var e = 0; e < allET.length; e++){
currText = allET[e].text;
if(currText == '' || allET[e].visible = false){alert('unvollständig oder unkorrekt ausgefüllt'),exit();
}else{
sArray.push(currText)}
}

return sArray

}

function getSegmentsCount(){
var w = new Window ("dialog", "Segments");
var myDropdown = w.add ("dropdownlist", undefined, ["2", "3","4", "5", "6","7", "8", "9","10"]);
myDropdown.selection = 0;
w.add ("button", undefined, "OK");
w.add ("button", undefined, "Cancel");
w.show ();

return myDropdown.selection.index +2;

}



function setSegments(segmentsArray, currSel){
for(var s = 0; s < segmentsArray.length; s++){
if(s == 0){
var oGBounds = currSel.geometricBounds;
var newx2 = oGBounds[1] + parseFloat(segmentsArray[s]);
currSel.geometricBounds = [oGBounds[0], oGBounds[1],oGBounds[2],newx2];
}else{
var currSel = currSel.duplicate(undefined,[0,0]);
var oGBounds = currSel.geometricBounds;
var newx2 = oGBounds[3] + parseFloat(segmentsArray[s]);
currSel.geometricBounds = [oGBounds[0],oGBounds[3],oGBounds[2], newx2];
}

}
}



als Antwort auf: [#515117]

Bild teilen nach Maßvorgabe ID CS5

Ralf Hobirk
Beiträge gesamt: 5807

16. Jul 2013, 18:51
Beitrag # 10 von 22
Beitrag ID: #515125
Bewertung:
(10974 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hmm… im Gegensatz zu Geralds Script akzeptiert dieses keine Kommastellen, also nur glatte Millimeter. Es ist mir zumindest nicht gelungen, ein Bild von 131 mm Breite "sauber" zu teilen.

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)


als Antwort auf: [#515120]

Bild teilen nach Maßvorgabe ID CS5

-hans-
Beiträge gesamt: 737

16. Jul 2013, 20:49
Beitrag # 11 von 22
Beitrag ID: #515131
Bewertung:
(10925 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Ralf,

Separator ist der "."
http://de.selfhtml.org/...ngig.htm#parse_float
Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#515125]

Bild teilen nach Maßvorgabe ID CS5

Ralf Hobirk
Beiträge gesamt: 5807

16. Jul 2013, 21:12
Beitrag # 12 von 22
Beitrag ID: #515133
Bewertung:
(10915 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans-Gerd,

alles klar, funktioniert ;-)

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)


als Antwort auf: [#515131]

Bild teilen nach Maßvorgabe ID CS5

-hans-
Beiträge gesamt: 737

16. Jul 2013, 23:00
Beitrag # 13 von 22
Beitrag ID: #515139
Bewertung:
(10890 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
... nichts desto trotz mag es durchaus andere Schwächen aufweisen :)
Werner P. hat mal sinngemäß gepostet, dass die meiste Zeit beim Scripten für die Fehleranalyse verwendet werden muss!
Antworten hier betrachte ich als Denkanstoß bzw. Hilfestellung für den Fragesteller und sie sind i. d. R. zwischen Tür und Angel geschrieben. Wer was hundertprozentiges erwartet und / oder von der Materie keine Ahnung hat, sollte ggf. auch bezahlen dürfen :)
Lieben Gruß

Hans-Gerd Claßen


als Antwort auf: [#515133]
(Dieser Beitrag wurde von -hans- am 16. Jul 2013, 23:05 geändert)

Bild teilen nach Maßvorgabe ID CS5

Ralf Hobirk
Beiträge gesamt: 5807

16. Jul 2013, 23:10
Beitrag # 14 von 22
Beitrag ID: #515141
Bewertung:
(10878 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: dass die meiste Zeit beim Scripten für die Fehleranalyse verwendet werden muss!

Ich weiß. Wir sollen Ende August für unser Reservierungssystem eine zusätzliche Applikation geliefert bekommen. Und unser (Web)programmierer weiß jetzt schon, dass er sich auf rund 2 Monate debuggen einstellen darf, um die Schnittstelle zwischen Website und Reservierungssystem (IBE = Internet Booking Engine) vernünftig zum Laufen zu bekommen…

---
Viele Grüße aus Istrien Cool
Ralf
---
iMac i7 (12,2) 3,4 GHz, 16 GB | MacBook Pro 15" (8,2) 2,0 GHz, 16 GB | Mac Mini (3,1) als Server 2,53 GHz, 8 GB | 10.11.6 El Capitan | CS6 (ID 8.0.1)


als Antwort auf: [#515139]

Bild teilen nach Maßvorgabe ID CS5

WernerPerplies
Beiträge gesamt: 2224

17. Jul 2013, 07:09
Beitrag # 15 von 22
Beitrag ID: #515144
Bewertung:
(10794 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Zitat Werner P. hat mal sinngemäß gepostet, dass die meiste Zeit beim Scripten für die Fehleranalyse verwendet werden muss!

Na ja, ich weiß auch gerade nicht, was ich damals genau geschrieben habe, aber das Schreiben des eigentlichen Skriptes ist mit Sicherheit der geringste Aufwand bei der Erstellung eines einigermaßen benutzerfreundlichen, stabilen Skriptes.

1. Ein erheblicher Teil des Aufwandes (oft > 30 %) besteht schon mal darin, die Aufgabenstellung genau zu verstehen und ausreichendes Testmaterial zu bekommen.
Jeder nachgeschobene Wunsch oder jede neue Erkenntnis durch unzureichendes Testmaterial nach der Fertigstellung des Skriptes treibt den Gesamtaufwand extrem nach oben.
Also, die richtige Vorbereitung ist oft schon die halbe Miete.

2. Beim Schreiben des Skriptes Fehlermöglichkeiten weitgehend auszuschließen, also Grenzbedingungen zu berücksichtigen und zu behandeln.
Nützlich ist dabei auch immer die Überlegung:
Was könnte mein Anwender mit meinem Skript alles anstellen? ;-)
Da gibt es dann schon mal Überraschungen.

3. Sich auf Fehler vorbereiten:
Also try .. catch ... mit Fehlerbehandlung.
Außerdem enthält jedes meiner Auftragsskripte eine Protokollfunktion mit Fehlermeldung, Zeilennummer und bei Bedarf zuschaltbar den Aufruf-Stack.

4. Das Skript vor Auslieferung sorgfältig testen.

Und dennoch gibt es oft Fehler beim ersten Aufruf des Anwenders, weil durch die Bedingungen beim Anwender eventuell schon die Installation schief gelaufen ist.

Zitat Antworten hier betrachte ich als Denkanstoß bzw. Hilfestellung für den Fragesteller und sie sind i. d. R. zwischen Tür und Angel geschrieben.

Das sollte eigentlich jedem Anwender klar sein, ist es aber oft nicht.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#515139]
X

Aktuell

Aktuell
PDF_korrekturen_300

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
25.10.2018

Hamburg
Donnerstag, 25. Okt. 2018, 10.39 Uhr

Seminar

Viele Funktionen, für die früher Illustrator benötigt wurde, finden sich heute auch in InDesign. Angefangen bei den Pfadwerkzeugen, mit denen sich Linien und Bezier-Pfade zeichnen lassen, über die regulären Zeichenwerkzeuge für Rahmen und Linien bis hin zum Pathfinder, der Vektorobjekte zerschneiden, verbinden und kombinieren kann: InDesign bietet eine Vielzahl von Vektorgrafik-Werkzeugen, mit denen sich auch komplexe Vektorgrafiken erstellen lassen.

München, Donnerstag, 25.10.2018, Seminargebühr 415,31 (inkl. 19% MwSt), 9.30 Uhr bis 17.30 Uhr

Ja

Organisator: Cleverprinting

Vektorgrafik mit Adobe InDesign und Illustrator
Veranstaltungen
25.10.2018

Schule für Gestaltung Zürich
Donnerstag, 25. Okt. 2018, 17.00 - 19.30 Uhr

Seminar

Folgenden Fragen gehe ich – gemeinsam mit Ihnen – während des Seminars auf den Grund: – Sind heutige Farbsysteme auf crossmediale Ausgaben ausgerichtet? – Wie definiert man Farben für den Einsatz in Office- und Direktmarketing-Softwaren? – Welche Farb-Definitionen muss ein heutiges, crossmediales Corporate-Design beinhalten? – Braucht es dazu neue Systeme und Workflows? – Existieren Hilfsmittel für den crossmedialen Datenaustausch (freieFarbe)? – Ist CMYK in heutigen digitalen Produktionen noch sinnvoll und von Vorteil? – Was ist qualitativ besser – verfahrensangepasst oder ausgabeneutral?

Donnerstag, 25. Oktober 2018, von 17.00 Uhr bis 19.30 Uhr
mit anschliessendem Apéro

viscom-Mitglied: Kostenlos
Nichtmitglied: CHF 250.00, zuzüglich MwSt.

Ja

Organisator: viscom

http://www.viscom.ch/?name=agenda&veranstaltungid=854&datum=25.10.2018&suche=1

Hier Klicken