[GastForen Programmierung/Entwicklung AppleScript QXP 6.1: Vorsicht, beim Abfragen von Seitennummern

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

QXP 6.1: Vorsicht, beim Abfragen von Seitennummern

Hans Haesler
  
Beiträge gesamt: 5818

4. Apr 2004, 22:11
Beitrag # 1 von 2
Bewertung:
(473 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit früheren XPress-Versionen galt die folgende Konstruktion als zuverlässig.
---
tell document 1 of application "QuarkXPress 6.1"
  tell current box
    set pageNumber to page number of page 1
  end tell
end tell
---
Das Resultat entspricht der Numerierung in der Seitenlayout-Palette.

Wenn die Box aber auf der Montagefläche liegt, dann ist das Resultat '2001' oder höher. Damit kann man prüfen, ob eine Box auf einer Seite steht oder nicht …
---
if pageNumber > 2000 then
display dialog "Dieses Script funktioniert nicht mit Boxen auf der Montagefläche." buttons "OK" default button 1 with icon 0
error number -128
---
… mit einem Dialog das Problem mitteilen und mit dem Befehl 'error number -128' die Ausführung abbrechen.

Das funktioniert gut - auch mit QXP 6.1 - mit Doppelseiten-Layouts. Wenn das 6.1-Layout aber mit Einzelseiten aufgebaut ist und eine Box auf der Montagefläche steht, dann gibt es garantiert Probleme. Im besten Fall ist das Ergebnis nur '1' (statt '2001'). Meistens wird aber XPress unvermittelt beendet, wieder gestartet und die Fehlermeldung "QuarkXPress got an error: Connection is invalid. [-609]" erscheint.

Abhilfe: statt 'page number' den Ausdruck 'index' gebrauchen:
Code
set pageIndex to index of page 1 of current box 

Damit ist das Ergebnis wieder '2001' und XPress stürzt nicht ab.

Hans Haesler <[email protected]>
X

QXP 6.1: Vorsicht, beim Abfragen von Seitennummern

Hans Haesler
  
Beiträge gesamt: 5818

6. Apr 2004, 17:48
Beitrag # 2 von 2
Beitrag ID: #418718
Bewertung:
(472 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
"Erstens ist es komplizierter und zweitens als man denkt." Oder wie lautet der Spruch nun schon wieder?

Wenn zu den Doppel- und Einzelseitenlayouts auch noch die Musterseiten abgedeckt werden sollten, dann gibt es ein Problem: Der Gebrauch von 'index' ist okay bei Doppel- und Einzelseiten, aber bei Musterseiten gibt es einen Crash. Aber mit Musterseiten kann man 'page number' verwenden, was wie schon erwähnt mit Einzelseiten nicht geht.

Was tun? Einen Test einbauen, welcher feststellt, ob Layout- oder Musterseiten angezeigt sind. In eine Variable (hier 'docRef') die entsprechende Objektreferenz geben und in einer zweiten (hier 'isDoc') festhalten, ob Layout oder Musterseite. Um die Seitennummer "absturzlos" zu erhalten, kann dann im Handler 'getPageNumber()' jene Form verwendet werden, welche kein Problem verursacht:
---
tell application "QuarkXPress 6.1"
  tell document 1
    -- Die Variable 'docRef' erlaubt, entweder das Layout oder das Musterdokument zu adressieren
    -- und der Zustand von 'isDoc' ermöglicht später, die gefahrlose Formulierung einzusetzen
    set isDoc to 1
    set docRef to object reference
    if masterdoc is true then
      set isDoc to 0
      set docRef to object reference of master document 1 of application "QuarkXPress 6.1"
    end if
  end tell
 
  tell docRef
    set pageNumber to my getPageNumber(isDoc, docRef)
    if pageNumber > 2000 then
      display dialog "Dieses Script funktioniert nicht mit Boxen auf der Montagefläche." buttons "OK" default button 1 with icon 0
      -- mit dem nächsten Befehl wird die Ausführung abgebrochen
      error number -128
    end if
    --
    -- der Test ist bestanden. Weitere Befehle hier einfügen.
    --
  end tell
end tell

on getPageNumber(isDoc, docRef)
  tell application "QuarkXPress 6.1"
    if isDoc = 1 then
      tell docRef
        set pageNumber to index of page 1 of current box
      end tell
    else
      tell docRef
        set pageNumber to page number of page 1 of current box
      end tell
    end if
  end tell
end getPageNumber
---

Hans Haesler <[email protected]>


als Antwort auf: [#418717]

Aktuell

PDF / Print
Wolken_300

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/