[GastForen Programme Print/Bildbearbeitung QuarkXPress Dokumente aus Quark zusammenführen und Text auf neuer Ebene

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Dokumente aus Quark zusammenführen und Text auf neuer Ebene

aigner
Beiträge gesamt: 202

19. Mai 2011, 16:02
Beitrag # 1 von 5
Bewertung:
(2882 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

ich hab da wieder mal ein spezielles Problem:

erstes Dokument = Text Deutsch auf Ebene 1, Bilder auf Ebene 2 –
(siehe auch Thread #382313 als Vorbereitung was jetzt kommt - geht übrigens sehr gut)

zweites Dokument =Text Englisch auf Ebene "Standard"
drittes Dokument = Franz.... usw.

Kann man die Texte aus dem 3ten bis 17ten Dokument in das 1te Dokument bringen und da auf neue Ebenen (z.B. 3-18).
Der Grund dafür ist ein Sprachwechsel (Schwarzplattenwechsel) für rund 17 Sprachen.


Das Problem ist also, dass in den Fremdsprachendateien nur der Text da ist und man nicht sehen kann ob er richtig zu den Bildern aus dem ersten Dokument steht - Der Kunde hat die Bilder freundlicherweise rausgelöscht.

Erst nach dem Zusammenheben im Ausschiessprogramm sieht man dann u.U. etwas - oder auch nicht. Die Praxis hat gezeigt, dass der Kunde nicht sauber arbeitet und ständig nachkontrolliert werden muss.

Hat jemand eine Idee, wie man das automatisch hinbiegen kann, denn bei 16 x 220 Seiten die einzelnen Textrahmen umheben, damit ein einziges Dokument mit 17 Ebenen vorliegt bereitet mir schon schlaflose Nächte.

Danke vorab für eure Antworten

Gruß
Jörg
X

Dokumente aus Quark zusammenführen und Text auf neuer Ebene

Goar
Beiträge gesamt: 395

19. Mai 2011, 16:56
Beitrag # 2 von 5
Beitrag ID: #471902
Bewertung:
(2867 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jörg,

mein letzter Versuch, per AppleScript zwei XPress-Dokumente anzusprechen liegt einige Jahre zurück und ist fehlgeschlagen. Damals ging es darum, Seitenelemente in ein Dokument mit anderer Seitengeometrie zu übertragen.
Schließlich habe ich es in zwei Schritten getan:
1. die vorhandenen Objekte exportiert;
2. diese Exporte in das neue Dokument importiert.
Das geht allerdings nicht mit bordeigenen Mitteln. Um mit den Texten auch die zugehörigen Rahmen zu exportieren, habe ich die Xtags-Extension von www.emsoftware.com benutzt. Die lässt sich mit AppleScript scripten.

So könnte ich es mir vorstellen:
- Das Script geht durch das dritte Dokument und exportiert mithilfe der Xtags-Extension die Objekte seitenweise z. B. als 03_015.xtg, 03_016.xtg usw.
- Im zweiten Gang nimmt ein anderes Script diese Dateien auf und importiert sie auf die Ebenen und Seiten, die es aus den Dateinamen ausliest, also dritte Ebene, Seiten 15 und 16.

Jetzt bist Du dran – außer jemand hat einen einfacheren Vorschlag.


als Antwort auf: [#471897]

Dokumente aus Quark zusammenführen und Text auf neuer Ebene

-hans-
Beiträge gesamt: 748

20. Mai 2011, 09:37
Beitrag # 3 von 5
Beitrag ID: #471936
Bewertung:
(2817 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
 

Edit:
Sorry, Du hast ja Textfluss zwischen Textboxen ..., habe ich gerade leider nicht beachtet ...

Hallo,

ich hab' das jetzt wirklich nur ganz kurz angetestet ... keinerlei Errorhandling ...

... ausgehend davon, das auf den Quelldokus wirklich nur die Wechseltexte vorhanden sind, sonst nichts ...

QXP 8.1.6
Code
(* 
Quell- und Zieldokument sind geöffnet ... sonst nix ...
Anzahl der Seiten ist identisch ...
Alle (wirklich alle) Elemente der Quellseite werden kopiert ...

*)

property destDoc : "Projekt2" --Name des Zieldokuments

--Namen des Quelldokus ermitteln
tell application "QuarkXPress"
activate
set openDocs to every document
if (count of openDocs) is 2 then
repeat with i from 1 to count of openDocs
set theName to name of item i of openDocs
if theName is not destDoc then my getLayerContent(theName)
end repeat
end if
end tell

--alle Objekte einer Seite des Quelldokus ermitteln und an move2Dest übergeben
on getLayerContent(theName)
tell application "QuarkXPress"
set thePages to every page of document theName
tell document theName
repeat with j from 1 to count of thePages
set actualPage to item j of thePages
set thePageItems to every generic box of actualPage
my move2Dest(thePageItems, theName, j)
end repeat
end tell
end tell
end getLayerContent

-- Falls nicht vorhanden: neuen Layer im Zieldokument erstellen (name = Dokumentname des Quelldokus)
-- alle Objekte der Liste thePageItems auf diese Ebene auf der gleichen Seite kopieren
on move2Dest(thePageItems, theName, pageNbr)
tell application "QuarkXPress"
tell document destDoc

if not (exists layer theName) then
set DestLayer to make layer at beginning with properties {name:theName}
end if
end tell

repeat with f from 1 to count of thePageItems
copy item f of thePageItems to end of layer theName of page pageNbr of document destDoc
end repeat

end tell
end move2Dest



... als Anfang :)

Lieben Gruß

Hans-Gerd


als Antwort auf: [#471897]
(Dieser Beitrag wurde von -hans- am 20. Mai 2011, 09:47 geändert)

Dokumente aus Quark zusammenführen und Text auf neuer Ebene

-hans-
Beiträge gesamt: 748

21. Mai 2011, 13:35
Beitrag # 4 von 5
Beitrag ID: #472039
Bewertung:
(2770 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

ich hätte vllt. einen Ansatz. Wenn ich die Textketten im Quelldokument mit eindeutigen "labeln" (in QXP "name") versehe, dann kann ich sie darüber auch im Zieldokument ansprechen.

Jetzt wird's umständlich ;-) ...

Script 1:
Labelt alle Textboxen eines Quelldokumentes die zu einer Kette gehören. Startbox "1", next text box "1_1", next text box "1_2" ...

Script 2 (Vorpost):
kopiert allen Seitenobjekte vom Quell- ins Zieldokument auf einen Layer mit Namen des Quelldokumentes.

Script 3:
Verkettet alle Textketten eines gewählten Layers im Zieldokument neu.

In meiner einfachen Konstellation hat es funktioniert. QXP 8.1.6

Script 1:
Code
tell application "QuarkXPress" 
activate
tell document 1
set _SB to {}
set _EB to every text box
repeat with i from 1 to count of _EB
set _TB to item i of _EB
if previous text box of _TB is null and box wraps of _TB is true then set end of _SB to _TB
end repeat
my label_TF(_SB)
end tell
end tell

on label_TF(_SB)
repeat with j from 1 to count of _SB
tell application "QuarkXPress"
activate
tell document 1

set the_SB to item j of _SB
set name of the_SB to (j as text)
set counter to 0
my setName(the_SB, j, counter)
end tell
end tell

end repeat

end label_TF

on setName(the_SB, j, counter)
tell application "QuarkXPress"
activate
tell document 1
set counter to counter + 1
set _NB to next text box of the_SB
set name of _NB to (j as text) & "_" & (counter as text)
if next text box of _NB is not null then my setName(_NB, j, counter)
end tell
end tell
end setName


Script 3:
Code
global workLayer 

tell application "QuarkXPress"
activate
tell document 1
set theLayers to name of every layer
set workLayer to item 1 of (choose from list theLayers)
set _TB to every text box of layer workLayer whose name is not null and name does not contain "_"
repeat with i from 1 to count of _TB
set _SB to item i of _TB
set baseName to name of _SB
set _NB to (every text box of layer workLayer whose name is (baseName & "_1"))
set next text box of _SB to item 1 of _NB
set counter to 1
my setTextFlow(item 1 of _NB, counter, baseName)

end repeat
end tell
end tell

on setTextFlow(_aTextBox, counter, baseName)
try
tell application "QuarkXPress"
activate
tell document 1
set counter to counter + 1
set nextBoxList to (every text box of layer workLayer whose name is (baseName & "_" & (counter as text)))
set next text box of _aTextBox to (item 1 of nextBoxList)
my setTextFlow(item 1 of nextBoxList, counter, baseName)

end tell
end tell
end try
end setTextFlow



Liebe Grüße

Hans-Gerd Claßen


als Antwort auf: [#471902]

Dokumente aus Quark zusammenführen und Text auf neuer Ebene

aigner
Beiträge gesamt: 202

24. Mai 2011, 07:33
Beitrag # 5 von 5
Beitrag ID: #472133
Bewertung:
(2678 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin zusammen,


danke -hans-,
da kann ich mir mal die Zeit nehmen und deine Scripte ausführlich testen - Ergebnis hier

Gruß Jörg


als Antwort auf: [#472039]
X