mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 20:30 Benutzername: Passwort: Auto-Login

Thema: InDesign Skript Bilder Skalieren vom 24.05.2017


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Software - Print -> InDesign Skript Bilder Skalieren
Autor Nachricht
Stuckmann
Threadersteller

Dabei seit: 26.10.2011
Ort: Düsseldorf
Alter: 35
Geschlecht: Männlich
Verfasst Mi 24.05.2017 08:09
Titel

InDesign Skript Bilder Skalieren

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

ich bin auf der Suche nach einer Möglichkeit wie ich verankerte Bilder innerhalb eines Textrahmens um einen bestimmen Wert in der Breite bzw Höhe mittels Skript anpassen kann.

Folgende Situation:
Es muss für eine Messe ein Messekatalog mit Ausstellereinträgen erstellt werden.
Die Daten werden über eine Datenbank von den Ausstellern eingegeben und anschließend als gesammelte XML Datei übermittelt.

In der XML Datei sind entsprechende Tags vorhanden, damit ich mittels Absatzformaten die Gestaltung wie z.B. Schriftart, Größe, etc anpassen kann.

Bis hier ist alles noch gut.

Die Ausstellereinträge beinhalten allerdings auch das jeweilige Firmenlogo, welches durch die Aussteller natürlich in unterschiedlicher Qualität und Größe hoch geladen wird.

Im XML ist hierfür auch ein Tag vorhanden der das Logo als Absatz umschließt, die Funktion ist bisher hilfreich um dann über das entsprechende Absatzformat Optionen wie z.B. Umbruch und Trennung von nächstem Absatz zu beinflussen um zu gewährleisten, dass die Ausstellereinträge immer "am Stück" abgebildet werden und nicht über mehrere Spalten getrennt sind.

Jetzt taucht aber das Problem auf, dass die Logos unterschiedlich Groß sind, optimal wäre Beispielsweise für Querformatige Logos 6 cm x 1,2 cm, für Hochformatige Logos 3 cm x 2,4 cm und für quadratische 2 cm x 2 cm.

Gibt es hierzu ein Skript oder eine andere Möglichkeit wie ich die ca 500 Logos auf einen Schlag skalieren kann, wichtig ist, dass sowohl Bildrahmen als auch Inhalt angepasst werde, da die Bildrahmen als verankertes Objekt eingebunden sind.

Die Logos liegen alle zentral in einem Ordner nach der Übergabe der Datenbank, d.h. es würde vllt auch eine Stapelverarbeitung o.ä. in Photoshop in Frage kommen, wenn ich hier zwischen Hoch- und Querformat unterscheiden kann.

Ich bin dankbar für jeden Tipp!!


Zuletzt bearbeitet von Stuckmann am Mi 24.05.2017 08:29, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
hadouken

Dabei seit: 07.11.2015
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 25.05.2017 02:59
Titel

Antworten mit Zitat Zum Seitenanfang

Probier es mal aus.

Code:

// config start
var __objectFormatTitle = 'foto';
var __widths = {
    SQUARE: 20,
    HORIZONTAL: 40,
    VERTICAL: 20
}
// config end

main();

function main() {
    var imageResizer = new ImageResizer();
    var helpers = new Helpers();
    helpers.removeTextFrameOverflows();
    imageResizer.setWidths(
        helpers.getRectanglesByObjectFormat(__objectFormatTitle), __widths
    );
}

function Helpers() {
    this.getRectanglesByObjectFormat = function(objectFormatTitle) {
        app.findObjectPreferences.appliedObjectStyles = objectFormatTitle;
        return document.findObject(true);
    }

    this.removeTextFrameOverflows = function() {
        for(var i = 0; i < document.textFrames.length; i++) {
            if(document.textFrames[i].overflows)
                document.textFrames[i].fit(FitOptions.FRAME_TO_CONTENT)
        }
    }
}

function ImageResizer() {
    var _helpers = new Helpers();

    this.setWidths = function(rectangles, widths)  {
        for(var i = 0; i < rectangles.length; i++) {
            if(_setWidth(rectangles[i], widths))
                _helpers.removeTextFrameOverflows();
        }
    }

    function _setWidth(rectangle, widths) {
        try {
            var b = rectangle.geometricBounds;
        }
        catch(error) {
            alert('Uups, can\'t get Rectangle.geometricBounds.\nProbably the graphic is overflowing its container TextFrame and the TextFrame can\'t expand.');
            return false;
        }
        rectangle.geometricBounds = [
            b[0], b[1], b[2],
            b[1] + widths[_getRatioType(rectangle.allGraphics[0])]
        ];
        rectangle.fit(FitOptions.FILL_PROPORTIONALLY);
        rectangle.fit(FitOptions.FRAME_TO_CONTENT);
        return true;
    }

    function _getRatioType(image) {
        var ratio = (
            (image.geometricBounds[3] - image.geometricBounds[1]) /
            (image.geometricBounds[2] - image.geometricBounds[0])
            ).toString();
        if(ratio == '1')
            return 'SQUARE'
        else if(ratio < 1)
            return 'HORIZONTAL'
        else
            return 'VERTICAL'
    }
}
  View user's profile Private Nachricht senden
Anzeige
Anzeige
 
Ähnliche Themen Skript für InDesign - Bilder in neuen Dokument sammeln
Bilder mit Indesign oder mit Photoshop skalieren
InDesign parallelogrammförmige Bilder skalieren – Problem
InDesign CS2: Bilder kleiner skalieren für Offset-Druck
Illustrator Bilder skalieren
Acrobat ::: Bilder skalieren :::
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Software - Print


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.