Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03576.jsonl.gz/2114

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.