[GastForen Programmierung/Entwicklung AppleScript Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

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

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Braut2
Beiträge gesamt: 40

27. Feb 2007, 17:51
Beitrag # 1 von 11
Bewertung:
(2025 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Muss das Layout in mehreren InDesign Buechern mit mehreren Sprachversionen ueberarbeiten, und alleine die Vorstellung dass ich alle Musterseiten manuell anpassen muss, macht mich ganz krank.

Hat jemand ne schlaue Idee wie sich das ueber ein Script automatisieren lassen kann?
Jede Hilfe wird dankbar angenommen.
X

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Hans Haesler
  
Beiträge gesamt: 5818

27. Feb 2007, 18:40
Beitrag # 2 von 11
Beitrag ID: #421527
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Elisabeth,

welcome back! :-)

Ich nehme an, dass Du die Überarbeitung beim ersten Dokument
vornehmen möchtest und dass ein Script die weiteren Dokumente
an dieses Muster anpassen sollte.

Wie sehen denn die Änderungen aus?

Sende mir doch bitte ein altes Dokument und eine Kopie davon,
welche geändert worden ist. Ich werde dann versuchen, etwas
"schlaues" zu entwickeln.

Gruss, Hans


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Braut2
Beiträge gesamt: 40

28. Feb 2007, 07:34
Beitrag # 3 von 11
Beitrag ID: #421528
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Du bist ein Engel.
Schicke die zwei Dateinen OLD / NEW per Mail.

Arbeite auf verschiedenen Ebenen auch auf den Musterseiten.
Z.zt. hate jede Seite 4 Ebenen, 1 fuer graphische Elemente un d die 3 anderen fuer verschiedene Sprachversioinen.
Damit wird auch die manuelle Anpassung ganz schoen zeitaufwendig.

Also es wære toll, fuer die Anspassung ein Script zu haben, das die alten mit den neuen Musterseiten erstattet.
Es handelt sich bei mir immer om A-Master und B-Master in allen Dokumenten, ausser den Umschlagseiten, die mit einer Musterseite T-Title arbeiten.
Aber diese muessen auch nicht angepasst werden.

Uebrigens, alle Scripte bei denen Du mir sehr geholfen hast, sind regelmaessig im Einsatz. Und jedesmal denke ich dankbar an Dich. Die haben mir meine Arbeit so unglaublich viel leichter gemacht.


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Hans Haesler
  
Beiträge gesamt: 5818

28. Feb 2007, 09:19
Beitrag # 4 von 11
Beitrag ID: #421529
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Elisabeth,

Zitat Du bist ein Engel.


Bin ich sicher nicht. Eher ein Dummkopf, der sich öfters zu weit aus dem Fenster lehnt ... :-)

Danke für die Beispieldateien. Ich habe sie soeben kurz angeschaut und auch eine Idee.
Kann aber nicht vor heute Abend versuchen, sie in ein Script umzusetzen.


Zitat Uebrigens, alle Scripte bei denen Du mir sehr geholfen hast, sind regelmaessig im Einsatz. Und jedesmal denke ich dankbar an Dich. Die haben mir meine Arbeit so unglaublich viel leichter gemacht.


Es freut mich sehr, dies zu hören.

Gruss, Hans


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Hans Haesler
  
Beiträge gesamt: 5818

1. Mär 2007, 07:36
Beitrag # 5 von 11
Beitrag ID: #421530
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Elisabeth,

und hier ist meine Lösung. Sie beruht darauf, dass Du das Musterdokument
mit dem neuen Design geöffnet hast. Und dass sich die anzupassenden
Dokumente in einem Ordner befinden.

Das Script ist nicht kommentiert (Platzmangel). Es funktioniert in groben
Zügen so: nach dem Start wirst Du aufgefordert, den Ordner mit den alten
InDesign-Dokmenten auszuwählen. Dessen Inhalt wird in eine Liste gegeben,
beim geöffneten Dokument wird der Zustand aller Ebenen gespeichert und alle
werden auf "sichtbar" und "nicht gesperrt" gesetzt.

Dann werden der Reihe nach die Dokumente geöffnet. Bei jedem werden zuerst
die Ebenen zugänglich gemacht und alle Objekte der Musterseiten entfernt.
Das Musterdokument wird in den Vordergrund geholt, die Objekte der ersten
Ebene werden ausgewählt und kopiert.

Das aktuelle Zieldokument wird nach vorne geholt, die erste Ebene wird aktiviert,
der Inhalt des Zwischenablage wird an der Originalposition eingesetzt. Das alles
wird wiederholt, bis alle Ebenen behandelt sind.

Der Zustand der Ebenen wird wieder auf den ursprünglichen zurückgesetzt,
das Dokument wird gesichert und geschlossen. Das nächste wird geöffnet
und so weiter.

Ich sende Dir das Script zu und hoffe, dass es dazu beiträgt, dass Du
gesund bleibst. ;-)

Gruss, Hans
Code
tell application "Adobe InDesign CS2" 
  activate
  set docCount to count of documents
  if docCount is 0 then
    display dialog "Bitte das Musterdokument öffnen." buttons ¬
      "OK" default button 1 with icon 2
    error number -128
  else if docCount is greater than 1 then
    display dialog "Nicht mehr als ein Dokument öffnen." buttons ¬
      "OK" default button 1 with icon 2
    error number -128
  end if
  set sourceDoc to document 1
  set targetFolder to (choose folder with prompt ¬
    "Den Ordner mit den InDesign-Dokumenten wählen.") as Unicode text
  set fileList to list folder targetFolder without invisibles
 
  set visibleList1 to {}
  set lockedList1 to {}
 
  set nLayers1 to count of layers of sourceDoc
  repeat with i from 1 to nLayers1
    tell layer i of sourceDoc
      set end of visibleList1 to visible
      set end of lockedList1 to locked
      set {visible, locked} to {true, false}
    end tell
  end repeat
 
  repeat with i from 1 to count of fileList
    set curFile to item i of fileList
    if curFile ends with ".indd" then
      set filePath to targetFolder & curFile
      open file filePath
      set targetDoc to document 1
      set visibleList2 to {}
      set lockedList2 to {}
     
      set nLayers2 to count of layers of targetDoc
      repeat with j from 1 to nLayers2
        tell layer j of targetDoc
          set end of visibleList2 to visible
          set end of lockedList2 to locked
          set {visible, locked} to {true, false}
        end tell
      end repeat
     
      repeat with j from 1 to count of master spreads of targetDoc
        tell master spread j of targetDoc
          try
            delete every page item
          end try
        end tell
        repeat with k from 1 to nLayers1
          try
            set active document to sourceDoc
            set active spread of active window to master spread j of sourceDoc
            set curLayer to layer k of sourceDoc
            select (every page item of master spread j of sourceDoc whose item layer is curLayer)
            copy
            set active document to targetDoc
            set active spread of active window to master spread j of targetDoc
            set active layer of active window to layer k of targetDoc
            paste in place
          end try
        end repeat
      end repeat
     
      repeat with j from 1 to nLayers2
        tell layer j of targetDoc
          set {visible, locked} to {item j of visibleList2, item j of lockedList2}
        end tell
      end repeat
     
      close targetDoc saving yes
     
    end if
  end repeat

  set active document to sourceDoc
  set active spread of active window to spread 1 of sourceDoc
 
  repeat with i from 1 to nLayers1
    tell layer i of document 1
      set {visible, locked} to {item i of visibleList1, item i of lockedList1}
    end tell
  end repeat
 
  display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell



als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Braut2
Beiträge gesamt: 40

1. Mär 2007, 09:45
Beitrag # 6 von 11
Beitrag ID: #421531
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Und Du bist doch ein Engel!

Das Script läuft wie geschmiert. Habe nur den berühmten Interaction Level noch eingebastelt :-)

Leider "greift" das Script doch meine Umschlagseiten für das Buch mit an, die mit andren Musterseiten gesteuert werden.
Das ist nicht so wahnsinnig dramatisch weil ich die ja mit meinen Backup Dateien wieder erstatten kann.

Aber es wäre natürlich toll, wenn man in das Script mit einbauen könnte das nur Musterseiten erstattet werden, die denselben Namen haben wie im Musterdokument.
Hast du ne schlaue Idee für das?

Ich bin Dir auf alle Fälle schon jetzt unglaublich dankbar, das ich die ganzen Dateien nicht per Hand anpassen musste.


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Hans Haesler
  
Beiträge gesamt: 5818

1. Mär 2007, 10:06
Beitrag # 7 von 11
Beitrag ID: #421532
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Elisabeth,

es ist so, dass das Script annimmt, dass alle Dokumente identisch aufgebaut
sind (Anzahl und Reihenfolge der Musterseiten und der Ebenen).

Dokumente, welche nicht behandelt werden sollen, könnte man vorübergehend
aus dem Ordner entfernen. Ein Test des Namens ist möglich. Ich bin aber
nicht sicher, ob dies genügt.

Hier nur der geänderte Abschnitt:
Code
      repeat with j from 1 to count of master spreads of targetDoc 
        if name of master spread j of sourceDoc is name of master spread j of targetDoc then
          tell master spread j of targetDoc
            try
              delete every page item
            end try
          end tell
          repeat with k from 1 to nLayers1
            try
              set active document to sourceDoc
              set active spread of active window to master spread j of sourceDoc
              set curLayer to layer k of sourceDoc
              select (every page item of master spread j of sourceDoc whose item layer is curLayer)
              copy
              set active document to targetDoc
              set active spread of active window to master spread j of targetDoc
              set active layer of active window to layer k of targetDoc
              paste in place
            end try
          end repeat
        end if
      end repeat

Bei mir funktioniert es so. Wenn die Namen nicht übereinstimmen, dann wird
nichts verändert. Nur der Zustand der Ebenen wird wiederhergestellt.

Gruss, Hans


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Braut2
Beiträge gesamt: 40

1. Mär 2007, 10:48
Beitrag # 8 von 11
Beitrag ID: #421533
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es funktioniert auch bei mir :-)

Ich bin Dir so dankbar für Deine Hilfe, das glaubst Du gar nicht!

Nun hoffe ich nur, dass alle die schönen Scripts auch nach dem nächsten Update von InDesign zu CS3 ohne viel Hokus Pokus zum laufen gebracht werden können.
Als Benutzer einer MacBook Pro freue ich mich ja riesig darauf, aber als einer der Scripte benutzt läuft es mir schon jetzt kalt den Rücken runter.


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Hans Haesler
  
Beiträge gesamt: 5818

1. Mär 2007, 10:55
Beitrag # 9 von 11
Beitrag ID: #421534
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Elisabeth,

bitteschön. Ich bin sehr froh, dass es klappt.

Also ... wegen dem Kalt-über-den-Rücken-runter-Laufen:
Du bist nicht allein ...

Gruss, Hans


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Braut2
Beiträge gesamt: 40

1. Mär 2007, 11:53
Beitrag # 10 von 11
Beitrag ID: #421535
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

war leider ein bisschen yu voreilig.
Funktioniert leider doch nicht.

Die If-klausel gibt nun leider immer ein negatives Resultet. Weiß nicht woran das liegt.
Für mich persönlich habe ich aber einen Weg gefunden.

In den Umschlagseiten benutze ich jeweils nur eine Musterseite, auf allen anderen Seiten zwei.
Nun habe ich die Anzahl Musterseiten für sowohl das MusterDokument und das Zieldokument als Variablen definiert und diese dann in der If-Klausel verglichen.
Nicht besonders elegant, aber was solls.


als Antwort auf: [#421526]

Kennt jemand ein Script zum Synchronisieren von Musterseiten in InDesign?

Hans Haesler
  
Beiträge gesamt: 5818

1. Mär 2007, 13:33
Beitrag # 11 von 11
Beitrag ID: #421536
Bewertung:
(2024 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Elisabeth,

das Testen der Anzahl Musterseiten ist bestimmt sicherer (und eleganter ;-),
als die Namen zu vergleichen. Ich hatte ja auch einen Vorbehalt angemeldet.

Für interessierte Mitleser: Zu Beginn war von Büchern die Rede. Ich hatte
auch eine Variante des Scripts entwickelt, mit welcher das Buch angesprochen
wird. Damit wäre es leichter (und eleganter ;-), das Dokument mit den
Umschlagseiten auszuschliessen.

Doch hat mir Elisabeth in einem privaten Austausch gesagt, dass einige
Dokumente auch in anderen Büchern verwendet werden und sie deshalb die
Lösung mit dem Ordner bevorzugt.

Gruss, Hans


als Antwort auf: [#421526]
X

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/