[GastForen Programme Print/Bildbearbeitung Adobe InDesign Javascript: Grafik an Satzspiegel anpassen

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

Javascript: Grafik an Satzspiegel anpassen

Jürgen Althaus
Beiträge gesamt: 102

17. Feb 2009, 15:06
Beitrag # 1 von 3
Bewertung:
(3291 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

nachdem ich so viel Hilfen und Infos aus dem Forum bekommen habe möchte ich auch ein wenig davon zurückgeben.

Habe für ein Werk ein kleines Skript gebastelt, dass importierte Grafiken an den Satzspiegel der aktuellen Seite proportional anpasst und gleichzeitig ein Objektformat zuweisst.
Vielleicht kann es ja jemand gebrauchen.

Viele Grüße
Jürgen
Code
//BilderAlsFormular.jsx 

//DESCRIPTION: Formatiert alle ausgewählten Grafiken mit einem Objektformat, passt sie an den Satzspiegel der aktuellen Seite an und richtet die Grafik an der oberen linken Ecke aus

var myStylename = 'Bilder';
var myDoc = app.activeDocument;

try{
myDoc.objectStyles.item( myStylename ).name;
}
catch (myError)
{
myDoc.objectStyles.add( { name : myStylename, strokeWeight : 0.4, strokeTint : 35, fillColor : 'Paper', enableStrokeAndCornerOptions:false,
transparencySettings:{dropShadowSettings:{mode : ShadowMode.DROP, opacity : 25, angle : 135, xOffset : '2mm', yOffset : '2mm', size : '2mm', blendMode : 'MULTIPLY', knockedOut : true }},
objectEffectsEnablingSettings: {enableDropShadow:true}} );
}


if (app.selection.length > 0)
var mySel = app.selection;
else
{
alert("Fehler!\rSo geht es nicht.\rNichts ausgewählt.");
exit();
}

for (oneItem = 0; oneItem < mySel.length; oneItem++)
{
if (mySel[oneItem].constructor.name == "Rectangle")
{
var myOStyle = myDoc.objectStyles.item(myStylename); // Objektstil
var myZeroPoint = myDoc.zeroPoint;
myDoc.zeroPoint = [0,0];
mySel[oneItem].geometricBounds = myGetBounds (myDoc, myDoc.pages.item(mySel[oneItem].parent.name));
mySel[oneItem].fit(FitOptions.fillProportionally);
mySel[oneItem].fit(FitOptions.frameToContent);
mySel[oneItem].applyObjectStyle(myOStyle, true); // Zuweisung des Objektstils
myDoc.zeroPoint = myZeroPoint;
}
else
alert("Fehler!\rDu hast einen \""+ mySel[oneItem].constructor.name + "\" ausgewählt.\rIch brauche einen Bildrahmen!");
}
alert("Fertig!")

function myGetBounds(myDocument, myPage){
var myPageWidth = myDocument.documentPreferences.pageWidth;
var myPageHeight = myDocument.documentPreferences.pageHeight;
if(myPage.side == PageSideOptions.leftHand){
var myX2 = myPage.marginPreferences.left;
var myX1 = myPage.marginPreferences.right;
}
else{
var myX1 = myPage.marginPreferences.left;
var myX2 = myPage.marginPreferences.right;
}
var myY1 = myPage.marginPreferences.top;
var myX2 = myPageWidth - myX2 - myDoc.objectStyles.item(myStylename).transparencySettings.dropShadowSettings.xOffset;
var myY2 = myY1+1;
return [myY1, myX1, myY2, myX2];
}


(Dieser Beitrag wurde von Jürgen Althaus am 17. Feb 2009, 15:15 geändert)
X

Javascript: Grafik an Satzspiegel anpassen

Jürgen Althaus
Beiträge gesamt: 102

17. Feb 2009, 15:44
Beitrag # 2 von 3
Beitrag ID: #385897
Bewertung:
(3277 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Noch eine kleine Ergänzung des Scripts. Es funktioniert nur wenn die Linealeinheit auf Seite steht. Sollte jetzt abgefangen sein.
Code
//BilderAlsFormular.jsx 

//DESCRIPTION: Formatiert alle ausgewählten Grafiken mit einem Objektformat, passt sie an den Satzspiegel der aktuellen Seite an und richtet die Grafik an der oberen linken Ecke aus

var myStylename = 'Bilder';
var myDoc = app.activeDocument;

try{
myDoc.objectStyles.item( myStylename ).name;
}
catch (myError)
{
myDoc.objectStyles.add( { name : myStylename, strokeWeight : 0.4, strokeTint : 35, fillColor : 'Paper', enableStrokeAndCornerOptions:false,
transparencySettings:{dropShadowSettings:{mode : ShadowMode.DROP, opacity : 25, angle : 135, xOffset : '2mm', yOffset : '2mm', size : '2mm', blendMode : 'MULTIPLY', knockedOut : true }},
objectEffectsEnablingSettings: {enableDropShadow:true}} );
}


if (app.selection.length > 0)
var mySel = app.selection;
else
{
alert("Fehler!\rSo geht es nicht.\rNichts ausgewählt.");
exit();
}

for (oneItem = 0; oneItem < mySel.length; oneItem++)
{
if (mySel[oneItem].constructor.name == "Rectangle")
{
var myOStyle = myDoc.objectStyles.item(myStylename); // Objektstil

//Preferences sichern
with(myDoc){
var myZeroPoint = zeroPoint;
var myRuler = viewPreferences.rulerOrigin;
zeroPoint = [0,0];
viewPreferences.rulerOrigin = RulerOrigin.pageOrigin;
}

mySel[oneItem].geometricBounds = myGetBounds (myDoc, myDoc.pages.item(mySel[oneItem].parent.name));
mySel[oneItem].fit(FitOptions.fillProportionally);
mySel[oneItem].fit(FitOptions.frameToContent);
mySel[oneItem].applyObjectStyle(myOStyle, true); // Zuweisung des Objektstils

//Preferences zurückschreiben
with(myDoc){
zeroPoint = myZeroPoint;
viewPreferences.rulerOrigin = myRuler;
}
}
else
alert("Fehler!\rDu hast einen \""+ mySel[oneItem].constructor.name + "\" ausgewählt.\rIch brauche einen Bildrahmen!");
}
alert("Fertig!")

function myGetBounds(myDocument, myPage){
var myPageWidth = myDocument.documentPreferences.pageWidth;
var myPageHeight = myDocument.documentPreferences.pageHeight;
if(myPage.side == PageSideOptions.leftHand){
var myX2 = myPage.marginPreferences.left;
var myX1 = myPage.marginPreferences.right;
}
else{
var myX1 = myPage.marginPreferences.left;
var myX2 = myPage.marginPreferences.right;
}
var myY1 = myPage.marginPreferences.top;
var myX2 = myPageWidth - myX2 - myDoc.objectStyles.item(myStylename).transparencySettings.dropShadowSettings.xOffset;
var myY2 = myY1+1;
return [myY1, myX1, myY2, myX2];
}



als Antwort auf: [#385888]
(Dieser Beitrag wurde von Jürgen Althaus am 17. Feb 2009, 15:48 geändert)

Javascript: Grafik an Satzspiegel anpassen

Martin Fischer
  
Beiträge gesamt: 12783

17. Feb 2009, 16:04
Beitrag # 3 von 3
Beitrag ID: #385901
Bewertung:
(3273 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jürgen,

herzlichen Dank für das Skript.
Ich werde es ins Skriptarchiv stellen: BilderAlsFormular.jsx.


als Antwort auf: [#385897]
(Dieser Beitrag wurde von Martin Fischer am 18. Feb 2009, 08:01 geändert)