[GastForen Programmierung/Entwicklung AppleScript Automatische Numerierung auf Musterseiten

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

Automatische Numerierung auf Musterseiten

Hans Haesler
  
Beiträge gesamt: 5818

8. Apr 2003, 09:27
Beitrag # 1 von 1
Bewertung:
(829 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Per Script Boxen auf Musterseiten zu erzeugen ist nicht so schwierig. Man muss nur die Hierarchie beachten:
'tell application "QuarkXPress 4.11" / tell master document 1 / tell page 1 of spread 1'

Wichtig: beim Ablauf eines Scripts nie die Musterseite anzeigen. Das Resultat wäre: eine Fehlermeldung oder ein Absturz oder ein
Fehlverhalten, wenn man wieder im Dokument ist.

Die Aufgabe: ein neues, doppelseitiges Dokument anlegen und auf der linken und rechten Seite von "A-Muster A" automatische Seiten-
zahlen erzeugen. Das folgende Script kann ausgebaut werden. Es ist bewusst einfach gehalten, damit der Code nicht zu lange wird.
Aus dem gleichen Grund enthält es keine Kommentare. Deshalb zuerst einige Erklärungen.

Zu Beginn wird das Seitenformat wird mit den Variablen 'pWidth' und 'pHeight' bestimmt. Der Vorteil des Gebrauchs von Variablen:
Für ein neues Format muss man nur diese zwei Werte ändern und nicht überall im Script nach der Breite und der Höhe fahnden.

Zwei weitere Variablen werden festgelegt: 1. Der Pfad zum Ordner "Scripting Additions" inklusive Dateiname. 2. Eine Textkette,
welche den Kürzel "Befehl-3" im XPress-Tags-Format bildet. Anschliessend wird versucht, diesen String in die Datei zu schreiben.

Dann wird das 'default document' (das Vorgabedokument) vorbereitet. Es könnten noch mehr Attribute festgelegt werden. Hier sind
es nur die notwendigsten: die Masseinheiten, Doppelseiten, keine automatische Textbox und die Breite und Höhe.

Die Checkbox "Einschließlich Stilvorlagen" des Dialogs "Text laden" wird durch 'set import styles to true' aktiviert. Der Anwender
bekommt diesen Dialog nicht zu sehen. Aber weil die automatische Seitennummer in der Datei "AutoNumber.xtg" im XPress-Tags-Format
ist, muss sichergestellt werden, dass die Checkbox aktiviert ist, damit die Umwandlung vorgenommen wird.

Ein neues Dokument wird erzeugt. Mit 'tell page 1 of spread 1' wird die linke Musterseite von "A-Muster A" adressiert. Eine Textbox
wird erzeugt mit den 'bounds', vier Werte der Positionen der Ränder: {pHeight - 11, 15, pHeight - 5, 45}. Die Werte 1 und 3 sind die
vertikalen Parameter. Ausgehend von der Seitenhöhe werden einmal 11 und einmal 5 mm abgezogen. Dies ergibt eine Boxenhöhe von 6 mm.
Horizontal ist es einfacher: der zweite Wert ist '15' und der vierte '45'. Die Box ist also 30 mm breit.

Anschliessend wird die am Anfang erzeugte Textkette mit 'set properties to {contents:tagsPath as alias...' geladen. Die weiteren
Attribute betreffen die Schriftgrösse (= size:11), die Schrift (= font:"Helvetica") und die Ausrichtung nach links (= justification:
left justified).

Dann wiederholt sich das Ganze für die rechte Seite (= 'tell page 2 of spread 1'). Zwei Unterschiede: für die horizontalen Werte der
Box wird auch die Seitenbreite benötigt, wenn man die Position der Pagina jene der linken Seite spiegeln soll. Und die Ausrichtung
ist logischerweise nach rechts (= justification:right justified).
---
set pWidth to 210
set pHeight to 297
set tagsPath to (path to scripting additions folder as string) & "AutoNumber.xtg"
set aStr to "<\\3>"
try
  open for access file tagsPath with write permission
  set eof of file tagsPath to 0
  write aStr to file tagsPath
  close access file tagsPath
on error
  try
    close access file tagsPath
  end try
end try

tell application "QuarkXPress 4.11"
  activate
  tell default document 1
    set properties to &not;
      {horizontal measures, vertical measures &not;
        , facing pages:true, automatic text box:false &not;
        , page width:pWidth, page height:pHeight}
  end tell
  set import styles to true
  make document at beginning
  tell master document 1
    tell page 1 of spread 1
      make text box at beginning with properties &not;
        {bounds:{pHeight - 11, 15, pHeight - 5, 45}}
      tell text box 1
        tell story 1
          tell paragraph 1
            set properties to {contents:tagsPath as alias, size:11 &not;
              , font:"Helvetica", justification:left justified}
          end tell
        end tell
      end tell
    end tell
    tell page 2 of spread 1
      make text box at beginning with properties &not;
        {bounds:{pHeight - 11, pWidth - 45, pHeight - 5, pWidth - 15}}
      tell text box 1
        tell story 1
          tell paragraph 1
            set properties to {contents:tagsPath as alias, size:11 &not;
              , font:"Helvetica", justification:right justified}
          end tell
        end tell
      end tell
    end tell
  end tell
end tell
---
Man könnte natürlich auch mit einem Dialog die Grösse der Seite erhalten. Vorteil: das Script muss nicht verändert werden. Aber das
gibt erheblich Mehraufwand für den Scripter: die Eingabe muss getestet werden. Sind es zwei Werte? Sind es Zahlen? Liegen sie im
Bereich des Möglichen? Wenn alles stimmt, okay. Sonst muss man den Anwender informieren.

Übrigens: mit 'tell page 1 of spread 2' und 'tell page 2 of spread 2' werden die linken und rechten Seiten von "B-Muster B" adressiert.
Mit QXP 5.01 funktioniert das auch (im Gegensatz zum Erzeugen von Hilfslinien). Aber die Boxen sind nicht sofort sichtbar. Man muss
entweder die Musterseite zuweisen (manuell oder per Script) oder die Musterseite anzeigen und wieder zurück ins Dokument schalten.

Hans Haesler, [email protected]
X

Aktuell

InDesign / Illustrator
axaio_PR_Bild_300x300_10_22

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
01.12.2022

Online
Donnerstag, 01. Dez. 2022, 10.00 - 10.45 Uhr

Webinar

Die drei ColorLogic-Programme ZePrA, CoPrA und ColorAnt sind in neuen Versionen mit vielen neuen Funktionen im Jahr 2022 veröffentlich worden oder werden in Kürze veröffentlicht (ColorAnt 9). In unserem ca. 45 minütigen kostenlosen Webinar zeigen wir Ihnen einige dieser neuen Funktionen mit dem Schwerpunkt auf Automatisierung und Produktivitätssteigerungen.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=311

ColorLogic Update-Webinar ZePrA 10, CoPrA 9 und ColorAnt 9
Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/