• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[InDesign] Erstellung von Doppelseiten per Script aus vorhandener indd Datei möglich?

N8Jogger

Schöner von Nordhausen
Registriert
16.05.08
Beiträge
324
Hallo,

meine Freundin muss für eine Kundenpräsentation eine InDesign Datei in ein PDM/PIM einbinden um die Funktionalität des integrierten InDesign Servers mit den Betriebseigenen Katalogdaten vorzuführen. Damit das laden und bearbeiten einer InDesign Datei mit mehr als 100MB auf dem Demo-Server beim Kunden (MacMini 2GHz) nicht zum Trauerspiel wird, ist von Kundenseite gestattet die Datei zu Demozwecken in Doppelseiten zu zerlegen; Einzelseiten sind für die Demo nicht geeignet, höchstens Back- und Frontcover.

Ich habe bereits ein Script von Loïc Aigon gefunden, Page Extractor 1.0,
VRm6h.gif

welches in der Lage ist aus einem Dokument beliebige Seiten, oder alles in Einzelseiten, als InDesign Datei zu extrahieren. Dies funktioniert auch sehr gut, doch leider geht als Doppelseite immer nur ein Paar, sprich, Eingabe der gewünschten Seitenzahl von/bis und extrahieren, weiter zur nächsten, Eingabe von/bis und extrahieren. Bei einem Katalog mit mehreren Hundert Seiten ist dieser Vorgang leider sehr umständlich (eigene Erfahrung, da ich es bei einem Katalog bereits erledigt habe ).
Natürlich kann ich als Unterstützung meiner Freundin weiterhin alles händisch erledigen (hm, beim zweiten mal lesen klingt diese Passage irgendwie komisch...), aber da verbringe ich lieber mehr Zeit mit ihr als mit InDesign, zumal ich InDesign nicht so wirklich kenne und bisher nur in der Lage bin Doppelseiten aus einem vorhanden Projekt zu erzeugen.

Wer also ein Script kennt, oder weiss, wie ich das kostenlose Page Extractor umbauen muss um diese Funktion zu erhalten, der möge bitte antworten.
 

NSObject

Braeburn
Registriert
24.04.09
Beiträge
44
hi,

ich habe mich mal dran versucht und ein einfaches AppleScript gebastelt, das bei mir hier die gewünschte Funktion erfüllt

(es geht davon aus, dass das zu bearbeitende Dokument offen ist und an vorderster Stelle deiner Indesign-Dokumente):

Code:
tell application "Adobe InDesign CS3"
	tell document 1
		set spreadcount to count spreads
		set inddpath to file path as string
		set inddfile to full name
	end tell
end tell

-- with timeout of 60 * 60 seconds
repeat with s from 1 to spreadcount
	tell application "Finder"
		set dup to duplicate inddfile
		set dupname to "spread" & s & ".indd"
		set name of dup to dupname
		set dup to file dupname of folder inddpath
	end tell
	get dup
	tell application "Adobe InDesign CS3"
		open dup
		tell document 1
			if s < spreadcount then delete (spreads (s + 1) thru -1)
			if s > 1 then delete (spreads 1 thru (s - 1))
			save
			close
		end tell
	end tell
end repeat
-- end timeout

mögliches Problem: Die Seitennummern gehen verloren, sofern sie im Dokument mit der entsprechenden Variablen erzeigt wurden - da müsste man dann noch ein wenig weiterbasteln und die Seitennummern der nicht gelöschten Spreads neu setzen. Evtl. könnte auch bei sehr großen Dokumenten ein Zeitproblem auftauchen (Ausführung dauert zu lange) - dem könnte man dann mit einem with timout of .. seconds begegnen ...

Ich hoffe, das bringt dich weiter.
 
  • Like
Reaktionen: N8Jogger

N8Jogger

Schöner von Nordhausen
Registriert
16.05.08
Beiträge
324
Hallo NSObject,

danke für Deine Mühe, doch leider liefert Apple Script folgende Fehlermeldung zurück:
Code:
error "„Adobe InDesign CS4“ hat einen Fehler erhalten: „spreads 2 thru -1 of document 1“ 
versteht die Nachricht „delete“ nicht." number -1708 from spreads 2 thru -1 of document 11
Das von Dir erwähnte Problem mit den Seitennummern ist nicht relevant, da bei realen Bedingungen die Datei nicht gesplittet wird, nur in der Demo wird das Splitting eingesetzt um die Präsentationszeit sinnvoller zu verbringen als mit warten auf den InDesign Server.
 

NSObject

Braeburn
Registriert
24.04.09
Beiträge
44
Hallo N8Jogger,

das ist komisch. Ich habe das Skript jetzt auch noch mal mit Indesign CS 4 anhand von zwei doppelseitigen Broschüren getestet und auch da gab's keine Probleme - irgendwas muss an deinem Dokument anders sein, was ich nicht berücksichtigt habe. Wenn Du magst/kannst, könntest du mir ja mal dein Testdokument schicken (ich schreib' Dir ne pm mit meiner Mailadresse). Dann schau ich mir das gerne noch mal an.

Grüße

NSObject

hmmm - klappt leider nicht: .'... möchte oder darf keine Privaten Nachrichten empfangen. Daher kannst du deine Nachricht nicht an diesen Benutzer schicken.'
 

N8Jogger

Schöner von Nordhausen
Registriert
16.05.08
Beiträge
324
So, habe den Anonymen Zirkel temporär verlassen und Dir eine Mail geschickt ;)
 

N8Jogger

Schöner von Nordhausen
Registriert
16.05.08
Beiträge
324
Editieren meines obigen Beitrages geht leider aufgrund der 24 Stunden Sperre nicht mehr, deshalb ein Folgepost von mir:

So, auch noch einmal an dieser Stelle ein Danke an NSObject für die super Arbeit und anbei die fertige Version von ihm welche auch mit großen InDesign Dateien fertig wird.
Damit vielleicht jemand anderem auch damit geholfen wird.

Code:
tell application "Adobe InDesign CS4"
	tell document 1
		set spreadcount to count spreads
		set inddpath to file path as string
		set inddfile to full name
	end tell
end tell

repeat with s from 1 to spreadcount
	tell application "Finder"
		set dup to duplicate inddfile
		set dupname to "spread" & s & ".indd"
		set name of dup to dupname
		set dup to file dupname of folder inddpath
	end tell
	get dup
	tell application "Adobe InDesign CS4"
		open dup
		tell document 1
			delay 10 -- << hier kleine Verzögerung, so dass das Dokument fertig geladen werden kann
			if s < spreadcount then
				delete (spreads (s + 1) thru -1)
			end if
			if s > 1 then
				delete (spreads 1 thru (s - 1))
			end if
			save
			close
		end tell
	end tell
end repeat