[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:
(13523 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!
X

Bild teilen nach Maßvorgabe ID CS5

Gerald Singelmann
  
Beiträge gesamt: 6269

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

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


als Antwort auf: [#515073]

Bild teilen nach Maßvorgabe ID CS5

Ralf Hobirk
Beiträge gesamt: 5961

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


als Antwort auf: [#515085]

Bild teilen nach Maßvorgabe ID CS5

-hans-
Beiträge gesamt: 748

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


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:
(13349 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: 748

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


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:
(13340 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: 5961

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


als Antwort auf: [#515120]

Bild teilen nach Maßvorgabe ID CS5

-hans-
Beiträge gesamt: 748

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

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


als Antwort auf: [#515125]

Bild teilen nach Maßvorgabe ID CS5

Ralf Hobirk
Beiträge gesamt: 5961

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

alles klar, funktioniert ;-)


als Antwort auf: [#515131]

Bild teilen nach Maßvorgabe ID CS5

-hans-
Beiträge gesamt: 748

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


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: 5961

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


als Antwort auf: [#515139]

Bild teilen nach Maßvorgabe ID CS5

WernerPerplies
Beiträge gesamt: 2762

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


als Antwort auf: [#515139]
X

Aktuell

PDF / Print
enfocus_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
17.04.2024

Online
Mittwoch, 17. Apr. 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!