Textänderung in mehr als 600 Grafiken: mit weniger Aufwand im svg-Format

Welche Möglichkeit gibt es, in mehr als 600 Anschlussgrafiken im Mittel je 4 Farbbezeichnungen zu ändern?

Aufgabe

In über 600 Anschlussgrafiken sollen die Farbbezeichnungen der Anschlüsse so geändert werden, dass sie der Norm DIN IEC 60757 entsprechen.

Beispiel vorher:

Anschlussgrafik vor der Bearbeitung
Anschlussgrafik vor der Bearbeitung mit ursprünglicher Farbbezeichnung der Anschlüsse

Beispiel nachher:

Anschlussgrafik nach der Bearbeitung
Anschlussgrafik nach der Bearbeitung mit geänderter Farbbezeichnung der Anschlüsse

Die Grafiken liegen im Format *.eps vor, die in Adobe Illustrator erstellt worden waren.

Wie ändert man mit möglichst wenig Aufwand 600 Grafikdateien?

Dazu drei mögliche Wege.

Möglichkeit 1: Grafikdateien ändern

Jede Grafik im Adobe Illustrator öffnen und die Farbbezeichnungen ändern.

Aufwand: geschätzt einige Minuten pro Grafik (600 Stück).

Möglichkeit 2: Ersetzungsliste erstellen und gesammelt ersetzen

Voraussetzung: alle auftretenden Änderungen sammeln und eine Ersetzungsliste erstellen mit Farbbezeichnung vorher/nachher.

  • Mit einer Adobe Illustrator Aktion alle eps-Dateien öffnen und als svg-Datei exportieren.
  • Mehrere/alle svg-Dateien mit Notepad++ öffnen und mit Suchen-Ersetzen (STRG H) die gesammelten Ersetzungen durchführen.
  • Änderungen in den svg-Dateien prüfen.
  • Mit einer Adobe Illustrator Aktion alle geänderten Dateien öffnen und wieder als eps-Datei abspeichern.

Aufwand: ca. die Hälfte des Aufwands von Möglichkeit 1.

Möglichkeit 3: xsl-Transformation anwenden

Eine xsl-Transformation auf die Dateien anwenden (für xml-Spezialisten).

Voraussetzung: Alle notwendigen Änderungen sammeln und eine Ersetzungsliste erstellen: Farbbezeichnung vorher/nachher.

  • Mit einer Adobe Illustrator Aktion alle eps-Dateien öffnen und als svg-Datei exportieren.
  • xslt-Script erstellen (s. Code), das die Inhalte der svg-Datei kopiert, dabei nach den zu ersetzenden Farbbezeichnungen sucht und diese ersetzt.
  • Dieses xslt-Script über Batch-Aufruf auf alle svg-Dateien anwenden. Eine Liste von Dateinamen, die sich in einem Dateiverzeichnis befinden erhält man hiermit.
  • Die geänderten svg-Dateien prüfen.
  • Mit einer Adobe Illustrator Aktion alle geänderten svg-Dateien öffnen und wieder als eps-Datei abspeichern.

Aufwand: ca. ein Drittel des Aufwandes von Möglichkeit 1.

So sind die Farben in der svg-Datei abgebildet:

<text transform="translate(307.83 421.72)" style="isolation:isolate;font-size:7px;font-family:SICKFranklin-Regular, SICK Franklin">b<tspan x="3.76" y="0" style="letter-spacing:-0.0048828125em">r</tspan><tspan x="6.03" y="0">n</tspan></text>
<text transform="translate(308.81 436.45)" style="isolation:isolate;font-size:7px;font-family:SICKFranklin-Regular, SICK Franklin">wht</text>
<text transform="translate(308.53 451.18)" style="isolation:isolate;font-size:7px;font-family:SICKFranklin-Regular, SICK Franklin">blu</text>

Hier noch der xslt-Code

<!-- erst mal alles Kopieren: Knoten und Attribute -->
<xsl:template match="@* | node()">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>

<!-- die Faelle fuer die Farbersetzungen abfangen und die Farbbezeichnungen austauschen -->
<xsl:template match="text()">
    <xsl:choose>
        <xsl:when test="contains(current(),'brn')">
            <xsl:value-of select="translate(current(),'brn','BN')"/>
        </xsl:when>
        <xsl:when test="contains(current(),'blu')">
            <xsl:value-of select="translate(current(),'blu','BU')"/>
        </xsl:when>
        <xsl:when test="contains(current(),'wht')">
            <xsl:value-of select="translate(current(),'wht','WH')"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="."/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*