[GastForen Programmierung/Entwicklung AppleScript Boxen benennen und verankern

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Boxen benennen und verankern

Hans Haesler
  
Beiträge gesamt: 5797

5. Aug 2003, 17:03
Beitrag # 1 von 1
Bewertung:
(483 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das folgende Script benutze ich, um im Text eines französischen Restaurant-Führers gewisse Informationen einzusetzen. Es handelt sich um Zeichen in einer speziellen Schrift: Anzahl Kochmützen, Anzahl Bestecke, eine neue Adresse bekommt ein "N", wer bei den Punkten zugelegt hat einen Pfeil, Pictos für verschiedene Angebote wie Parkplatz, Terrasse, Konferenzzimmer, rollstuhlgängig.

Diese Zeichen könnten nur mit grösster Mühe in die danebenstehenden Zeilen (Name des Restaurants, Adresse, Telefon, usw.) eingesetzt werden. Dank der verankerten Box wird man nicht mehr gezwungen, artistische Verrenkungen mit dem Grundlinienversatz vorzunehmen.

Der Haupttext wird ab Datenbank im XPress-Tags-Format exportiert. Die oben erwähnten Infos werden in separate, kleine Dateien geschrieben. Die Nummer aus den Namen dieser Dateien (z.B. "001.TXT") werden beim Export in den Haupttext eingesetzt, ergänzt mit einem Dollar-Zeichen und der Anzahl Kochmützen (= "$0013").

Letztere wird benötigt, weil die Mützen an die Oberlängen des Restaurant-Namens aliniert werden müssen. Am einfachsten gelingt dies mit dem Versatz der ersten Grundlinie. Weil dieser Wert bei jedem Zeichen verschieden ist, müssen 5 Boxen vorbereitet werden. Diese Boxen enthalten alle eine verankerte, benannte Box (z.B. "toq3") und stehen allein auf der ersten Seite. So können sie problemlos adressiert werden.

Der Haupttext wird manuell in die verketteten Boxen geladen. Sämtliche Textattribute sind mit Stilvorlagen definiert und die XPress-Tags werden beim Import korrekt umgesetzt.

Das Script geht die Absätze des Textes durch. Wenn ein Absatz mit einem Dollarzeichen beginnt, wird geprüft, ob die vier nächsten Zeichen in eine Ganzzahl verwandelt werden können. Wenn ja, wird mit den Zeichen 1 bis 3 der Name der Info-Datei zusammengesetzt, z.B. "001.TXT". Das vierte Zeichen ist die Anzahl der Kochmützen. Mit dieser Zahl wird der Name der Textbox zusammengesetzt (z.B. "toq3").

Das Script löscht den Code, setzt die Höhe der entsprechenden Quell-Box auf einen Standard-Wert, lädt den Info-Text in diese Box, stellt die Höhe des Textes fest, verkleinert die Höhe demnach, benennt die Box mit der laufenden Nummer (z.B. "001"), verankert die Box zu Beginn des aktuellen Absatzes und setzt den Namen der Muster-Box zurück (z.B. "toq3").

Das Script ist hier aus Platzgründen gekürzt. Es soll nur den Ablauf zeigen. Ich habe ebenfalls sämtliche Befehle für die Erzeugung und Aktualisierung eines Progress-Balkens (per Dialog Director) entfernt.
---
set folPath to (path to startup disk as string) & "Headers_GM:"
tell document 1 of application "QuarkXPress 4.11"
  tell story 1 of text box "text_1"
    repeat with i from 1 to count of paragraphs
      set okay to 1
      try
        tell paragraph i
          if character 1 = "$" then
            set testVal to text from character 2 to character 5
            repeat with j from 1 to count of testVal
              if character j of testVal is not in "0123456789" then
                set okay to 0
                exit repeat
              end if
            end repeat
            if okay = 1 then
              set aCode to text from character 2 to character 4
              set nToque to character 5
              delete (text from character 1 to character 5)
              set textPath to folPath & aCode & ".TXT"
              my loadText(nToque, textPath)
              my renameBox(nToque, aCode)
              my anchorBox(nToque, i)
              my restoreName(aCode, nToque)
            end if
          end if
        end tell
      end try
    end repeat
  end tell
  display dialog "Fertig." buttons "OK" default button 1 with icon 1
end tell

on loadText(nToque, textPath)
  tell document 1 of application "QuarkXPress 4.11"
    tell page 1
      try
        tell text box ("toq" & nToque)
          set height of bounds to 40
          set story 1 to textPath as alias
          tell story 1
            set bLine to (baseline of line -1) as real
          end tell
          set height of bounds to bLine + 0.8
        end tell
      end try
    end tell
  end tell
end loadText

on renameBox(nToque, aCode)
  tell document 1 of application "QuarkXPress 4.11"
    tell page 1
      try
        tell text box ("toq" & nToque)
          set name to aCode
        end tell
      end try
    end tell
  end tell
end renameBox

on anchorBox(nToque, i)
  tell document 1 of application "QuarkXPress 4.11"
    try
      copy text 1 of text box ("toques" & nToque) to before paragraph i of story 1 of text box "text_1"
    end try
  end tell
end anchorBox

on restoreName(aCode, nToque)
  tell document 1 of application "QuarkXPress 4.11"
    tell page 1
      try
        tell text box aCode
          set name to ("toq" & nToque)
        end tell
      end try
    end tell
  end tell
end restoreName
---
In einem weiteren Thema ("Seitenzahlen-Liste für den Index generieren") wird beschrieben, wie dank dieser verankerten Boxen die Seitenzahlen für den Index zusammengetragen werden können.

Hans Haesler, hsa@ringier.ch
X

Aktuell

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
26.01.2021 - 27.01.2021

Digicomp Academy AG, Zürich oder virtuell
Dienstag, 26. Jan. 2021, 08.30 Uhr - Mittwoch, 27. Jan. 2021, 17.00 Uhr

Kurs

In diesem Advanced-Kurs erlernen Sie weitergehende Methoden im Dokumentenaufbau, der Typografie und im Bereich Layouttechniken. Nach diesem Kurs können Sie strukturierte Dokumente erstellen oder bestehende effizienter anpassen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM2

Veranstaltungen
27.01.2021 - 28.01.2021

Digicomp Academy AG, Bern oder Basel
Mittwoch, 27. Jan. 2021, 08.30 Uhr - Donnerstag, 28. Jan. 2021, 17.00 Uhr

Kurs

Mit After Effects können Sie visuelle Effekte und Animationen für Video, Web, DVD und Blu-Ray erzeugen. In diesem Kurs lernen Sie die Grundlagen kennen und sehen inspirierende Anwendungsbeispiele, die Ihnen helfen, Ihre eigenen Ideen umzusetzen.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AFT

Neuste Foreneinträge


Absätze vor/nach AF suchen

Laser Drucker druckt schwarze Flecken Links und Rechts von Blatt

Gleich Große Icons erstellen

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Langsamer MacMini

Illustrator Skript Übersatztext - Hilfe benötigt

ID CC 2019 und 2020: Crash beim Startvorgang - 2021

Inhalt Textrahmen verbinden

iPhone Farbprofil

Exel ohne leeres Tabellenblatt starten
medienjobs