[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt In mehreren offenen Dokumenten synchron blättern

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

In mehreren offenen Dokumenten synchron blättern

Martin Fischer
  
Beiträge gesamt: 12732

29. Jan 2011, 12:37
Beitrag # 1 von 4
Bewertung:
(2330 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Heute hatte ich für die Neuauflage eines Buchs Korrekturen in einem Dokument einzuarbeiten und parallel mit einer früheren Version abzugleichen.
Dazu öffnete ich beide Dokumente und sprang jeweils parallel in beiden Dokumenten auf die zu bearbeitende Seite.

Das ging nicht lange so, denn die doppelte Eingabe der Seitenzahl oder das doppelte Blättern fing an zu nerven.

Also habe ich mir ein Set aus drei Skripten gebastelt, mit dem in allen offenen Dokumenten synchron a) auf eine bestimmte Seite gesprungen, b) eine Seite vor- oder c) eine Seite zurückgeblättert werden kann.

a) gehe zu Seite
Code
// gotoPage_everyDoc.jsx 
//DESCRIPTION:»Gehe zu Seite« in allen offenen Dokumenten

var doc = app.documents.firstItem();
var a_page = doc.layoutWindows.firstItem().activePage;
var t_page = prompt('Gehe zu Seite: ', a_page.name);
if (t_page != null)
{
for (var i = 0; i < app.documents.length; i++)
{
if (app.documents.item(i).pages.itemByName(t_page).isValid)
app.documents.item(i).layoutWindows.everyItem().activePage = app.documents.item(i).pages.itemByName(t_page);
else
beep();
}
}


b) eine Seite vor
Code
// nextPage_everyDoc.jsx 
//DESCRIPTION:»Seite vor in allen offenen Dokumenten

var doc = app.documents.firstItem();
var a_page = doc.layoutWindows.firstItem().activePage;
if (a_page.documentOffset +1 < doc.pages.length)
{
var t_page = doc.pages.item(a_page.documentOffset +1).name;
for (var i = 0; i < app.documents.length; i++)
{
if (app.documents.item(i).pages.itemByName(t_page).isValid)
app.documents.item(i).layoutWindows.everyItem().activePage = app.documents.item(i).pages.itemByName(t_page);
else
beep();
}
}
else
alert('Es geht nicht weiter vor.');


c) eine Seite zurück
Code
// previousPage_everyDoc.jsx 
//DESCRIPTION:»Seite zurück« in allen offenen Dokumenten

var doc = app.documents.firstItem();
var a_page = doc.layoutWindows.firstItem().activePage;
if (a_page.documentOffset -1 >= 0)
{
var t_page = doc.pages.item(a_page.documentOffset -1).name;
for (var i = 0; i < app.documents.length; i++)
{
if (app.documents.item(i).pages.itemByName(t_page).isValid)
app.documents.item(i).layoutWindows.everyItem().activePage = app.documents.item(i).pages.itemByName(t_page);
else
beep();
}
}
else
alert('Es geht nicht weiter zurück.');


Die drei Skripte habe ich mir auf Kurztasten gelegt und navigiere damit nun lustig durch alle offenen Dokumente.

Den Zoom habe ich bewusst unberührt gelassen.
Wenn von einem Dokument mehrere Ansichten geöffnet sind, wird in allen Ansichten die Zielseite angezeigt. Das ließe sich auch auf die jeweils erste Ansicht beschränken.

Ist die Zielseite in einem Dokument nicht vorhanden, bleibt dort der Fokus auf der aktuellen Seite stehen.

Vielleicht nützt dieses Set auch dem einen oder der anderen.
X

In mehreren offenen Dokumenten synchron blättern

Quarz
Beiträge gesamt: 3529

29. Jan 2011, 13:45
Beitrag # 2 von 4
Beitrag ID: #463220
Bewertung:
(2305 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Daaanke Martin,

ganz große Klasse :-)))



Gruß
Quarz

----------------------------------------------------------
InDesign CS4 6.06 + CS5 7.03 | Win7/64 Prof.



als Antwort auf: [#463219]

In mehreren offenen Dokumenten synchron blättern

Gerald Singelmann
  
Beiträge gesamt: 6268

29. Jan 2011, 16:59
Beitrag # 3 von 4
Beitrag ID: #463225
Bewertung:
(2279 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen


als Antwort auf: [#463220]

In mehreren offenen Dokumenten synchron blättern

Martin Fischer
  
Beiträge gesamt: 12732

29. Jan 2011, 17:35
Beitrag # 4 von 4
Beitrag ID: #463229
Bewertung:
(2266 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

Antwort auf: erster... ;)


Ach Menne! :-(

Und auch noch so kurz und knackig.
Dabei hatte ich beim Korrigieren meine wahre Freude.

Aber damit bin ich jetzt längst fertig. ;-)


Außerdem gibt es doch einen grundlegenden Unterschied zwischen unseren Skripten (wenn ich Deine Skripte auf die Schnelle richtig verstanden habe):

In Deinen Skripten bildet jeweils der aktuelle Druckbogen der einzelnen Layoutfenster den Bezugspunkt für 'eins vor' bzw. 'eins zurück'.

In meinem Skripten bildet die aktuelle Seite des aktiven Layoutfensters (des ersten Dokuments) den Bezugpunkt dafür. D.h. die anderen Layoutfenster richten sich nach dieser Seite, nicht nach der Seite, die in Ihnen gerade aktiv ist.

Außerdem arbeitet es mit den Namen der Seiten und nicht mit deren Index (documentOffset). Das hat den Vorteil, dass im Prinzip auch mit unterschiedlichen Abschnitten im Dokument gearbeitet werden kann, die in den einzelnen Dokumenten an unterschiedlicher Position stehen können.

Aber das sind Kleinigkeiten, für die es unterschiedliche Vorlieben gibt und die in der Mehrzahl der Andwendungsfälle nicht ins Gewicht fallen dürften.

Jedenfalls ist Dein Code faszinierend knackig.


als Antwort auf: [#463225]
(Dieser Beitrag wurde von Martin Fischer am 29. Jan 2011, 17:36 geändert)
X