EPS entsprechend der Textgröße neu skalieren

Ich habe schon lange nach einer eleganten Möglichkeit gesucht, aber keine Möglichkeit gefunden. Ich verwende InDesign CS5 und wollte wissen, wie ich eine EPS-Grafik (oder eine andere Vektorgrafik), die ich in mein Poster eingefügt habe, entsprechend ihrer Textgröße skalieren kann.
Die EPS-Datei, die ich habe, enthält chemische Reaktionsschemata mit Elementsymbolen und Bindungen und so weiter (hergestellt von ChemDraw). Der Text, der in dieser Datei enthalten ist, ist immer noch ein Texttext (ich habe ihn nicht in Kurven oder so umgewandelt). Jetzt suche ich nach der Möglichkeit, diese Reaktionsschemata zu vergrößern, indem ich dem Programm mitteile, die Schrift beispielsweise 20 pt groß zu machen und jedes andere Element dieser Vektorgrafik proportional zu vergrößern .
Der GrundWarum ich das frage, ist, dass ich mehrere dieser Bilder habe, aber sie werden nicht mit derselben Größe importiert, aber ich möchte sie einheitlich auf dem gesamten Poster oder Dokument anzeigen.
Der schmutzige Weg wäre, Text in der gewünschten Größe daneben zu schreiben und das Schema neu zu skalieren, bis die Schriftgrößen übereinstimmen. Sobald es jedoch erforderlich ist, dass ein Schema etwas kleiner wird, müsste ich den gesamten Vorgang für jede einzelne Grafik wiederholen.

Bearbeiten:
Download der Dummy-EPS-Datei (die Datei heißt "wilkinson.eps" in Bezug auf den Katalysator)

Nun, Sie könnten diese Metrik aus dem EPS selbst fischen. Ist es Ihnen möglich, eine repräsentative Dummy-Version zu teilen?
Hallo Crystal, willkommen bei GDSE und danke für deine Frage. Wenn Sie mehr über die Website erfahren möchten, besuchen Sie bitte das Hilfezentrum oder pingen Sie einen von uns im Grafikdesign-Chat an , sobald Ihr Ruf ausreichend ist (20). Tragen Sie weiter bei und genießen Sie die Seite!
Vielen Dank für Ihren herzlichen Empfang! Ich habe einen Download-Link für ein Beispiel einer EPS-Datei vorbereitet. Reicht das oder würde etwas anderes helfen?

Antworten (2)

Als ich feststellte, dass die EPS-Datei eine Syntax im PDF-Stil verwendet, stellte ich fest, dass die Textskalierung mit erfolgt Tf:

8 0 0 8 5.327283 18.119995 Tm

Die 6 Zahlen sind eine Transformationsmatrix, wobei die erste Zahl ( 8) die x-Skala und die vierte Zahl (zufällig auch 8) die y-Skala des Textes ist. Sie müssen eine auswählen (normalerweise) – ich habe die erste Nummer ausgewählt.

Als nächstes erhalten Sie die Bilddatei aus einer beliebigen Auswahl. Sie können testen, ob eine Auswahl (entweder „direkt“ oder ihr übergeordnetes Rechteck) eine Grafik ist, und wenn ja, wie ihre Textbeschreibung lautet: imageTypeName. Für meine Version von InDesign ist dies "EPS".

Eine verknüpfte Datei bietet Zugriff auf ihren ursprünglichen vollständigen Pfadnamen, und da das EPS ein einfaches Nur-Text-Format ist, können Sie es dann Zeile für Zeile lesen und mit einem regulären Ausdruck testen, ob der erste Befehl kommt Tf. Diese Funktion scanFilegibt die tatsächliche Textgröße zurück. Die Multiplikation mit dem Maßstab des Objekts ergibt die effektive Textgröße in dem Maßstab, der sich derzeit in Ihrem Dokument befindet. Dann müssen nur noch zwei resizeBefehle ausgegeben werden: einer für das Containerrechteck und einer für das enthaltende Bild.

Das folgende Javascript erledigt all dies auf einem ausgewählten EPS. Speichern unter scaleEPS.jsxin Ihrem Benutzer-/Skript-Panel-Ordner. Ändere das desiredSizeoben auf die gewünschte Größe oder ersetze es durch die Linie

desiredSize = Number(prompt("Size", "10"));

um es für jeden einzelnen Lauf einzugeben, wenn Sie für jeden Lauf unterschiedliche Größen benötigen.

//DESCRIPTION:Scale EPS Image for Text
// A Jongware Script 17-Jul-2015
var desiredSize = 12;

if (app.selection.length == 1)
{
    obj = app.selection[0];
    if (obj.hasOwnProperty('graphics') && obj.graphics.length == 1)
    obj = obj.graphics[0];
    if (obj instanceof EPS ||
        (obj instanceof Graphic && obj.imageTypeName == "EPS"))
    {
        textsize = scanFile (obj.itemLink.filePath);
        textsize *= obj.horizontalScale/100;
        obj.parent.resize (CoordinateSpaces.INNER_COORDINATES,
            AnchorPoint.CENTER_ANCHOR,
            ResizeMethods.MULTIPLYING_CURRENT_DIMENSIONS_BY, [desiredSize/textsize, desiredSize/textsize]);
        obj.resize (CoordinateSpaces.INNER_COORDINATES,
            AnchorPoint.CENTER_ANCHOR,
            ResizeMethods.MULTIPLYING_CURRENT_DIMENSIONS_BY, [desiredSize/textsize, desiredSize/textsize]);
    }
}

function scanFile (fullpath)
{
    var file = File(fullpath)
    if (file.open('r') == false)
        return 0;
    var m;
    while (!file.eof)
    {
        m = file.readln().match(/^(\d+(\.\d*)?)( (\d+(\.\d*)?)){5} Tm/);
        if (m)
        {
            file.close();
            return m[1];
        }
    }
    file.close();
    // a reasonable default
    return 10;
}

Ein paar Haftungsausschlüsse:

  1. Dieses Skript geht davon aus, dass Sie EPS-Dateien platzieren, die mit ChemDraw erstellt und genau wie Ihre Beispieldatei gespeichert wurden. Es funktioniert (höchstwahrscheinlich) nicht mit zufälligen EPS.
  2. Es gibt die Größe des ersten Textelements im EPS zurück. Wenn es mehrere verschiedene Größen gibt, wissen Sie sowieso nicht, welche Sie verwenden sollen. Die Texte in Ihrer Datei sind alle gleich – na ja, irgendwie. Die tiefgestellten Zahlen sind etwas kleiner. Wenn Sie wirklich Pech haben, können Sie auf eine Datei stoßen, in der der erste Text tatsächlich hoch- oder tiefgestellt ist; und dann wird diese Größe gemeldet. (Computer tun bekanntlich das, was Sie ihnen sagen, nicht das, was Sie beabsichtigt haben.)
  3. Es wird davon ausgegangen, dass sowohl das Bild als auch das enthaltende Rechteck sicher von der Mitte aus skaliert werden können. Sie werden sehen, dass dies fehlschlägt, wenn Sie nur auf einer Seite etwas abschneiden.

Dies ist ein sehr einfaches Verfahren. Was Sie genau wissen sollten, ist, um wie viel (in Prozent) ein Text von 18pt auf 20pt vergrößert wird.

Messen Sie einfach den Text vor dem Vergrößern (in Pixel oder mm) und messen Sie ihn nach dem Vergrößern. Dann machen Sie eine Berechnung, und dies ist das Verhältnis, mit dem Sie die gesamte Zeichnung vergrößern müssen.