[GastForen Programmierung/Entwicklung AppleScript Quark Seiten zerlegen und kopieren!

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

Quark Seiten zerlegen und kopieren!

Alelli
Beiträge gesamt: 20

30. Nov 2007, 15:30
Beitrag # 1 von 11
Bewertung:
(4225 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Scripter,

ich habe da mal ne Frage.

Kann ich mit Apple Script, Quark 7.3 DoppleSeiten zerlegen zu  Einzelseiten?

Oder genauer gesagt, ich müsste den Inhalt jeder Seite in ein neues Einzelseitendokument kopieren und auf Stand bringen.Die Einzelseite in dich ich kopieren möchte hat ein anderes Format in der Höhe.

Danke für Infos.

Gruß Alelli
X

Quark Seiten zerlegen und kopieren!

Hans Haesler
  
Beiträge gesamt: 5826

30. Nov 2007, 16:14
Beitrag # 2 von 11
Beitrag ID: #422154
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alelli,

theoretisch ist es möglich. Doch habe ich sowas zum letzten Mal mit QXP 4.11 versucht. Und das ging nicht immer ohne Abstürze ab, weil eine ziemlich brutale Methode benutzt werden musste. Nämlich mit 'duplicate' die ganze Seite ins zweite Dokument kopieren.

Weil das Originaldokument (hoffentlich) mit gegenüberstehenden Seiten aufgebaut ist, müssen die neuen Seiten auch entsprechend links und rechts liegen.

Ich werde heute Abend ein paar Versuche unternehmen.

Fragen: Welches sind die Formate einer alten und einer neuen Seite? Ist das Dokument kompliziert aufgebaut? Hat es Bilder? Hat es seitenübergreifende Objekte? Laufen Texte von einer Seite auf die andere? Welche Mac-OS-Version benutzest Du?

Gruss, Hans


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Alelli
Beiträge gesamt: 20

30. Nov 2007, 16:37
Beitrag # 3 von 11
Beitrag ID: #422155
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans

danke für die schnelle Antwort.

Ausgangs Doppelseite Breite 420 mm Hoehe 285 mm
Die Seite wo ich rein kopieren muss ist Breite 238 mm Hoehe 297 mm

Ich habe von der Einzelseite eine Linke und eine Rechte Grundseite.
Die Seiten haben Bilder und Texte(wobei einige Textboxen verknüpft und Gruppiert sind.
Eigentlich sollte nichts über den Bund in der mitte laufen.

System MACOS X 10.4.11

Wie würdest Du es denn versuchen?
Box für Box oder eine Seite kopieren und an eine Position im neuen Dokument ein "Pasten"?

Danke für Deine Mühe

Gruß Alelli


Nachtrag:

Hallo Hans,
ich habe eine Lösung gefunden, indem ich alle Boxen einer Seite kopiere und dann in die neue Seite paste.

Jedoch habe ich jetzt ein anderes Problem, und zwar haben die Bilder Schatten (über Quark) in der original Seite und in der kopierten Seite liegt dann hinter jeder Bildbox eine Fläche mit einem 2 Schatten.


Und bei Bildern die einen eingebetteten Pfad haben und vorher auf dem Pfad standen stehen beim Ausschnitt nun auf Objekt.


Gruß Alelli


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Hans Haesler
  
Beiträge gesamt: 5826

1. Dez 2007, 14:45
Beitrag # 4 von 11
Beitrag ID: #422156
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alelli,

das Problem mit dem Schatten verstehe ich nicht. Und jenes mit dem Pfad kann ich nicht nachvollziehen. Wenn ich eine Box, welche ein freigetelltes Bild enthält, von einem Dokument ins andere kopiere, dann wird die Art des Ausschnittes nicht geändert. Dort steht nach wie vor "Eingebetteter Pfad".

Auch wenn Du jetzt anscheinend das manuelle Kopieren vorziehst, hier dennoch eine Scriptlösung (für eventuell daran interessierte Mitleser).

Die brutale Methode, welche es mit QXP 4.11 als einzige Lösung ermöglichte, die Objekte positionsgetreu von einem Dokument ins andere zu kopieren ...
---
tell application "QuarkXPress 7.31"
   duplicate page 1 of document 1 to page 1 of document 2
end tell
---
... funktioniert mit QXP 7.31 nicht mehr. Die Seite wird im ersten Dokument eingefügt.

Für die nachstehende Lösung muss man ein Dokument mit einer linken Seite vorbereiten und eines mit einer rechten Seite. Dann nur das Originaldokument öffnen und das Script starten.

Zu Beginn kommen drei Dialoge. Sie fordern auf, zuerst das Zieldokument "Linke Seite", dann das Zieldokument "Rechte Seite" und den Zielordner auszuwählen.

Das Script geht die Seiten des Dokumentes durch. Bei einer rechten Seite öffnet es das Zieldokument "Rechte Seite", dupliziert alle Boxen der aktuellen Seite auf die leere Seite, sichert das Dokument unter dem Namen "Seite_XX.qxp" und schliesst es wieder. Bei einer linken Seite geschieht entsprechend dasselbe.
---
tell application "QuarkXPress 7.31"
   if not (exists document 1) [color=#0000FF]then
      display dialog[/color] "Das Originaldokument öffnen." buttons "OK" default button 1 with icon 2
      error number -128
   [color=#0000FF]end if
   set[/color] targetLeft to (choose file with prompt "Linkes Zieldokument wählen.") as Unicode text
   set targetRight to (choose file with prompt "Rechtes Zieldokument wählen.") as Unicode text
   set targetFolder to choose folder with prompt "Zielordner wählen."
   repeat with i from 1 to count of pages of document 1
      set pageName to (name of page i of document 1) as integer
      if pageName mod 2 is 0 then
         open targetLeft as alias
      else
         open targetRight as alias
      end if
      try
         duplicate every generic box of page i of document 2 ¬
            to beginning of page 1 of document 1
         set pageNbr to text -2 thru -1 of ("0" & i)
         set filePath to (targetFolder & "Seite_" & pageNbr & ".qxp") as string
         save document 1 in filePath
         close document 1 saving no
      end try
   end repeat
   display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell
---
Wichtig ist, dass die Objekte einer linken Seite auf einer linken Seite landen, sonst stimmt die seitliche Positionierung nicht. Und auch die Grösse sollte erst nachträglich verändert werden.

Gruss, Hans


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Alelli
Beiträge gesamt: 20

3. Dez 2007, 10:59
Beitrag # 5 von 11
Beitrag ID: #422157
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

"Warum kompliziert wenn es auch einfacher geht."

Der Weg den ich beschrieben hatte war nicht manuell sondern das, was ich in meinem Script programmiert hatte.

Bei deiner Lösung ist das Problem mit dem Ausschnitt behoben, jedoch habe ich das Problem mit den Schatten immer noch.(Es sieht so aus als ob in der Zielseite 2 Schatten sind, wenn ich der Box den Schatten entziehe ist immer noch einer da.)
Teilweise gehen mir auch Gruppierungen verloren.
Hast Du noch eine Idee woran das liegen könnte?

Gibt es vielleicht bei Quark 7.3.1 die Möglichkeit die Schatten per AppleScript zu setzen?



Danke für Deine Hilfe.

Gruß Alelli


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Hans Haesler
  
Beiträge gesamt: 5826

3. Dez 2007, 11:26
Beitrag # 6 von 11
Beitrag ID: #422158
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alelli,

rätselhaft, diese Schattenboxen ... So aus der Ferne unmöglich zu beurteilen. Würdest Du mir bitte ein Dokument zustellen, damit ich sehen (und fühlen) kann, worum es sich handelt?

Ich werde Dir eine E-Mail schicken, auf welche Du antworten kannst (weil über die Forumadresse keine Datei angehängt werden kann).

Gruss, Hans


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Hans Haesler
  
Beiträge gesamt: 5826

3. Dez 2007, 14:44
Beitrag # 7 von 11
Beitrag ID: #422159
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alelli,

ja, jetzt verstehe ich, was Dich an den Schatten stört ...

Im Originaldokument sind die Bildboxen mit QuarkXPress-Schlagschatten versehen. Beim Kopieren per Script wird für jeden Schatten zusätzlich ein PICT eingebettet. Diese Box kann zwar nicht richtig ausgewählt, aber immerhin entfernt werden.

Mein erster Gedanke war, im Script eine Schleife einzubauen, in welcher der Pfad der Bilder geprüft wird. Ist dieser null, dann wird die Box entfernt. Das funktioniert. Aber leider allzu gründlich ... Die überflüssigen Schatten werden entfernt. Doch auch leere Boxen. Und ebenfalls die Schlagschatten. Weil diese in einer zählbaren (aber nicht greifbaren) Bildbox stecken.

Neuer Plan: Auf jeder Seite die uniqueIDs der Bildboxen auflisten. Nach dem Kopieren auf dem neuen Dokument eine Schleife durch die Bildboxen machen. Wenn die uniqueID nicht in der Liste ist, dann wird die Box entfernt.
Code
tell application "QuarkXPress 7.31" 
if not (exists document 1) then
  display dialog "Das Originaldokument öffnen." buttons "OK" default button 1 with icon 2
  error number -128
end if
set targetLeft to (choose file with prompt "Linkes Zieldokument wählen.") as Unicode text
set targetRight to (choose file with prompt "Rechtes Zieldokument wählen.") as Unicode text
set targetFolder to choose folder with prompt "Zielordner wählen."
repeat with i from 1 to count of pages of document 1
  tell document 1
  tell page i
    set pageName to name as integer
    set idList to {}
    try
    set idList to uniqueID of every picture box
    end try
  end tell
  end tell
  if pageName mod 2 is 0 then
  open targetLeft as alias
  else
  open targetRight as alias
  end if
  try
  duplicate every generic box of page i of document 2 ¬
    to beginning of page 1 of document 1
  if (count of idList) is not 0 then
    repeat with k from (count of picture boxes) to 1 by -1
    if uniqueID is not in idList then
      try
      delete picture box k
      end try
    end if
    end repeat
  end if
  set pageNbr to text -2 thru -1 of ("0" & i)
  set filePath to (targetFolder & "Seite_" & pageNbr & ".qxp") as string
  save document 1 in filePath
  close document 1 saving no
  end try
end repeat
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell

Jetzt ist das Ergebnis wie erwünscht. Doch gegen den Verlust von Gruppierungen, hingegen, weiss ich kein Mittel.

Zu Deiner Frage: Nein, native XPress-Schlagschatten können nicht per Script erzeugt werden.

Gruss, Hans


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Alelli
Beiträge gesamt: 20

4. Dez 2007, 21:53
Beitrag # 8 von 11
Beitrag ID: #422160
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank für Deine Hilfe.

Ich werde mich morgen wieder mit der Aufgabe beschäftigen,
da ich heute nicht dazu gekommen bin.

Ich melde mich dann noch ob es geklappt hat, gestern hatte das löschen der Schatten mir  alle Bilder gelöscht.

Gibt es per Script auch eine Möglichkeit Quark 7 Dokumente wieder als
Quark 6 Dokumente zu speichern?


Danke!  .-)

Gruß Alelli


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Hans Haesler
  
Beiträge gesamt: 5826

4. Dez 2007, 22:34
Beitrag # 9 von 11
Beitrag ID: #422161
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alelli,

bitteschön.

Wie hattest Du denn die Schattenboxen gelöscht? Mit dem letzten geposteten Script sollten die Bilder erhalten bleiben.

Zum Downgraden von QXP-7-Dokumenten gibt es das Droplet DownGradeTo6_01d.app. Es ist hier erhältlich: http://www.fachhefte.ch / Link "AppleScripts", Ordner "mac_os_x_d" und "qxp_7_x". Das Stuffit-Archiv heisst "DownGradeTo6_X.sit".

Hey, Dir machen anscheinend nur verbotene Sachen Spass! ;-)

Gruss, Hans


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Alelli
Beiträge gesamt: 20

11. Dez 2007, 21:52
Beitrag # 10 von 11
Beitrag ID: #422162
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

leider bin ich erst heute wieder zu meinem Problem gekommen,
aber es funktioniert auch nicht mit der letzten Version von Dir.


Ich habe eine Anpassungen an Deinem Script durchgeführt, weil es bei mir nicht funktionierte.Aber auch danach lief es nicht. Das Script löschte mir alle Bilder.

if (count of idList) is not 0 then
    repeat with k from (count of picture boxes) to 1 by -1
    if uniqueID of picture box k is not in idList then
      try
      delete picture box k
      end try
    end if
    end repeat

Ich habe mir mal die ID vorher und nachher angeschaut,
sobald sich die Boxen auf der neuen Seite befinden haben sie alle eine neue ID.

Gruß Alelli

Danke auch noch für die Style Sheet Info!

Was meintest Du eigentlich mit Dingen die nicht erlaubt sind.


als Antwort auf: [#422153]

Quark Seiten zerlegen und kopieren!

Hans Haesler
  
Beiträge gesamt: 5826

12. Dez 2007, 07:41
Beitrag # 11 von 11
Beitrag ID: #422163
Bewertung:
(4224 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Alelli,

ja, es stimmt, in diesem Fall kann man die uniqueIDs nicht verwenden.

Ich habe es noch damit versucht, die Bildboxen zu benennen. Aber die Schattenkopien erhalten (natürlich) denselben Namen ...

Aber ein letzter Versuch war (fast) erfolgreich: Im Zieldokument eine Schleife durch die Bildboxen. Dabei die 'origin of bounds', also die Position der linken oberen Ecken abfragen. Wenn zweimal hintereinander derselbe Wert kommt, die Box löschen.

Code
tell application "QuarkXPress 7.31" 
if not (exists document 1) then
  display dialog "Das Originaldokument öffnen." buttons "OK" default button 1 with icon 2
  error number -128
end if
set targetLeft to (choose file with prompt "Linkes Zieldokument wählen.") as Unicode text
set targetRight to (choose file with prompt "Rechtes Zieldokument wählen.") as Unicode text
set targetFolder to choose folder with prompt "Zielordner wählen."
repeat with i from 1 to count of pages of document 1
  tell document 1
  tell page i
    set pageName to name as integer
  end tell
  end tell
  if pageName mod 2 is 0 then
  open targetLeft as alias
  else
  open targetRight as alias
  end if
  try
  duplicate every generic box of page i of document 2 ¬
    to beginning of page 1 of document 1
  set oldOrig to {}
  tell document 1
    repeat with k from (count of picture boxes) to 1 by -1
    set curOrig to origin of bounds of picture box k
    if curOrig is oldOrig then
      try
      delete picture box k
      end try
    end if
    set oldOrig to curOrig
    end repeat
  end tell
  set pageNbr to text -2 thru -1 of ("0" & i)
  set filePath to (targetFolder & "Seite_" & pageNbr & ".qxp") as string
  save document 1 in filePath
  close document 1 saving no
  end try
end repeat
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell

Das klappte gut, bis auf ein paar Schattenduplikate, welche ins Dokument "eingebrannt" sind und sich auch manuell nicht entfernen lassen.

Das geschieht in Deinem Testdokument zwar nicht. Dafür sind die Phantomschattenboxen bei den drei kleinen Bildern grösser, als die richtige Bildbox. Deshalb werden sie nicht entfernt.

Und deshalb werden Dir wohl nur noch zwei Möglichkeiten bleiben:
A Das Kopieren/Einsetzen manuell ausführen (es gibt ja den praktischen Menüartikel "An gleicher Stelle einfügen", Option+Umschalt+Befehl+V).
B Das Script ausführen und in den Zieldokumenten die übriggebliebenen Duplikate manuell entfernen.

>Was meintest Du eigentlich mit Dingen die nicht erlaubt sind.

Ach, da hatte ich Dich mit einem anderen Forums-Mitglied verwechselt. Aber das Dokumentzerlegen ist schon verboten genug ...

Gruss, Hans


als Antwort auf: [#422153]
X