Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Skript anpassen

Skript anpassen

atrachsel
Beiträge gesamt: 93

4. Nov 2013, 08:01
Bewertung:

gelesen: 826

Beitrag als Lesezeichen
Hallo zusammen

Ich habe hier ein Skript welchem ich die maximale Höhe und Breite eingeben möchte. Wenn ich ein Wort mit 3 Buchstaben habe, möchte ich nicht dass die volle Breite erreicht wird, da sonst die Buchstaben zu gross werden. Weiss aber leider nicht wo.
Kann mir da jemand helfen?

if ( app.documents.length > 0 )
main();

function main()
{
var old_tp = app.transformPreferences.whenScaling;
app.transformPreferences.whenScaling = WhenScalingOptions.ADJUST_SCALING_PERCENTAGE;
for ( var i = app.activeDocument.textFrames.length -1; i >= 0; i-- )
{
if ( app.activeDocument.textFrames.item(i).characters.length > 0 && app.activeDocument.textFrames.item(i).rotationAngle == 0 )
{
bring_auf_breite( app.activeDocument.textFrames.item(i) );

}
}
app.transformPreferences.whenScaling = old_tp;
}

function bring_auf_breite ( obj )
{
var gb_vorher = obj.geometricBounds;
var breite_vorher = gb_vorher[3] - gb_vorher[1];
var hoehe_vorher = gb_vorher[2] - gb_vorher[0];
obj.fit(FitOptions.FRAME_TO_CONTENT);
var gb_nachher = obj.geometricBounds;
var breite_nachher = gb_nachher[3] - gb_nachher[1];
var hoehe_nachher = gb_nachher[2] - gb_nachher[0];
var factorb = breite_vorher/breite_nachher;
var factorh = hoehe_vorher/hoehe_nachher;
var factor = Math.min( factorb, factorh);
var myScaleMatrix = app.transformationMatrices.add({horizontalScaleFactor:factor, verticalScaleFactor:factor});
obj.transform(CoordinateSpaces.pasteboardCoordinates, AnchorPoint.TOP_LEFT_ANCHOR, myScaleMatrix);
obj.geometricBounds = gb_vorher;

Skript anpassen

Gerald Singelmann
  
Beiträge gesamt: 6269

4. Nov 2013, 10:29
Bewertung:

gelesen: 793

Beitrag als Lesezeichen
Ich stell das Script mal in einen code-tag, damit man’s auch lesen kann:
Code
if (app.documents.length > 0) main(); 

function main() {
var old_tp = app.transformPreferences.whenScaling;
app.transformPreferences.whenScaling = WhenScalingOptions.ADJUST_SCALING_PERCENTAGE;
for (var i = app.activeDocument.textFrames.length - 1; i >= 0; i--) {
if (app.activeDocument.textFrames.item(i).characters.length > 0
&& app.activeDocument.textFrames.item(i).rotationAngle == 0) {
bring_auf_breite(app.activeDocument.textFrames.item(i));

}
}
app.transformPreferences.whenScaling = old_tp;
}

function bring_auf_breite(obj) {
var gb_vorher = obj.geometricBounds;
var breite_vorher = gb_vorher[3] - gb_vorher[1];
var hoehe_vorher = gb_vorher[2] - gb_vorher[0];
obj.fit(FitOptions.FRAME_TO_CONTENT);
var gb_nachher = obj.geometricBounds;
var breite_nachher = gb_nachher[3] - gb_nachher[1];
var hoehe_nachher = gb_nachher[2] - gb_nachher[0];
var factorb = breite_vorher / breite_nachher;
var factorh = hoehe_vorher / hoehe_nachher;
var factor = Math.min(factorb, factorh);
var myScaleMatrix = app.transformationMatrices.add({
horizontalScaleFactor: factor,
verticalScaleFactor: factor
});
obj.transform(CoordinateSpaces.pasteboardCoordinates, AnchorPoint.TOP_LEFT_ANCHOR, myScaleMatrix);
obj.geometricBounds = gb_vorher;
}