Hallo Christoph,
ist ein wenig tricky.
Ich versuch's mal so zu erklären:
Das Greifen der beteiligten InDesign-Dateien würde ich beispielsweise so machen:
var sourceDoc = app.documents.itemByID(app.activeDocument.id);
var targetDoc = app.documents.add();
Dann ist die Zuordnung sonnenklar.
Kommen wir zu den Tabellen im sourceDoc :
table kennt kein parentStory.
Also müssen wir es mit dem
table.parent oder dem
table.parent.parentStory versuchen.
Was der
parent einer Tabelle ist, wird davon bestimmt, ob das Zeichen, das die Tabelle in der Story darstellt sich im Übersatz befindet oder nicht.
Bei Übersatz ist table.parent die
Story.
Kein Übersatz ist table.parent ein
textFrame.
Warum die Schleife rückwärts?
Sollen die Tabellen in umgekehrter Reihenfolge im Ziel erscheinen?
Ich glaube nicht.
Warum sollen die Tabellen von Seite 2 an des Zieldokuments gebaut werden?
Die
add()-Methode von
document erzeugt immer eine Datei mit genau einer Seite. Du generierst in der Schleife immer erst eine Seite mit einem Textrahmen und bewegst dann erst die Tabelle hinein. Seite 1 bleibt unberührt.
Du könntest beispielsweise zunächst die Anzahl der Tabellen ermitteln und dann erst eine neue Datei erstellen, die die genau richtige Anzahl von Seiten hat. Ist nur ein Vorschlag. Weiter unten im Code nicht verfolgt.
Auch:
Wenn Du anstatt dem
move()-Befehl
duplicate() verwendest, brauchst Du nicht in umgekehrter Reihenfolge die eingesammelten Tabellen abarbeiten. Löschen kannst Du alle Tabellen im Quelldokument nach getaner Arbeit durch die Schleife in einem Rutsch. Das hat sich in vielen Fällen bewährt.
Hier mal ein Codevorschlag:
Und Vorsicht beim Erzeugen der geometricBounds in Doppelseitendokumenten. Da kommt's darauf an, wie die Linealeinstellungen sind, ob das wie gewünscht funktioniert.