[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:
(11301 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: 6197

16. Jul 2013, 11:51
Beitrag # 2 von 22
Beitrag ID: #515073
Bewertung:
(11236 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:
(11219 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: 11956

16. Jul 2013, 12:53
Beitrag # 4 von 22
Beitrag ID: #515085
Bewertung:
(11211 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: 5832

16. Jul 2013, 13:13
Beitrag # 5 von 22
Beitrag ID: #515090
Bewertung:
(11197 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: 738

16. Jul 2013, 14:06
Beitrag # 6 von 22
Beitrag ID: #515096
Bewertung:
(11171 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:
(11127 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: 738

16. Jul 2013, 18:10
Beitrag # 8 von 22
Beitrag ID: #515119
Bewertung:
(11123 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:
(11118 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: 5832

16. Jul 2013, 18:51
Beitrag # 10 von 22
Beitrag ID: #515125
Bewertung:
(11092 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: 738

16. Jul 2013, 20:49
Beitrag # 11 von 22
Beitrag ID: #515131
Bewertung:
(11043 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: 5832

16. Jul 2013, 21:12
Beitrag # 12 von 22
Beitrag ID: #515133
Bewertung:
(11033 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: 738

16. Jul 2013, 23:00
Beitrag # 13 von 22
Beitrag ID: #515139
Bewertung:
(11008 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: 5832

16. Jul 2013, 23:10
Beitrag # 14 von 22
Beitrag ID: #515141
Bewertung:
(10996 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: 2295

17. Jul 2013, 07:09
Beitrag # 15 von 22
Beitrag ID: #515144
Bewertung:
(10912 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
Hier Klicken

Aktuell

Diverses
stabuebergabe300

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
24.01.2019

Impressed GmbH, Hamburg
Donnerstag, 24. Jan. 2019, 10.00 - 10.30 Uhr

Webinar

Wir stellen Ihnen in diesem kostenlosen ca. halbstündigen Webinar das neue Enfocus Switch PDF Review Modul zur Freigabe von PDF-Druckdaten vor. Wir zeigen Ihnen, wie Sie die Lösung in bestehende Enfocus Switch-Workflows einbinden und somit die Freigabeprozesse mit Ihren Kunden erheblich beschleunigen können.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

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

Enfocus Switch PDF Review Modul
Veranstaltungen
24.01.2019

Hochschule der Medien, Stuttgart
Donnerstag, 24. Jan. 2019, 18.00 Uhr

Vortrag

Wie jedes Jahr im Januar besucht uns Monika Gause mit Neuigkeiten zu Illustrator und aus der restlichen Publishing-Welt. Der Abend ist pickepacke voll: Zunächst zeigt uns Monika alles Neue, was uns Adobe in Illustrator 2019 gepackt hat. Anschließend zeigt sie verschiedenen Möglichkeiten der realistischen Darstellung: Verläufe, Verlaufsgitter, Angleichungen und wie man sie in den Griff bekommt. Dazu gehört auch die Vorstellung des kostenlosen Plugin Mesh Tormentor. Abgeschlossen wird mit dem "Best-of" aus einem Infografik/Dokumentation-Seminar, das Monika letztes Jahr in München gehalten hat. Es ist nicht nötig Tickets zu kaufen oder eine Registrierung durchzuführen. Komme einfach vorbei! Wir freuen uns Katharina Frerichs und Christoph Steffens

Kostenlos, Ticketkauf oder Anmeldung ist nicht nötig.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

Illustrator mit Monika Gause