[GastForen Programmierung/Entwicklung AppleScript Neue Seite zwischen 2 bestehende einfügen

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

Neue Seite zwischen 2 bestehende einfügen

Gast
Beiträge gesamt:

19. Dez 2002, 18:30
Beitrag # 1 von 10
Bewertung:
(2690 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
einen kleinen artikel in englisch dazu gibts hier:

<a href="http://www.mrbarrett.com/mt/archives/2002_03_29.html" target="_blank">http://www.mrbarrett.com/mt/archives/2002_03_29.html</a>

leider habe ichbis jetzt noch kein lauffähiges update gefunden.

Das Problem scheint bei dem ATI-Resource-Manager der ersten Quicksilver Generation nicht aufzutreten. Tauscht man jedoch die "neuen" Resourcemanager gegen den (funktionierenden) alten aus, bootet das system nicht mehr .....
X

Neue Seite zwischen 2 bestehende einfügen

Gast
Beiträge gesamt:

17. Dez 2002, 23:27
Beitrag # 2 von 10
Beitrag ID: #418004
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

leider kenne ich mich nicht sehr gut (eigentlich garnicht) mit Applescript aus. Meine Frage daher an die Wissenden unter euch:
Wie kann ich per Applescript in ein Dokument an einer bestimmten Stelle eine/mehrere neue Seiten  (Blankos) einfügen. So in etwa: Füge nach Seite 5 2 neue Seiten ein.

Schon einmal Danke im voraus.
Mfg Michael


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Hans Haesler
  
Beiträge gesamt: 5826

17. Dez 2002, 23:41
Beitrag # 3 von 10
Beitrag ID: #418005
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

welche Version von QuarkXPress benutzt Du denn? Ich frage dies, damit ich gezielt "üben" kann.
Seit jeher sind solche Operationen als sehr heikel bekannt. Wenn nicht gleich ein Absturz
erfolgte, dann resultierte daraus meistens ein sehr instabiles Dokument. Ich kann mich nicht
erinnern, wann ich dies das letzte Mal versucht habe...

Hans Haesler


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Gast
Beiträge gesamt:

18. Dez 2002, 00:22
Beitrag # 4 von 10
Beitrag ID: #418006
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

erstmal Danke für die schnelle Antwort
Ich verwende Quark 4.11.

Mittlerweile habe ich folgende Zeile zum Funktionieren gebracht:
make new pags at page 2 in document 1
Leider erreiche ich damit noch nicht ganz mein Ziel. DAher hier noch eine etwas weitergende Erläuterung des ganzen Problems:
Mein Dokument hat  ca 100 Seiten, jede Seite hat 6 Textboxen, die miteinander verkettet sind (Also Fließtext über je 6 TBs und 100 Seiten) Das Kapitel fängt mit der Seitenzahl 90 an (=> Seitenzahlen von 90 bis 190) Ich will jetzt nach der 2. Seite (bzw nach Seite 91) eine leere Doppelseite( manchmal auch 2 leere Doppelseiten) einfügen. Nur eben nicht nur an dieser Stelle , sondern auch nach S. 119, 137 ... (unregelmäßig, muß also 'zu Fuß' im AS eingetragen werden). Wenn ich in Quark auf Seite einfügen gehe, gebe ich für den 1. Fall ein: 2 Seiten einfügen nach S. 91 und wähle in dem Menü leere Doppelseite aus).

Ich hoffe, dasi das nicht zu sehr verwirrend war

Michael


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Hans Haesler
  
Beiträge gesamt: 5826

18. Dez 2002, 11:02
Beitrag # 5 von 10
Beitrag ID: #418007
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

wenn echte Doppelseiten eingefügt werden sollen, dann ist es besser, eine
Arbeitsfläche (= spread) einzuschieben. Damit wird zwar nur _eine_ Seite
erzeugt, aber die folgenden werden auf einen Rutsch nach unten geschoben.
Man vermeidet damit, dass die Seiten über das "Rückgrat" wechseln und
wieder zurück, wenn die nächste Seite eingefügt wird:
---
tell document 1 of application "QuarkXPress 4.11"
  make spread at after page 2
  make page at after page 2
end tell
---

Man muss aber unbedingt die gewünschte Musterseite angeben, sonst kann es
geschehen, dass per Script jene Musterseite verwendet wird, welche bei der
letzten _manuellen_ Aktion im Spiel war...

Damit das ganze benutzerfreundlicher wird, sollte per Dialog die Anzahl der
einzufügenden Seiten und die Position erfragt werden. Die Eingabe muss so
aussehen: "2 91". Nur Ziffern und ein Zwischenraum oder ein Komma als Separator.
Die Seitenzahl muss der relativen entsprechen, das heisst jener, welche in der
Layoutpalette erscheint.
---
tell application "QuarkXPress 4.11"
  activate
  set dR to text returned of (display dialog &not;
    "Wieviele Seiten nach welcher Seite einfügen?" default answer "")
  set nPage to (word 1 of dR) as integer
  set prevPage to page number of page (word 2 of dR) of document 1
  tell master document 1
    set masterA to name of spread 1
  end tell
  tell document 1
    repeat with i from 1 to nPage div 2
      make spread at after page prevPage
      set master spread of page (prevPage + 1) to masterA
      set master spread of (make page at after page prevPage) to masterA
    end repeat
  end tell
end tell
---
Dieses Script funktioniert. Man kann 2 oder 4 Seiten einfügen.

Aber: es ist keine Prüfung eingebaut, ob die Eingabe nur Ziffern enthält, ob sie
"vernünftig" ist, das heisst ob die Anzahl Seiten nicht mit jener der Seitenzahl
verwechselt wurde, und ob die angegebene Seite existiert.

Alle diese Tests benötigen voraussichtlich mehr Zeilen als hier Platz haben
(und ich benötige auch etwas Zeit, um sie zu schreiben). Deshalb werde ich Dir
das fertige Script per Mail zustellen. Ich nehme an, dass Du mit unserem neuen
Mitglied 210, Michael Slomski, identisch bist...

Wer Interesse an der ergänzten Version hat, soll sich bitte bei mir melden.

Hans Haesler, <a href="mailto:hsa@ringier.ch">hsa@ringier.ch</a>


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Anonym
Beiträge gesamt: 22827

18. Dez 2002, 15:44
Beitrag # 6 von 10
Beitrag ID: #418008
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans, das wird ja richtig komfortabel. Da hast was gut bei mir. Allerdings werde die Zeilen, die die Seiteninformation (wieviel Seiten und welche) aus einer Filemakerdatenbank generieren werde. Das sollte eigentlich Fehlerfrei sein (Meine Denkfehler natürlich ausgeschlossen

Michael


PS.: Ich weiß nicht, warum meine Postings als anonym erscheinen, ich habe mich doch registriert. Falls du das als Moderator dieser Liste (das bist du doch)? das ändern kannst, dann hast du hiermit meine Erlaubniss dazu)


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Hans Haesler
  
Beiträge gesamt: 5826

18. Dez 2002, 18:04
Beitrag # 7 von 10
Beitrag ID: #418009
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

diesmal hat es ja geklappt! Anonym erscheint, wer sich nicht zu erkennen
geben will. Oder wer vergisst, den Namen und das Passwort einzugeben.
Und gegen beides kann ich leider nichts unternehmen.

Also: die Information kommt aus der Filemakerdatenbank. Nun, wie siehst
Du das Vorgehen? Wirst Du eine Datei exportieren? Und dann die Zahlen
eintippen? Besser wäre, die Textdatei dem Script zugänglich zu machen,
damit Tippfehler ausgeschlossen werden können.

Würdest Du mir bitte eine solche Datei zustellen?

Das Script ist schon recht weit fortgeschritten. Allerdings ist das
Prüfen der Eingabe gar nicht so einfach, weil ich es anwenderfreundlich
gestalten will. Und damit steigt die Gefahr, dass falsche Werte
durchschlüpfen.

Hans Haesler, <a href="mailto:hsa@ringier.ch">hsa@ringier.ch</a>


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Hans Haesler
  
Beiträge gesamt: 5826

19. Dez 2002, 12:40
Beitrag # 8 von 10
Beitrag ID: #418010
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das angekündigte Script ist fertig. Es funktioniert gleich wie die erste
Skizze, hat aber die notwendigen Tests eingebaut: stimmen die Werte? Das
heisst, ist die Anzahl Seiten eine gerade Ganzzahl? Ist die Seite, nach
welcher die Doppelseite eingefügt werden soll, eine ungerade und befindet
sie sich im Bereich des Dokuments? Als Separator kann nun ein beliebiges
Zeichen verwendet werden.

Um eventuelle Bedenken zu zerstreuen: beim Testen mit einem beladenen
100seitigen Dokument hat alles gut geklappt und es wurde auch keiner der
befürchteten Abstürze ausgelöst...

Hans Haesler


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Anonym
Beiträge gesamt: 22827

19. Dez 2002, 13:35
Beitrag # 9 von 10
Beitrag ID: #418011
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
ich hab das Script nun doch per Hand fertig gestellt. Das war schneller, als aus dem vorgegeben Inhaltsverzeichnis (eine Exceldatei) iüberflüssiges/unrelevantes zu löschen, dann das Ganze in Filemaker zu importieren, dort mit Formeln zu hantieren etc.pp
Einen Schönheitsfehler hat das unten aufgeführte Script noch. Ich möchte, das den eingefügten Seiten keine Musterseite zugewiesen wird. Meine Lösung dazu (sicher nicht die eleganteste, aber es hat geklappt) ist, manuell eine leere Musterseite in der Seitenvorschau zu erstellen. Dann nialmmt Quark beim Scriptablauf die zuletzt verwendete Musterseite her (eben 'keine').

Manchmal muß man halt mit einem Mix aus Automatismen und Handarbeit auskommen

Gruß Michael

Hier ein kurzer Auszug:
tell application "QuarkXPress 4.11"
 activate
 
 tell document 1
  set thePage to 92 - 90
  make spread at after page thePage
  make page at after page thePage
  make spread at after page thePage
  make page at after page thePage
 
  set thePage to 98 - 90
  make spread at after page thePage
  make page at after page thePage
--hier weitere Einfügeblöcke

 end tell
end tell 


als Antwort auf: [#418003]

Neue Seite zwischen 2 bestehende einfügen

Hans Haesler
  
Beiträge gesamt: 5826

19. Dez 2002, 18:30
Beitrag # 10 von 10
Beitrag ID: #418012
Bewertung:
(2689 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Michael,

die manuelle Intervention, um eine leere Musterseite zu erhalten ist so schon
möglich. Diese Lösung nutzt den Bug aus, vor welchem ich in meiner zweiten Antwort
gewarnt habe... Zwei Risiken sind dabei: 1. Der Bug könnte gefixt werden (ist eher
unwahrscheinlich); 2. Man muss bei jedem Dokument daran denken, diese Aktion durch-
zuführen. Besser wäre, eine richtige leere Musterseite zu erstellen, zu benennen
und sie so kontrolliert zuzuweisen.

Noch eine Bemerkung: die "Umrechnung" von relativer zu absoluter Seitennummer kann
uns XPress abnehmen. Statt die Formel...
Code
set thePage to 92 - 90 

... zu gebrauchen, bringt diese dasselbe Ergebnis (Vorteil: beim nächsten
Dokument muss pro Befehl nur eine Zahl geändert werden):
Code
set prevPage to page number of page "91" 

Ja, 91, weil dies die Seite ist nach welcher die Arbeitsfläche eingefügt wird.
Und 'prevPage' weil man alle Kombinationen mit 'the' und 'my' vermeiden sollte.
Diese beiden Ausdrücke sind reserviert und wie schnell ist ein Zwischenraum an
der falschen Stelle gelandet...

Hans Haesler

[ Diese Nachricht wurde geändert von: Hans Haesler am 2002-12-19 17:31 ]


als Antwort auf: [#418003]
X