hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Anonym
Beiträge: 22827
26. Mai 2003, 17:35
Beitrag #1 von 4
Bewertung:
(864 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Seite einfügen in XPress


Halo Scripter,
Folgendes Problem: Ich möchte durch AppleScript neue Seiten in einem XPress-Dokument erzeugen lassen. Die Dokumente um die es geht sind in der Regel nicht mit Doppelseiten angelegt. (Hierzu ist in diesem Forum ja schon eine Lösung vorhanden).
Das Problem ist ich kann z.B. maximal 5 DIN A 4 Seiten nebeneinander im Seitenlayout erstellen lassen. Aber wie bekomme ich die restlichen Seiten ins Dokument?
Ich bin für jeden Lösungsvorschlag dankbar.

Happy scripting
Rainer Top
 
X
Hans Haesler  M  p
Beiträge: 5452
26. Mai 2003, 20:27
Beitrag #2 von 4
Beitrag ID: #418161
Bewertung:
(863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Seite einfügen in XPress


Hallo Rainer,

welcome aboard! Welche Version von QuarkXPress benutzt Du?

Ich bin nicht sicher, ob ich Deine Frage richtig verstehe. Ausgehend von einem nicht-doppelseitigen Dokument mit
einer Seite gelingt es Dir, die vier weiteren Seiten einzufügen. Die sechste Seite hat keinen Platz mehr auf der
ersten Arbeitsfläche. Auch beim manuellen Einfügen. Man muss eine zweite Arbeitsfläche anlegen.

Hier eine erste Lösung. Mit einem Dialog wird die Anzahl der einzufügenden Seiten erfragt. Dann folgt die Repeat-
Schleife. Der Zähler 'i' startet mit dem Wert '1' und wird bei jedem Umgang automatisch um 1 erhöht.
Der Test 'if i mod 5 = 0 then' bedeutet: wenn der Wert von 'i' geteilt durch 5 einen Rest von Null ergibt, dann
füge eine neue Arbeitsfläche ein (und zugleich eine neue Seite). Der Zähler 'ctr' wird um 1 erhöht. Beim nächsten
Umgang ist der Rest nicht mehr Null und die drei Zeilen von 'else' (= sonst) kommen zum Einsatz und fügen eine
Seite am Ende der aktuellen Arbeitsfläche ein:
---
tell document 1 of application "QuarkXPress 4.11"
  set ctr to 1
  set nPages to text returned of (display dialog ¬
    "Wieviele Seiten einfügen?" default answer "9")
  repeat with i from 1 to nPages
    if i mod 5 = 0 then
      make spread at end
      set ctr to ctr + 1
    else
      tell spread ctr
        make page at end
      end tell
    end if
  end repeat
end tell
---
Dies funktioniert gut, hat aber zwei Schwächen. Es wird vorausgesetzt, dass 5 Seiten Platz haben und dass beim Start
nur eine Seite vorhanden ist.

Das folgende Script korrigiert diese Probleme, indem innerhalb der Repeat-Schleife ein 'try wrapper' (also ein
Versuche-Wickel) Fehlermeldungen abfängt und die Weichen entsprechend stellt. Die Arbeitsfläche wird mit '-1'
adressiert. Somit richtet man sich immer an die letzte. Auch wenn eine neue eingefügt ist. Es wird also versucht,
eine Seite einzufügen. Wenn es gelingt: okay. Wenn nicht, wenn die Seite auf der Arbeitsfläche keinen Platz mehr hat,
dann gibt es einen Fehler und der 'on error'-Teil wird ausgeführt: eine neue Arbeitsfläche wird eingefügt.

Die Vorteile sind klar: das Script füllt die Arbeitsflächen mit den Seiten, welche Platz haben. Und wenn z.B. schon
drei Seiten existieren, werden die neuen Seiten einfach angehängt:
---
tell document 1 of application "QuarkXPress 4.11"
  set nPages to text returned of (display dialog ¬
    "Wieviele Seiten einfügen?" default answer "9")
  repeat with i from 1 to nPages
    try
      tell spread -1
        make page at end
      end tell
    on error
      make spread at end
    end try
  end repeat
end tell
---
Ist damit Dein Problem gelöst?

Hans Haesler, hsa@ringier.ch
als Antwort auf: [#418160] Top
 
Anonym
Beiträge: 22827
26. Mai 2003, 22:12
Beitrag #3 von 4
Beitrag ID: #418162
Bewertung:
(863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Seite einfügen in XPress


Hallo Hans,

das ging ja superschnell. Und funktionieren tuts auch noch. (Was anderes habe ich in diesem Forum noch nicht erlebt)
Habe das ganze schon in ein Script eingebaut und ausprobiert.

Ich setze XPress 3.3, 4.11 und 5.01 ein.

Für Deine schnelle Anwort noch mal Danke

Rainer
als Antwort auf: [#418160] Top
 
Hans Haesler  M  p
Beiträge: 5452
27. Mai 2003, 09:01
Beitrag #4 von 4
Beitrag ID: #418163
Bewertung:
(863 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Seite einfügen in XPress


Hallo Rainer,

bitte sehr. Achtung: mit QXP 3.32 gibt es mit dem ersten Script eine Fehlermeldung nach Seite 3 und mit dem
zweiten ist das Ergebnis nicht wie gewünscht (drei Seiten nebeneinander und die restlichen untereinander).

Die Lösung: nicht mehr die Arbeitsfläche adressieren.
---
tell document 1 of application "QuarkXPress 3.32"
  set nPages to text returned of (display dialog ¬
    "Wieviele Seiten einfügen?" default answer "9")
  repeat with i from 1 to nPages
    try
      make page at end
    on error
      make spread at end
    end try
  end repeat
end tell
---

Übrigens 1: Mit QXP 3.32 und für ein "normales" Doppelseiten-Dokument ist es notwendig, den Unterschied zwischen
linken und rechten Seiten zu machen: 'make page at end' für rechte Seiten und 'make spread at end' für linke.
Der Test 'if i mod 2 = 0' erlaubt, herauszufinden, ob die aktuelle Zahl gerade oder ungerade ist. Ab QXP 4.04
genügt 'make page at end'. XPress fügt automatisch linke oder rechte Seiten ein.

Übrigens 2: Diese Script-Beispiele sollten mit Tests ausgestattet werden. Ist ein Dokument offen? Kann die Eingabe
des Anwenders in eine Ganzzahl verwandelt werden? Diesen zweiten Punkt werde ich in einem neuen Thema erläutern.

Hans Haesler, hsa@ringier.ch
als Antwort auf: [#418160] Top
 
X