Dokumentmethoden.
Dokumentmethoden.
static ItemRef document::alloc(char* path)
Erzeuge eine Referenz auf ein geöffnetes Dokument. Die Dokumente werden über ihren vollständigen Pfad erkannt. Neue Dokumente werden nach dem Namen im Fenstertitel (z.B. "Unbenannt-1") gesucht.
Name | Typ | Default | Beschreibung |
Return | ItemRef | Referenz auf das geöffnete Dokument. Der Rückgabewert muss mit item::release wieder gelöscht werden, wenn er nicht mehr benötigt wird. 0 : Dokument nicht geöffnet | |
path | String oder char* | - | Vollständiger Pfad der Dokumentdatei oder Name des Fensters bei neuen Dokumenten (z.B. "Unbenannt-1"). |
Erzeuge ItemRefs zweier geöffneter Dokumente. Zusammen mit item::define können Sie damit einen Rahmen adressieren, von dem Sie den Dokumentpfad und die UID kennen.
int main () { ItemRef d1 = document::alloc ("$DESKTOP/a1.indd"); ItemRef d2 = document::alloc ("Unbenannt-1");
wlog ("", "a1 : %d\n", item::getint (d1)); item::define (d1, d1, 123); // Frame 123 of a1.indd wlog ("", "Neu : %d\n", item::getint (d2)); item::define (d2, d2, 456); // Frame 456 of Unbenannt-1
return 0; }
Die UID 0 eines ItemRef bezeichnet IMMER ein Dokument. Das Beispiel erzeugt eine ItemRef des Dokumentes des aktuellen Skriptrahmens und zeigt den Dokumentnamen.
int main () { ItemRef docRef = item::alloc (); char docName [4000];
item::define (docRef, gFrame, 0); document::name (docName, docRef); showmessage (docName);
return 0; }
static int document::is_valid(ItemRef docRef)
Zeigt die Referenz auf ein gültiges Dokument?
Name | Typ | Default | Beschreibung |
Return | int | 1 : Die Referenz zeigt auf ein gültiges und geöffnetes Dokument. 0 : Die Referenz ist ungültig und darf nicht als Dokument verwendet werden. |
|
docRef | ItemRef | - | Beliebige Referenz oder 0 |
static ItemRef document::current()
Ermittle das InDesign® Dokument des Skriptes. Die Variable darf nicht gelöscht werden..
Name | Typ | Default | Beschreibung |
Return | ItemRef | Aktuelles InDesign®-Dokument des Skriptes oder 0. |
static ItemRef document::get_front()
Ermittle das aktive Dokument.
Name | Typ | Default | Beschreibung |
Return | ItemRef | Referenz auf das aktuelle Frontdokument. | |
useStatic | int | 0 | Soll für die ermittelte Referenz eine statische Variabale verwendet werden oder soll die Referenz automatisch neu allokiert werden? 0 : Rückgabe neu allokieren. In diesem Fall muß der Rückgabewert mit item::release wieder gleöscht werden! 1 : Interne statische Variable als Rückgabe verwenden. Der Inhalt wird beim nächsten Aufruf der Funktion überschrieben! |
static int document::count()
Wieviele Dokumente sind aktuell geöffnet?
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der geöffneten Dokumente. |
static char* document::get_nth(int n, ItemRef outRef = 0)
Pfad bzw. Name des n-then geöffneten Dokumentes.
Name | Typ | Default | Beschreibung |
Return | char* | Pfad der Dokumentdatei oder Fenstertitel bei neuen Dokumenten
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
n | int | - | 0 basierter Index des Dokumentes |
outRef | ItemRef | 0 | Bei erfolgreicher Ausführung der Funktion enthält die Variable eine Referenz auf das geöffnete Dokkument 0 : Ignorieren> sonst: Mit item::alloc erzeugtes Referenzobjekt |
Hole die Anzahl aller geöffneten Dokumente und schreibe in einer Schleife alle Pfade der geöffneten Dokumente ins Logfile.
int main () { int i; int docs = document::count ();
for (i = 0; i < docs; i++) { wlog ("", "%d : '%s'\n", i+1, document::get_nth (i)); }
return 0; }
static int document::select(ItemRef docRef)
Setze das aktuelle Frontdokument. Da die meisten Skriptfunktionen auf dem aktuellen Frontdokument arbeiten, können Sie mit diesem Aufruf also bewirken, dass Ihr Skript die Bearbeitung in einem anderen Dokument forstsetzt.
Der Aufruf funktioniert auch unter InDesign® Server.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::select_by_name(char* pp)
Setze das aktuelle Frontdokument. Die meisten Skriptfunktionen arbeiten auf dem aktuellen Frontdokument. Mit dem Aufruf können Sie also bewirken, dass ihr Skript die Bearbeitung in einem anderen Dokument forstsetzt. Die Auswahl des Dokumentes erfolgt über seinen Namen bzw. den Dateipfad.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
pp | String oder char* | - | Name, Fenstertitel oder vollständiger Pfad der Datei.
Bei ungesicherten neuen Dokumenten werden nur Dokumentname und Fenstertitel verwendet. Es gilt: Angabe ohne Pfadtrenner : Suche nur nach dem Namen oder Fenstertitel Angabe mit Pfadtrenner : Suche nach dem vollständigen Pfad |
static ItemRef document::create(
float width = -1.0,
float height = -1.0,
int pages = 1,
int pagesPerSpread = 1,
float scale = 1.0,
int left = 0,
int top = 0,
int right = 0,
int bottom = 0,
int columns = 1,
float gutter = 12.0,
int direction = 0,
int restartPageNums = -1,
int bindingDirection = -1,
int intent = -1,
float ml = -1.0,
float mt = -1.0,
float mr = -1.0,
float mb = -1.0,
int startPageNum = -1)
Erzeuge ein neues leeres Dokument.
Name | Typ | Default | Beschreibung |
Return | ItemRef | Referenz auf das neu erzeugte Dokument. Die Referenz wird durch den Aufruf neu allokiert und muß mit item::release wieder gelöscht werden! | |
width | float | -1.0 | Seitenbreite in Punkten ≤ 0.0 : Seitenbreite des aktuellen Dokumentes, wenn kein Dokument geöffnet ist 595.276pt (DIN A4). |
height | float | -1.0 | Seitenhöhe in Punkten ≤ 0.0 : Seitenhöhe des aktuellen Dokumentes, wenn kein Dokument geöffnet ist 841.89 (DIN A4). |
pages | int | 1 | Anzahl der Seiten ≤ 0 : Seitenzahl des aktuellen Dokumentes, wenn kein Dokument geöffnet ist 1. |
pagesPerSpread | int | 1 | Seiten pro Druckbogen ≤ 0 : Seiten pro Druckbogen des aktuellen Dokumentes, wenn kein Dokument geöffnet ist 2. |
scale | float | 1.0 | Skalierung im Dokumentfenster, 1.0 entspricht 100% |
left, top, right, bottom | int | alle 0 | Position und -größe des Dokumentfensters in Pixeln (ACHTUNG : Die Angaben sind Ganzzahlen (int)!). Die Angaben werden nur angewendet, wenn alle vier Werte angegeben sind und left < right und top < bottom. |
columns | int | 1 | Anzahl der Spalten auf den Seiten. ≤ 0 : Anzahl der Spalten der ersten Seite des aktuellen Dokumentes, wenn kein Dokument geöffnet ist 1. |
gutter | float | 12.0 | Spaltenabstand in Punkten. Der Parameter wird nur ausgewertet wenn die Spaltenzahl größer 0 ist. ≤ 0 : Spaltenabstand in der ersten Seite aktuellen Dokumentes, wenn kein Dokument geöffnet ist 12.0. |
direction | int | 1 | Richtung der Dokumentspalten. Der Parameter wird nur ausgewertet wenn die Spaltenzahl größer 0 ist. 0 : Horizontal 1 : Vertikal 2 : Roman 3 : CJK < 0 : Spaltenrichtung der ersten Seite des aktuellen Dokumentes, wenn kein Dokument geöffnet ist 1 (vertikal). |
restartPageNums | int | -1 | Seitennummerierung neu beginnen?
Die Angabe wird nur bei der Verwendeung des Dokumentes in Büchern (siehe book) verwendet. -2 : Einstellung des aktuellen Dokumentes, wenn kein Dokument geöffnet ist ignorieren. -1 : Ignorieren 0 : Nein 1 : Ja |
bindingDirection | int | -1 | Seitenbindung. -2 : Einstellung des aktuellen Dokumentes, wenn kein Dokument geöffnet ist ignorieren. -1 : Ignorieren 0 : Links nach rechts 1 : Rechts nach links 2 : Standardeinstellung von InDesign® |
intent | int | -1 | Zielmedium. Von comet_pdf wird die Angabe ignoriert. -2 : Einstellung des aktuellen Dokumentes, wenn kein Dokument geöffnet ist ignorieren. -1 : ignorieren 0 : Druck 1 : Web 2 : Mobil |
ml, mt, mr, mb | float | alle -1.0 | Seitenränder in Punkten
-1.0 : Standard 36.0 > -1.0 und < 0.0 : Prozentanteil der Seite (0.1 entspricht 10%) ≥ 0.0 : Absolutwert in Punkten |
startPageNum | int | -1 | Mit welcher Sewitennummer soll das Dokument beginnen? -2 : Einstellung des aktuellen Dokumentes, wenn kein Dokument geöffnet ist ignorieren. -1 : Ignorieren > 0 : Seitennummer (1-basiert) |
Das Skript erzeugt ein neues leeres Dokument in der Größe des aktuellen Dokumentes und fügt in dieses Dokument zwei Rahmen ein. Danach wird das Dokument als abc.(indd | w2ml) auf Ihren Desktop gesichert. Das Skript funktioniert für InDesign und comet_pdf.
#include "internal/types.h" #include "internal/text.h"
int main () { ItemRef docRef; ItemRef fr = item::alloc ();
docRef = document::create ( -1.0, -1.0, // size -1, -1, // pages, pagesPerSpread 1.0, 0, 0, 0, 0, // window 1, 12.0, 1, // columns -1, // restart numbering -1, // binding -1, // intent 100.0, -2.0, -2.0, -2.0, // margins -2 // start page num );
document::select (docRef); frame::create (fr, kRectangle, 0.0, 0.0, 200.0, 50.0, 1); frame::color_rgb (fr, 255, 128, 0); frame::replace (fr, "Please work!");
frame::create2 (fr, kRectangle, 0.0, 0.0, 100.0, 100.0, 1); frame::color_rgb (fr, 0, 128, 0);
document::saveas (docRef, "$DESKTOP/abc");
item::release (docRef); item::release (fr);
return 0; }
static ItemRef document::open(
char* path,
float scale = 1.0,
int left = 0,
int top = 0,
int right = 0,
int bottom = 0,
int visibility = 1,
int appendToRecent = 1,
int uiFlags = kSuppressUI,
int parenting = -1)
Öffne ein InDesign®-Dokument. Unter InDesign® Server werden die Parameter zur Sichtbarkeit (ab scale) ignoriert.
Name | Typ | Default | Beschreibung |
Return | ItemRef | Referenz auf das neu erzeugte Dokument, mit item::release zu löschen | |
path | String oder char* | - | Vollständiger Pfad der zu öffnenden Datei. In comet_pdf wird die Endung indd automatisch durch w2ml ersetzt. |
scale | float | 1.0 | Aktuelle Skalierung |
left | int | 0 | Fensterposition |
top | int | 0 | Fensterposition |
right | int | 0 | Fensterposition |
bottom | int | 0 | Fensterposition |
visibility | int | 1 | Soll das Dokument in einem Fenster gezeigt werden? 0 : Nein, nur im Hintergrund öffnen. 1 : Ja. Das Dokument wird zum neuen Vordergrund. Skriptanweisungen, die auf dem Frontdokument arbeiten, verwenden dann dieses Dokument. Ab v4.1 R22423 gilt dieses Verhalten auch für InDesign® Server. |
appendToRecent | int | 1 | Soll die Datei in das Menü Zuletzt verwendete Datei augenommen werden? 0 : Nein 1 : Ja |
uiFlags | int | kSuppressUI | Welche Dialoge sollen bei Bedarf gezeigt werden? kSuppressUI : Alle Dialoge und Progressbalken unterdrücken kMinimalUI : Nur die nötigsten Dialoge zeigen kFullUI : Alle Dialoge und Progressbalken zeigen |
parenting | int | -1 | Wie und wo soll das neue Dokumentfenster erscheinen? InDesign® bietet dazu
die folgenden (undokumentierten) Werte: -1 : Ignoriere die Angabe 0 : InDesign® Default 1 : NewFloatingDock 2 : NewFloatingDock_ObscureRelative 3 : NewFloatingDock_DontObscureRelative 4 : AsSiblingOfRelative 5 : InNewTabGroupFromRelative 6 : InNewPaneFromRelative 7 : AsSiblingToLeftOfRelative 8 : AsRightmostChildOfParent |
Öffne ein Dokument. Warnugen über fehlende Verknüpfugen, Schriften, Farbprofile werden beim Öffnen uterdrückt.
#include "internal/types.h"
int main () { ItemRef doc = document::open ("$DESKTOP/paul.indd", 1.0, 0, 0, 0, 0, 1, 1, kSuppressUI);
return 0; }
Öffne ein Dokument.
#include "internal/types.h"
int main () { ItemRef doc = document::open ("$DESKTOP/paul.indd", 1.0, 0, 0, 0, 0, 1, 1, kFullUI);
return 0; }
static ItemRef document::open_copy(
char* path,
float scale = 1.0,
int left = 0,
int top = 0,
int right = 0,
int bottom = 0,
int visibility = 1,
int appendToRecent = 1,
int uiFlags = kSuppressUI)
Öffne eine Kopie eines InDesign® -Dokumentes. Unter InDesign® Server werden die Parameter zur Sichtbarkeit (ab scale) ignoriert.
Name | Typ | Default | Beschreibung |
Return | ItemRef | Referenz auf das neu erzeugte Dokument, mit item::release zu löschen | |
path | String oder char* | - | Vollständiger Pfad der zu öffnenden Datei. |
scale | float | 1.0 | Aktuelle Skalierung |
left | int | 0 | Fensterposition |
top | int | 0 | Fensterposition |
right | int | 0 | Fensterposition |
bottom | int | 0 | Fensterposition |
visibility | int | 1 | Soll das Dokument in einem Fenster gezeigt werden? 0 : Nein, nur im Hintergrund öffnen. 1 : Ja. Das Dokument wird zum neuen Frontdocument. Skriptanweisungen, die auf dem Frontdokument arbeiten, verwenden dann dieses Dokument. |
appendToRecent | int | 1 | Soll die Datei in das Menü Zuletzt verwendete Datei augenommen werden? 0 : Nein 1 : Ja |
uiFlags | int | kSuppressUI | Welche Dialoge sollen bei Bedarf gezeigt werden? kSuppressUI : Alle Dialoge und Progressbalken unterdrücken kMinimalUI : Nur die nötigsten Dialoge zeigen kFullUI : Alle Dialoge und Progressbalken zeigen |
parenting | int | -1 | Wie und wo soll das neue Dokumentfenster erscheinen? InDesign® bietet dazu
die folgenden (undokumentierten) Werte: -1 : Ignoriere die Angabe 0 : InDesign® Default 1 : NewFloatingDock 2 : NewFloatingDock_ObscureRelative 3 : NewFloatingDock_DontObscureRelative 4 : AsSiblingOfRelative 5 : InNewTabGroupFromRelative 6 : InNewPaneFromRelative 7 : AsSiblingToLeftOfRelative 8 : AsRightmostChildOfParent |
static int document::set_display_name(ItemRef doc, char* name)
Setzt den Anzeigenamen des Dokumentes. Setzt den angezeigten Namen des Dokumentes. Dieser Name wird in InDesign® als Fenstertitel des Dokumentes verwendet und als Vorschlag für den Dateinamen bei Datei -> Speichern unter.
Der Anzeigename ist NICHT der Dateiname. Änderungen des Display-Namens werden nicht ins Dokument übernommen und gehen beim Schließen des Dokumentes verloren.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
doc | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
name | String oder char* | - | Neuer Anzeigename für das Dokumentfenster des Dokumentes |
Setze den Namen des aktuellen Dokumentes
char* newName = "HelloWorld";
document::set_name(gDocument, newName);
static char* document::get_display_name(char* result, ItemRef docRef = 0)
Titel des Dokumentes im Dokumentfenster. Im Standardfall wird als Fenstertitel der Dateiname (oder Unbenannt-N bei neuen Dokumenten) verwendet. Wurde der Fenstertitel mit document::set_display_name geändert, liefert die Funktion den so geänderten Fenstertitel.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter result) | Fenstertitel des Dokumentes Zur besseren Verwendung der Funktion wird result als Rückgabewert verwendet. |
|
result | String oder char* | 0 | Reservierter Speicher für das Ergebnis 0 : [seit v4.3 R33094] Rückgabe in statischer r/o Variable der Script Engine. Die Variable wird darf nicht geändert werden. Beim nächsten Aufruf der Funktion wird der Inhalt überschrieben! |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::is_opened(char* path, ItemRef docRef = 0)
Gibt an, ob ein Dokument geöffnet ist oder nicht.
Name | Typ | Default | Beschreibung |
Return | int | 1, wenn das Dokument geöffnet ist, 0 andernfalls | |
path | String oder char* | - | Vollständiger Pfad der Datei. |
docRef | ItemRef | 0 | Enthält nach erfolgreicher Ausführung die Referenz auf das geöffnete Dokument. Die Variable muss mit item::alloc zuvor allokiert worden sein} |
Das Skript prüft, ob ein Dokument geöffnet ist, wenn nicht, wird es geöffnet. Beachten Sie, dass die Dokumentreferenz vor document::open gelöscht wird, dieser Aufruf legt sie neu an.
ItemRef docRef = item::alloc (); int wasOpened = document::is_opened (path, docRef);
if (!wasOpened) { item::release (docRef); docRef = document::open (path, docRef); }
:
if (wasOpened) document::close(docRef);
static int document::can_save(ItemRef docRef = 0)
Kann das gegebene Dokument gesichert werden? Die Funktion prüft, ob ein Dokument eine existierende Datei zeigt.
Geöffnete und unveränderte Dokumente der aktuellen InDesign-Version können gesichert werden!
Name | Typ | Default | Beschreibung |
Return | int | 1 : Geöffnetes Dokument der aktuellen InDesign-Version. Das Dokument kann zum Zeitpunkt der Abfrage unverändert sein! 0 : Das Dokument zeigt eine der folgenden Dateien:
|
|
docRef | ItemRef | 0 | Verweis auf ein geöffnetes Dokument 0 : Skriptdokument bzw. aktuelles Front-Dokument, wenn das Skript kein Dokument hat. |
Prüfe, ob das aktuelle Dokument gesichert werden kann.
int main () { if (document::can_save ()) wlog ("", "Das aktuelle Dokument kann gesichert werden.\n"); else wlog ("", "Das aktuelle Dokument hat keinen Dateipfad.\n");
return 0; }
static int document::close(
ItemRef docRef,
int saveOnClose = 1,
int uiFlags = kSuppressUI,
int allowCancel = 1,
int mode = kSchedule)
Schließe ein Dokument. Dokumente können beim Schließen eine Vielzahl von Aktionen ausführen. InDesign® schließt Dokumente deshalb immer erst in einer Ruhephase. Mit kProcess können Sie erzwingen, dass Dokumente sofort geschlossen werden - innerhalb eines laufenden Prozesses, z.B. beim Produktaufbau, kann das zum Absturz von InDesign® führen.
[Ab v4.3 R35200] Paletten- und Front Row-Skripte können in eimem Schritt rückgängig gemacht werden. Weil Sichern oder Schließen des aktuellen Skript-Dokumentes die 'Aufzeichnung' der Änderungen beenden würde, lehnt InDesign das Sichern oder Schließen des aktuellen Dokumenten mitunter ab (Fehler 3590). Nach dem Sichern oder Schließen eines Doumentesist ist aber sowieso kein Undo mehr möglich. Sie können in diesen also Fällen auch gut auf die 'Aufzeichnung' verzichten. Schreiben Sie dazu an beliebiger Stelle in einen Kommentar den Hinweis -- Disable Undo -- (in genau dieser Schreibweise!) in ihr Skript.
cScript und Javascript
// -- Disable Undo --
Python
# -- Disable Undo --
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument, das geschlossen werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
saveOnClose | int | 1 | Soll das Dokument vor dem Schließen gesichert werden? 0 : Nicht sichern, Änderungen gehen verloren 1 : Sichern |
uiFlags | int | kSuppressUI | Welche Dialoge sollen bei Bedarf gezeigt werden? kSuppressUI : Alle Dialoge und Progressbalken unterdrücken kMinimalUI : Nur die nötigsten Dialoge zeigen kFullUI : Alle Dialoge und Progressbalken zeigen |
allowCancel | int | 1 | Darf das Schließen abgebrochen werden? Nicht wirksam bei uiFlags kSuppressUI und bei mode kImmediate 0 : Nicht abbrechen 1 : Abbrechen erlaubt |
mode | int | kSchedule | Soll die Datei sofort oder normal geschlossen werden? kSchedule : Datei normal schließen. Die Datei wird geschlossen, wenn InDesign® in den Ruhezustand kommt. kProcess : Jetzt schließen. Das sofortige Schließen von Dokumenten kann zu Problemen von InDesign® führen! kImmediate : seit v4.1 R24666 Sofort schließen. Das ist ein Versuch, die InDesign® -Probleme bei kProcess zu umgehen. Wir können leider nicht versprechen, dass das in jedem Fall funktionieren wird - aber einen Versuch ist es wert. |
static int document::close_by_name(
char* docPath,
int saveOnClose = 1,
int uiFlags = kSuppressUI,
int allowCancel = 1,
int mode = kSchedule)
Schließe ein Dokument über den Dokumentpfad. Dokumente können beim Schließen eine Vielzahl von Aktionen ausführen. InDesign® schließt Dokumente deshalb immer erst in einer Ruhephase. Mit kProcess können Sie erzwingen, dass Dokumente sofort geschlossen werden - innerhalb eines laufenden Prozesses, z.B. beim Produktaufbau, kann das zum Absturz von InDesign® führen.
[Ab v4.3 R35200] Paletten- und Front Row-Skripte können in eimem Schritt rückgängig gemacht werden. Weil Sichern oder Schließen des aktuellen Skript-Dokumentes die 'Aufzeichnung' der Änderungen beenden würde, lehnt InDesign das Sichern oder Schließen des aktuellen Dokumenten mitunter ab (Fehler 3590). Nach dem Sichern oder Schließen eines Doumentesist ist aber sowieso kein Undo mehr möglich. Sie können in diesen also Fällen auch gut auf die 'Aufzeichnung' verzichten. Schreiben Sie dazu an beliebiger Stelle in einen Kommentar den Hinweis -- Disable Undo -- (in genau dieser Schreibweise!) in ihr Skript.
cScript und Javascript
// -- Disable Undo --
Python
# -- Disable Undo --
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docPath | String oder char* | - | Vollständiger Pfad des Dokumentes, das geschlossen werden soll. |
saveOnClose | int | 1 | Soll das Dokument vor dem Schließen gesichert werden? 0 : Nicht sichern, Änderungen gehen verloren 1 : Sichern |
uiFlags | int | kSuppressUI | Welche Dialoge sollen bei Bedarf gezeigt werden? kSuppressUI : Alle Dialoge und Progressbalken unterdrücken kMinimalUI : Nur die nötigsten Dialoge zeigen kFullUI : Alle Dialoge und Progressbalken zeigen |
allowCancel | int | 1 | Darf das Schließen abgebrochen werden? Nicht wirksam bei uiFlags kSuppressUI und bei mode kImmediate 0 : Nicht abbrechen 1 : Abbrechen erlaubt |
mode | int | kSchedule | Soll die Datei sofort oder normal geschlossen werden? kSchedule : Datei normal schließen. Die Datei wird geschlossen, wenn InDesign® in den Ruhezustand kommt. kProcess : Sofort schließen. Das sofortige Schließen von Dokumenten kann zu Problemen von InDesign® führen! kImmediate : seit v4.1 R24666 Sofort schließen. Das ist ein Versuch, die InDesign® -Probleme bei kProcess zu umgehen. Wir können leider nicht versprechen, dass das in jedem Fall funktionieren wird - aber einen Versuch ist es wert. |
static int document::save(
ItemRef docRef,
int uiFlags = kSuppressUI,
int millisec = 0,
int repeat = 0)
Sichere ein Dokument.
InDesign® (alle Versionen von CS bis CS5.5, ...) verhält sich beim Sichern etwas unerwartet. Sie können dieses Verhalten leicht nachstellen : Tippen Sie einige Zeichen in einen nicht zu kurzen Text und ganz schnell im Anschluss daran klicken Sie Command-S für Sichern. Das Dokument wird gesichert - nach kurzer Zeit wird es aber im Fenstertitel wieder als ungesichert dargestellt. Wenn Sie das Fenster schließen wollen, müssen Sie erneut sichern.
Genau dieses Verhalten erhalten Sie aber, wenn Sie in einem Skript erst Text ändern oder einfügen und dann das Dokument sichern wollen : Das Dokument wird zwar gesichert - erscheint dem Benutzer aber weiter als ungesichert. Ein ziemlich misslicher Fall. Sie können das Sichern des Dokumentes deshalb mit der Angabe millisec verzögern lassen. Das Dokument wird dann zur nächsten Idle-Zeit nach der angegebenen Zeitspannne gesichert. Da InDesign® das Dokument nach dem Sichern aber zu einem unbekannten Zeitpunkt in den ungesicherten Modus bringt (das scheint von der Dokumentgröße und der Länge der Texte abzuhängen), können Sie das mit repeat auch mehrmals machen, dann wird nach millisec erneut gesichert. Recht erfolgreich waren unsere Tests mit 300 Millisekunden und 5-8 Wiederholungen.
Wenn Sie das Dokument verzögert sichern, ist es nach dem Aufruf der Funktion natürlich noch ungesichert!
[Ab v4.3 R35200] Paletten- und Front Row-Skripte können in eimem Schritt rückgängig gemacht werden. Weil Sichern oder Schließen des aktuellen Skript-Dokumentes die 'Aufzeichnung' der Änderungen beenden würde, lehnt InDesign das Sichern oder Schließen des aktuellen Dokumenten mitunter ab (Fehler 3590). Nach dem Sichern oder Schließen eines Doumentesist ist aber sowieso kein Undo mehr möglich. Sie können in diesen also Fällen auch gut auf die 'Aufzeichnung' verzichten. Schreiben Sie dazu an beliebiger Stelle in einen Kommentar den Hinweis -- Disable Undo -- (in genau dieser Schreibweise!) in ihr Skript.
cScript und Javascript
// -- Disable Undo --
Python
# -- Disable Undo --
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument, das gesichert werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
uiFlags | int | kSuppressUI | Welche Dialoge sollen bei Bedarf gezeigt werden? kSuppressUI : Alle Dialoge und Progressbalken unterdrücken kMinimalUI : Nur die nötigsten Dialoge zeigen kFullUI : Alle Dialoge und Progressbalken zeigen Von comet_pdf & Illustrator wird der Parameter ignoriert. |
millisec | int | 0 | Verzögert sichern : Zeit in Millisekunden nach dem Start der nächsten Idle-Phase 0 : Ignorieren (also sofort sichern) >0 : Zeitspanne nach Beginn der Idle-Time <0 : Das Dokument wird automatisch in diesen Intervallen gesichert Von comet_pdf & Illustrator wird der Parameter ignoriert. |
repeat | int | 0 | (nur wenn millisec > 0) Anzahl der Versuche, zu sichern Von comet_pdf & Illustrator wird der Parameter ignoriert. |
static int document::saveas(
ItemRef docRef,
char* path,
int uiFlags = kSuppressUI)
Sichere ein Dokument unter einem anderen Namen. Das InDesign®-Fenster, das das angegebene Dokument anzeigt wird geändert und zeigt nach dem Aufruf die neue Datei an!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument, das gesichert werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
path | String oder char* | - | Vollständiger Pfad des neuen Dokumentes.
Die Dateiendung wird von InDesign und comet_pdf automatisch ersetzt/angefügt.
Existiert der Zielordner nicht, wird er automatisch angelegt. Illustrator: Um eine EPS zu erzeugen, verwenden Sie die Endung ".eps". |
uiFlags | int | kSuppressUI | Welche Dialoge sollen bei Bedarf gezeigt werden? kSuppressUI : Alle Dialoge und Progressbalken unterdrücken kMinimalUI : Nur die nötigsten Dialoge zeigen kFullUI : Alle Dialoge und Progressbalken zeigen Von comet_pdf und Illustrator wird der Parameter ignoriert. |
static int document::revert(ItemRef docRef = 0)
Zurück zur letzten gesicherten Version des Dokumentes.
Aufrufe der Funktion können das Dokument schließen und neu öffnen. Verweise wie gFrame, Tabellenreferencen, etc. zeigen nach dem Aufruf auf nicht mehr existierende Objekte und können bei Verwendung zum Absturz von InDesign® führen!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode 1280 : Dokument neu oder nicht verändert Unter comet_pdf hat der Befehl keine Wirkung und gibt, wenn das Dokument gültig ist, 0 zurück. |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static char* document::name(char* result, ItemRef docRef = 0)
Dateiname des aktuellen Dokumentes. Als Eingabe wird ein String erwartet, der über genügend reservierten Speicher (mind. 1024) verfügt, damit das Ergebnis übernommen werden kann. Die Funktion liefert bei neuen ungesicherten Dokumenten kein Ergebnis.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter result) | Zur besseren Verwendung der Funktion wird result als Rückgabewert verwendet. | |
result | String oder char* | - | Reservierter Speicher für das Ergebnis 0 : [seit v4.3 R33094] Rückgabe in statischer r/o Variable der Script Engine. |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole den Namen des aktuellen Dokumentes
char name[256];
showmessage (document::name (name));
static char* document::path9(char* p, ItemRef docRef = 0)
Dateipfad inklusive Dateinamen des aktuellen Dokumentes. Am Mac wird das Ergebnis in der Schreibweise von MacOS 9 mit Laufwerksnamen und ':' als Pfadtrenner zurückgebenen.
Ja! Man sollte es nicht glauben: Das letzte Mac OS 9 gab es vor über 20 Jahren. Aber das InDesign-Menü 'Zuletzt verwendete Dateien' und die Palette 'Verknüpfungen' verwenden ebenso wie (leider, leider) auch das InDesign-SDK noch Mac OS 9 Pfade.
Als Eingabe wird ein String erwartet, der über genügend reservierten Speicher (mind. 1024) verfügt, damit das Ergebnis übernommen werden kann. Die Funktion liefert bei neuen ungesicherten Dokumenten kein Ergebnis.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter p) | Vollständiger MacOS 9 Pfad des aktuellen Dokumentes, Zeiger auf p | |
p | String oder char* | - | Reservierter Speicher für das Ergebnis 0 : [seit v4.3 R33094] Rückgabe in statischer r/o Variable der Script Engine. Die Variable wird darf nicht geändert werden. Beim nächsten Aufruf der Funktion wird der Inhalt überschrieben! |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole den Namen des aktuellen Dokumentes
char p[256];
showmessage (document::path9 (p));
static char* document::path(char* p, ItemRef docRef = 0)
Dateipfad inklusive Dateinamen des aktuellen Dokumentes. Als Eingabe wird ein String erwartet, der über genügend reservierten Speicher (mind. 1024) verfügt, damit das Ergebnis übernommen werden kann. Die Funktion liefert bei neuen ungesicherten Dokumenten kein Ergebnis.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter p) | Vollständiger Pfad des aktuellen Dokumentes, Zeiger auf p | |
p | String oder char* | - | Reservierter Speicher für das Ergebnis 0 : [seit v4.3 R33094] Rückgabe in statischer r/o Variable der Script Engine. Die Variable wird darf nicht geändert werden. Beim nächsten Aufruf der Funktion wird der Inhalt überschrieben! |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole den Pfad des aktuellen Dokumentes
char p[1024];
showmessage (document::path (p));
static char* document::pathX(char* p, ItemRef docRef = 0)
Dateipfad inklusive Dateinamen des aktuellen Dokumentes. Im Pfad sind alle Windows-Pfadtrenner (\) ersetzt durch /. Dieses Format sollte immer dann verwendet werden, wenn die Pfade zur internen Beschreibung (xmlquery, soap, cscript) verwendet werden. Als Eingabe wird ein String erwartet, der über genügend reservierten Speicher (mind. 1024) verfügt, damit das Ergebnis übernommen werden kann. Die Funktion liefert bei neuen ungesicherten Dokumenten kein Ergebnis.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter p) | Vollständiger Pfad des aktuellen Dokumentes, Zeiger auf p | |
p | String oder char* | - | Reservierter Speicher für das Ergebnis 0 : [seit v4.3 R33094] Rückgabe in statischer r/o Variable der Script Engine. Die Variable wird darf nicht geändert werden. Beim nächsten Aufruf der Funktion wird der Inhalt überschrieben! |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole den OS X-Pfad des aktuellen Dokumentes
char p[1024];
showmessage (document::pathX (p));
static char* document::folder(char* p, ItemRef docRef = 0)
Ordner des aktuellen Dokumentes ohne Pfadbegrenzer (: oder /) am Ende. Als Eingabe wird ein String erwartet, der über genügend reservierten Speicher (mind. 1024) verfügt, damit das Ergebnis übernommen werden kann. Die Funktion liefert bei neuen ungesicherten Dokumenten kein Ergebnis.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter p) | Vollständiger Pfad des aktuellen Dokumentes, Zeiger auf p | |
p | String oder char* | - | Reservierter Speicher für das Ergebnis 0 : [seit v4.3 R33094] Rückgabe in statischer r/o Variable der Script Engine. Die Variable wird darf nicht geändert werden. Beim nächsten Aufruf der Funktion wird der Inhalt überschrieben! |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole den Ordnerpfad des aktuellen Dokumentes
char p[1024];
showmessage (document::folder (p));
static char* (char* p, ItemRef docRef = 0)
DEPRECATED! Bitte verwenden Sie statt dessen die Funktion document::path9 und entfernen den Dokumentnamen vom Ergebnis.
static int document::pages(ItemRef doc = 0)
Anzahl der Seiten im Dokument.
Name | Typ | Default | Beschreibung |
Return | int | Seitenanzahl des gegebenen Dokumentes | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Wieviel Seiten hat das aktuelle Dokument?
int p = document::pages ();
static int document::page(ItemRef docRef = 0)
Aktuelle Seite des eines gegebenen Dokumentes.
Um eine Seite zur aktuellen Seite zu machen, müssen Sie mindestens einmal in die Seitenfläche klicken. Ein Rahmen muß dafür nicht ausgewählt sein, aber einfaches Scrollen zur Seitenansicht reicht nicht! In InDesign® Server und comet_pdf ist die aktuelle Dokumentseite undefiniert!
Name | Typ | Default | Beschreibung |
Return | int | 0 : im Fehlerfall sonst : 1-basiert aktuelle Seite des gegebenen Dokumentes Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert. Die Funktion gibt hier immer den Wert 0 zurück. |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole die Seitennummer der aktuell ausgewählten Seite den aktuellen Dokumentes.
int p = document::page ();
static char* document::plugin(char* p)
Name des skriptausführenden Plugins.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter p) | Pluginname (XMLLink) | |
p | String oder char* | - | Reservierter Speicher für das Ergebnis |
Hole den Namen des auführenden Plugins.
char p[1024];
showmessage (document::plugin (p));
static int document::begin_sequence(char* undo_name = 0)
Beende die Undo-Sequenz des Skriptes und beginne eine neue Sequenz. Undo-Sequenzen sind eine Folge von Dokumentänderungen, die mit einem Undo rückgängig gemacht werden können. Jedes Skript wird automatisch in eine Undo-Sequenz eingeschlossen (und kann daher mit einem Undo rückgängig gemacht werden).
Die Länge von Undo-Sequenzen ist durch die für die Dokumentänderungen nötigen Datenmengen begrenzt. Bei sehr langen Skripten oder bei Skripten mit vielen Dokumentänderungen kann es also nötig sein, die aktuelle Sequenz zu beenden und durch eine neue Sequenz fortzusetzen. Die Undo-Sequenz wird automatisch durch einen erneuten Aufruf der Funktion oder durch das Ende des Skriptes beendet.
Unter comet_pdf hat der Aufruf keine Wirkung.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
undo_name | String oder char* | 0 | Name der Sequenz im Menü 0 oder "" : "Skript ausführen" |
static int document::end_sequence()
Beende die Undo-Sequenz des aktuellen Skriptes. Alle weiteren Dokumentänderungen durch das Skript können dann nur noch in Einzelschritten rückgängig gemacht werden.
Die Anweisung sollte nur in Fällen verwendet werden, in denen Sie sicher kein Undo der Dokumentänderungen des Skriptes benötigen. Dann allerdings kann sie die Bearbeitung deutlich beschleunigen. Im Normalfall verwenden Sie die Funktion document::begin_sequence, die die aktuelle Undo-Sequenz ebenfalls beendet - aber gleichzeitig eine neue Sequenz beginnt.
Unter comet_pdf und in Front Row Aktionen hat der Aufruf keine Wirkung.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode |
Exportiere ein Dokument in ein PDF, dass alle Texte des Dokumentes in Pfade umgewandelt sind. Dazu wird zuerst mit Hilfe des Javascript-Befehls text.createOutline salle Buchstaben in Pfade umgewandelt, dann wird exportiert. Danach werden die Pfadumwandlungen wieder rückgängig gemacht. Hinweis: Das ist nur ein Beispiel für Command Sequences. Ein einfacherer Weg zum Export von PDFs mit Buchstaben als Pfaden ist die Option with comet-option outlines:yes des Skriptbefehls pdf_export.
// @@ICONID 533
char jsExportOulinedPDF [] = "\n\ var myDocPath = '$MYPATH';\n\ var myDocName = '$MYNAME';\n\ var myPDFPreset = '$MYPRESET';\n\ \n\ var gOptions = app.comet.ping() + ';-1;';\n\ var inddPath = myDocPath + '/' + myDocName + '.indd';\n\ var pdfPath = myDocPath + '/' + myDocName + '.pdf';\n\ \n\ function main() \n\ {\n\ for (var n = 0; n < app.documents.length; n++)\n\ {\n\ doc = app.documents [n];\n\ \n\ if (doc.saved && File (doc.fullName).fullName == File (inddPath).fullName)\n\ {\n\ var par = doc.stories.everyItem().paragraphs.everyItem().getElements();\n\ var parLen = par.length;\n\ \n\ for (var i = 0; i < parLen; i++)\n\ {\n\ var para = par [i];\n\ try { para.createOutlines(true); } \n\ catch(e) { }\n\ }\n\ try { app.comet.documentGeneratePDF (inddPath, '$MYPRESET', pdfPath, gOptions); }\n\ catch (e) { }\n\ \n\ break;\n\ }\n\ }\n\ }\n\ \n\ app.comet.documentOpen (inddPath, true, gOptions);\n\ app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, 'Generate PDF with Outlined Texts');\n\ ";
int main () { char docPath [512]; char docName [512]; char shortName [512]; String js1 = string::alloc (jsExportOulinedPDF); int seq;
string::replace (js1, "$MYPATH", document::folder (docPath, 0)); string::replace (js1, "$MYNAME", file::shortname (shortName, document::name (docName, 0))); string::replace (js1, "$MYPRESET", "");
seq = document::end_sequence (0); seq = document::open_sequence ("Hola paul");
run_javascript (js1, 0, 1, 0);
document::close_sequence (seq, 1);
return 0; }
static int document::open_sequence(char* name = 0)
Öffne eine Anweisungs-Sequenz. Durch einen nachfolgenden Aufruf von close_sequence können die zwischen den beiden Aufrufen gemachten Dokumentänderungen bestätigt oder wieder rückgängig gemacht werden.
Beachten Sie bitte, dass jeder Aufruf von open_sequence wieder geschlossen werden muß! Sequenzen dürfen geschachtelt aber niemals gemischt werden: Die zuletzt geöffnete Sequenz muß immer zuerst wieder geschlossen werden.
Unter comet_pdf hat der Aufruf keine Wirkung.
Name | Typ | Default | Beschreibung |
Return | int | 0 : Fehler sonst : ID der geöffnenten Sequenz |
|
name | char* | 0 | Name der Sequenz wie er im Undo-Menü von InDesign® gezeigt wird. |
Der Rahmen bekommt zwar einen neuen Text. Aber die orange Farbe wird wieder rückgängig gemacht.
int main () { int seq;
frame::replace (gFrame, "abcde");
seq = document::open_sequence ("Hola paul"); frame::color_rgb (gFrame, 255, 128, 0); document::close_sequence (seq, 0);
return 0; }
static int document::close_sequence(int seqID, int state = 1)
Schließen einer geöffneten Anweisungs-Sequenz und Bestätigen oder Rückgängigmachen der Dokumentänderungen.
Beachten Sie bitte, dass jeder Aufruf von open_sequence wieder geschlossen werden muß! Sequenzen dürfen geschachtelt aber niemals gemischt werden: Die zuletzt geöffnete Sequenz muß immer zuerst wieder geschlossen werden. Jede Sequenz darf nur einmal geschlossen werden.
Unter comet_pdf hat der Aufruf keine Wirkung.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
seqID | int | - | ID der Sequence aus open_sequence |
state | int | 1 | 1 : Änderungen bestätigen 0 : Änderungen rückgängig machen |
Ersetze den Text des Rahmens durch 'abcde'. Danach wird der Rahmen in einer eigenen Sequenz orange gefärbt - aber die Frabänderung wird sofort wieder rückgängig gemacht.
int main () { int seq;
frame::replace (gFrame, "abcde");
seq = document::open_sequence ("Hola paul"); frame::color_rgb (gFrame, 255, 128, 0); document::close_sequence (seq, 0);
return 0; }
static int ()
Bei langen Skriptaktionen kann es vorkommen, dass der intern von InDesign® verwaltete Undo-Speicher überläuft. Nicht unterstützt ab InDesign® CS3. Dann wird automatisch eine Mitteilung gezeigt, dass die Gesamtaktion zu groß ist und nicht rückgängig gemacht werden kann. Diese Mitteilung nützt einem nicht sehr viel - sie stört nur. Ein Aufruf der Funktion bewirkt, dass beim Undo-Speicherüberlauf alle Aktionen bis zu dieser Stelle aufgeräumt werden. Vor dem Aufruf muss document::begin_sequence ausgeführt wurden sein.
Unter comet_pdf hat der Aufruf keine Wirkung.
static int document::load(
DBC dbc,
char* attribute,
char* table_,
int ID,
char* creationPath,
float scale = -1.0,
int left = 0,
int top = 0,
int right = 0,
int bottom = 0,
int appendToRecent = 1)
Erzeuge und öffne ein Dokument aus einem Template der Datenbank. Der erzeugte ItemRef muss vom Skript wieder gelöscht werden. Dokumente können mit store_macro auf der Datenbank hinterlegt werden.
Name | Typ | Default | Beschreibung |
Return | ItemRef | Referenz auf das neu erzeugte Dokument, mit item::release zu löschen!! | |
dbc | DBC | - | Datenbankverbindung (ODBC oder OCI) 0 : aktuelle Datenbankverbindung |
attribute | String oder char* | - | Attributname der Datenbanktabelle, in der das Template hinterlegt ist |
table_ | String oder char* | - | Name der Datenbanktabelle, in die das Template hinterlegt ist |
ID | int | - | ID unter der das Template auf der Datenbank hinterlegt ist |
creationPath | String oder char* | - | Pfad für die erzeugte Datei |
scale | float | 1.0 | Aktuelle Skalierung |
left | int | 0 | Fensterposition |
top | int | 0 | Fensterposition |
right | int | 0 | Fensterposition |
bottom | int | 0 | Fensterposition |
appendToRecent | int | 1 | Soll die Datei in das Menü Zuletzt verwendete Datei augenommen werden? 0 : Nein 1 : Ja |
docRef = document::load (attribute, table_, ID, creationPath [, scale, [, left, top, right, bottom]]);
static int ()
DEPRECATED! Aktualisiere die Darstellung des Dokumentes.
static int document::set_startpage(
int startpage,
int style = 0,
ItemRef docRef = 0)
Setze die Startseite des Frontdokumentes. Neben der Startseite kann auch der Nummerierungsstil (Zahlen, römische Zahlen, Buchstaben) gesetzt werden.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
startpage | int | - | Startseitennummer |
style | int | 0 | Nummerierungstyp 0 : 1, 2, 3, 4, ... 1 : I, II, III, IV, ... 2 : i, ii, iii, iv, ... 3 : A, B, C, D, ... 4 : a, b, c, d, ... Die folgenden Angaben sind erst ab CS2 verfügbar: 5 : 01, 02, 03, ... 6 : 001, 002, 003, ... 7 : 0001, 0002, 0003, ... 8 : Fullwidth (?) 9 : Kanji |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
err_code = document::set_startpage (i, 2);
static int document::store_macro(
DBC dbc,
char* attribute,
char* table_,
int ID,
char* preview = "",
int preview_size = 200,
char* leftPos = 0,
char* topPos = 0,
char* rightPos = 0,
char* bottomPos = 0,
int formatID = 1)
Sichere die aktuelle Rahmenauswahl auf die Datenbank. Das Zielattribut muss ein Blob sein. Ist der Attributname preview nicht leer, wird dort automatisch ein Preview der gesicherten Auswahl abgelegt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
dbc | DBC | - | Zieldatenbank |
attribute | String oder char* | - | Attributname der Datenbanktabelle, in der das Template hinterlegt werden soll |
table_ | String oder char* | - | Name der Datenbanktabelle, in die das Template hinterlegt werden soll |
ID | int | - | ID unter der das Template auf der Datenbank hinterlegt werden soll |
preview | String oder char* | '' | != "" : schreibe ein Preview der Auswahl in das genannte Attribut |
preview_size | int | 200 | Größe des Previews in Pixeln |
leftPos | String oder char* | "" | != "" : Die Box um die Rahmen wird ermittelt und auf die Datenbank geschrieben (links) |
topPos | String oder char* | "" | != "" : Die Box um die Rahmen wird ermittelt und auf die Datenbank geschrieben (oben) |
rightPos | String oder char* | "" | != "" : Die Box um die Rahmen wird ermittelt und auf die Datenbank geschrieben (rechts) |
bottomPos | String oder char* | "" | != "" : Die Box um die Rahmen wird ermittelt und auf die Datenbank geschrieben (unten) |
formatID | int | 1 | In welchem Format soll das Template abgelegt werden? 1: Klassisch (InDesign® -Dokument) 2: Snippet (InDesign® -Snippet) 3: IDML (ab CS4, zur Zeit nicht unterstützt) |
err_code = document::store_macro (dbc, attr, table_, id [, preview [, preview_size]]);
static ItemList document::insert_macro(
DBC dbc,
char* attribute,
char* table_,
int ID,
float x = -1000.0,
float y = -1000.0,
int page = -1,
char* layer = 0,
int id1 = 0,
int id2 = 0,
int id3 = 0,
char* stringid = 0,
int autoLoad = 0,
int classID = 0)
Setze eine datenbank-gesichertes Template in das aktuelle Dokument ein. Es wird geraten, zum Einfügen von Templates die allgemeinere Funktion document::place_items zu verwenden.
Wird der Aufruf in einem Ladenskript eines Platzhalters gemacht, muss sichergestellt werden, dass die neuen Rahmen nur einmal importiert werden. Das ist Aufgabe des Skriptprogrammiers. Macht der Platzhalter nur einen Import, können Sie einfach alle Cometuntergruppen des Rahmens entfernen. Verwenden Sie dazu frame::remove_sub_cometgroups.
Beim Einsetzen von Templates kann aus der gegebenen Template-ID automatisch ermittelt werden, ob entsprechend der aktuellen Zielseite und -position möglicherweise ein anderes Template eingesetzt werden soll, siehe dazu in der Beschreibung der Palette 'Templates' und TemplateID-Skript.
Name | Typ | Default | Beschreibung |
Return | ItemList | Eingefügte Rahmen, muss mit itemlist::release wieder gelöscht werden | |
dbc | DBC | - | Datenbank, auf der das Template hinterlegt ist 0 : Benutze die aktuelle Datenbankverbindung |
attribute | String oder char* | - | Attributname der Datenbanktabelle, in der das Template hinterlegt ist Sind attribute und table leer, wird die Standardquelle für Templates verwendet. Sie müssen dann lediglich die Template-ID angeben. |
table_ | String oder char* | - | Name der Datenbanktabelle, in die das Template hinterlegt ist Sind attribute und table leer, wird die Standardquelle für Templates verwendet. Sie müssen dann lediglich die Template-ID angeben. |
ID | int | - | ID unter der das Template auf der Datenbank hinterlegt ist |
x | float | Originalposition | Seitenrelative Position in Punkten |
y | float | Originalposition | Seitenrelative Position in Punkten |
page | int | Originalseite | Seitenummer auf der das Template platziert werden soll |
layer | String oder char* | Aktueller Layer | Ziellayer, auf der dem Template platziert werden soll |
id1, id2, id3, stringid | int, int, int, char* | 0, 0, 0, "" | Produkt-ID des Objektes, mit dem das Template verknüpft werden soll. Die Id wird ebenfalls im Template-ID Skript des Templates verwendet. Ist id1 = 0, werden die Rahmen des Template nicht neu verlinkt. |
autoLoad | int | 0 | Sollen die Rahmen des eingesetzten Templates verknüpft und geladen werden? 0 : Nein, die Platzhalter werden nicht neu verknüpft. 1 : Ja, Platzhalter verknüpfen, laden und bei Bedarf wiederholende Elemente anlegen. id1 muss in diesem Fall > 0 sein. -1 : seit v3.3.1 R5125 Platzhalter verknüpfen aber nicht laden id1 muss in diesem Fall > 0 sein. |
classID | int | 0 | Nur Platzhalter dieser Klasse verknüpfen, laden und aufbauen 0 : Alle Platzhalter berücksichtigen sonst : Nur Platzhalter mit dieser ClassID berücksichtigen |
items = document::insert_macro (dbc, attr, table_, id [, x, y [, page [, layer]]]);
static ItemList document::place_items(
DataPool pool,
char* attribute,
char* table_,
int ID,
float x = -1000.0,
float y = -1000.0,
int page = -1,
char* layer = "",
int id1 = 0,
int id2 = 0,
int id3 = 0,
char* stringid = 0,
int autoLoad = 0,
int classID = 0,
int addToCometGroup = 1)
Setze ein Datenbank- oder Datei-gesichertes Template in das aktuelle Dokument ein. Ist das Template als Datei gesichert, muss sich die Datei im Datenordner des Pools (datapool::get_files) im Unterordner table_/attribute unter dem Namen ID.indd befinden.
Wird der Aufruf in einem Ladenskript eines Platzhalters gemacht, muss sichergestellt werden, dass die neuen Rahmen nur einmal importiert werden. Das ist Aufgabe des Skriptprogrammiers. Macht der Platzhalter nur einen Import, können Sie einfach alle Cometuntergruppen des Rahmens entfernen. Verwenden Sie dazu frame::remove_sub_cometgroups.
Um Rahmen von InDesign® -Dokumenten oder Snippets zu importieren, die nicht im aktuellen Datenpool liegen verwenden Sie die die Funktion place_indesign.
Beachten Sie bitte, der Rückgabewert der Funktion ist eine Liste (die eben importierten Dokumentrahmen). Wenn Sie diese Liste nicht abholen und wieder freigeben (itemlist::release) wird sie erst zum Skriptende automatisch gelöscht. Bei wiederholten Aufrufen der Funktion können Sie damit eine ganze Menge Speicher belegen.
Beim Einsetzen von Templates kann aus der gegebenen Template-ID automatisch ermittelt werden, ob entsprechend der aktuellen Zielseite und -position möglicherweise eine anderes Templates eingesetzt werden soll, siehe dazu in der Beschreibung der Palette 'Templates'.
Name | Typ | Default | Beschreibung |
Return | ItemList | Eingefügte Rahmen, muss mit itemlist::release wieder gelöscht werden | |
pool | DataPool | - | Datenbank oder Dateistruktur, in der das Template hinterlegt ist 0 : Aktueller Datenpool |
attribute | String oder char* | - | Attributname der Datenbanktabelle, in der das Template hinterlegt ist Sind attribute und table leer, wird die Standardquelle für Templates verwendet. Sie müssen dann lediglich die Template-ID angeben. |
table_ | String oder char* | - | Name der Datenbanktabelle, in die das Template hinterlegt ist t Sind attribute und table leer, wird die Standardquelle für Templates verwendet. Sie müssen dann lediglich die Template-ID angeben. |
ID | int | - | ID unter der das Template auf der Datenbank hinterlegt ist |
x | float | - | Seitenrelative Position in Punkten (1/72 dpi) |
y | float | - | Seitenrelative Position in Punkten (1/72 dpi) |
page | int | - | Seitenummer auf der das Template platziert werden soll -1 : aktuelle Seite Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert. |
layer | String oder char* | "" | Ziellayer, auf der dem Template platziert werden soll 0 oder "" : Hintergrundebene |
id1, id2, id3, stringid | int, int, int, String oder char* | 0, 0, 0, "" | Produkt-Id des Objektes, mit dem das Template verknüpft werden soll. Die Id wird ebenfalls im Template-ID Skript der Templates verwendet. Ist id1 = 0, werden die Platzhalter nicht neu verlinkt. |
autoLoad | int | 0 | Sollen die Rahmen des Templates automatisch neu geladen werden? 0 : Nein 1 : Ja, Rahmen laden und bei Bedarf wiederholende Elemente anlegen. Ist id1 = 0 werden die Platzhalter nicht geladen! |
classID | int | 0 | Nur Platzhalter dieser Klasse verknüpfen, laden und aufbauen, nur bei id1 > 0 0 : Alle Platzhalter berücksichtigen sonst : Nur Platzhalter mit dieser ClassID berücksichtigen |
addToCometGroup | int | 1 | ab Comet3.1 Die Rahmen des Templates werden automatisch zu einer Comet-Gruppe zusammengefasst. Soll diese Gruppe eine Untergruppe des
des aktuellen Skriptrahmens werden? 1 : Ja, aber der Hauptrahmen muss auf dem selben Spread wie das Skriptrahmen liegen. 0 : Nein. Wenn Sie diese Einstellung wählen, bilden die Rahmen des Templates eine eigene unabhängige Cometgruppe. Der Produktaufbau kann in diesem Fall nicht mehr erkennen, dass die Rahmen eigentlich noch zum Produkt gehören. |
Alle Einträge der zweiten Ebene der ausgewählten Produkte werden platziert. Die Produkte müssen Raster und Rasterplatz definiert haben. Ist der Rasterplatz kleiner als der des Vorgängers, wird eine neue Seite angelegt.
#include "internal/text.h" #include "internal/products.h"
int main () { ProductList pl = productlist::get ("selected [level = 2]"); ItemList inserted = 0; int lastElem = 0; int grid, elem, pid; Product p; float left, top; int pnum = page::get (0); char pname[1024]; int cc = 0; float ml, mt, mr, mb;
wlog ("", "# Starting import\n"); progress::start ("Produktaufbau", productlist::length (pl)); page::get_margins (pnum, &ml, &mt, &mr, &mb);
for (p = productlist::first (pl); p; p = productlist::next (pl)) { sprintf (pname, "Produkt %d [%s]", ++cc, product::gets (p, kStringID)); wlog ("", "# ---> Importing %s\n", pname); progress::step (pname, 1);
pid = product::get (p, kPageitemid); grid = product::get (p, kGridid); elem = product::get (p, kElementid);
if (grid <= 0) grid = 2;
//Neue Seite, wenn die Elemente wieder vorn vorne beginnen if (lastElem > elem) { page::create (1, pnum+1); pnum += 1; } lastElem = elem;
left = grid::left (grid, elem); top = grid::top (grid, elem);
inserted = document::place_items ( 0, "", "", product::get (p, kPageitemid), left + ml, top + mt, pnum, "", product::get (p, kID), product::get (p, kID2), product::get (p, kID3), product::gets (p, kStringID), 1);
if (inserted) itemlist::release (inserted); inserted = 0; }
progress::stop (); return 0; }
static ItemList document::place_snippet(
int ID,
float x = -1000.0,
float y = -1000.0,
int page = -1,
char* layer = "",
int id1 = 0,
int id2 = 0,
int id3 = 0,
char* stringid = 0)
Setze ein Snippet in das aktuelle Dokument ein.
Beachten Sie bitte, der Rückgabewert der Funktion ist eine Liste (die eben importierten Dokumentrahmen). Wenn Sie diese Liste nicht abholen und wieder freigeben (itemlist::release) wird sie erst zum Skriptende automatisch gelöscht. Bei wiederholten Aufrufen der Funktion können Sie damit eine ganze Menge Speicher belegen.
Name | Typ | Default | Beschreibung |
Return | ItemList | Eingefügte Rahmen, muss mit itemlist::release wieder gelöscht werden | |
ID | int | - | Template ID. Dieser Parameter ist für zukünftige Erweiterungen der Snippet-Funktionalität vorgesehen und wird derzeit nicht ausgewertet |
x | float | - | Seitenrelative Position in Punkten (1/72 dpi) |
y | float | - | Seitenrelative Position in Punkten (1/72 dpi) |
page | int | - | Seitenummer auf der das Snippet platziert werden soll -1 : aktuelle Seite Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert. |
layer | String oder char* | "" | Ziellayer, auf der dem Snippet platziert werden soll 0 oder "" : Hintergrundebene |
id1 | int | - | Id des Snippets das eingesetzt werden soll. |
id2, id3, stringid | int, int, String oder char* | 0, 0, "" | Weitere Product-Ids des Objektes, diese Parameter werden derzeit nicht ausgewertet. |
static ItemList document::place_indesign(
char* path,
int srcPage,
char* srcLayers,
int cometGroup,
int page,
float x,
float y,
char* layer = "",
int id1 = 0,
int id2 = 0,
int id3 = 0,
char* stringid = 0,
int autoLoad = 0,
int classID = 0,
int addToCometGroup = 1)
Import von Dokumentrahmen aus InDesign® -Dokumenten oder Snippets (inds, idml).
Beachten Sie bitte, der Rückgabewert der Funktion ist eine Liste (die eben importierten Dokumentrahmen). Wenn Sie diese Liste nicht abholen und wieder freigeben (itemlist::release) wird sie erst zum Skriptende automatisch gelöscht. Bei wiederholten Aufrufen der Funktion können Sie damit eine ganze Menge Speicher belegen.
Wird der Aufruf in einem Ladenskript eines Platzhalters gemacht, muss sichergestellt werden, dass die neuen Rahmen nur einmal importiert werden. Das ist Aufgabe des Skriptprogrammiers. Macht der Platzhalter nur einen Import, können Sie einfach alle Cometuntergruppen des Rahmens entfernen. Verwenden Sie dazu frame::remove_sub_cometgroups.
Name | Typ | Default | Beschreibung |
Return | ItemList | Eingefügte Rahmen, muss mit itemlist::release wieder gelöscht werden | |
path | String oder char* | - | Vollständiger Pfad des InDesign® -Dokumentes oder -Snippets |
⇨ Angaben zu den Rahmen, die importiert werden sollen. Snippets werden immer vollständig importiert, die Angaben werden bei Snippets ignoriert. | |||
srcPage | int | - | Dokumentseite, von der die Rahmen importiert werden sollen (1-basiert). 0 : Seitenzahl und Ebenen ignorieren und die Cometgruppe cometGroup verwenden |
srcLayers | String oder char* | - | Mit Leerzeichen getrennte Liste von Ebenennamen (jeweils in Anführungszeichen,
z.B. "\"AAA\" \"BBB\"") : Nur Rahmen dieser Ebenen importieren. "" : Nur Rahmen sichtbarer Ebenen importieren |
cometGroup | int | - | Nur die Rahmen dieser Cometgruppe importieren. Ist eine Seitenzahl größer 0 angegeben,
wird der Parameter ignoriert. 0 : Cometgruppe ignorieren |
⇨ Angaben zur Einfügestelle | |||
page | int | - | Zielseite (1-basiert) |
x | float | - | Seitenrelative Position in Punkten -1000.0 : X-Position des Originales |
y | float | - | Seitenrelative Position in Punkten -1000.0 : Y-Position des Originales |
layer | String oder char* | "" | Ziellayer, auf der dem die Rahmen platziert werden sollen "" : Aktuelle Ebene |
⇨ Angaben zur Verknüpfung | |||
id1, id2, id3, stringid | int, int, int, String oder char* | 0, 0, 0, "" | Product-Id des Objektes, mit dem das Template verknüpft werden soll. Ist id1 = 0, werden die Rahmen nicht neu verlinkt. |
autoLoad | int | 0 | Sollen die Rahmen neu geladen werden? 0 : Nein 1 : Ja, Rahmen laden und bei Bedarf wiederholende Elemente anlegen. Ist id1 = 0 werden die Rahmen nicht neu geladen! |
classID | int | 0 | Nur Platzhalter dieser Klasse verknüpfen, laden und aufbauen 0 : Alle Platzhalter berücksichtigen sonst : Nur Platzhalter mit dieser ClassID berücksichtigen |
addToCometGroup | int | 1 | Sollen die eingefügten Rahmen in Cometgruppen zusammengefasst werden?
|
Importiere die Rahmen der Ebenen 1 und 2 der Seite 3.
int main () { document::place_indesign ( "$DESKTOP/aaa.indd", 3, "\"Ebene 1\" \"Ebene 2\"", 0, 4, 100.0, 100.0); return 0; }
Aus einer InDesign® -Datei soll die Cometgruppe eines Produktes in unser Dokument übernommen werden. Zum Ermitteln der Cometgruppe müssen Sie dazu das Dokiument erst öffnen und in den Vordergrund holen. Achten Sie darauf, das Dokument wieder zu schließen, wenn es vorher nicht geöffnet war. Hat der Rahmen bereits einmal zusätzliche Rahmen importiert, werden diese Rahmen vor dem Import automatisch gelöscht.
char stSrcDoc [] = "$DESKTOP/big.indd";
int main () { ItemRef docRef = document::get_front (); ItemRef docRef2 = item::alloc (); int mustClose = 0; ItemRef frameRef = item::alloc (); int groupID = 0;
if (!document::is_opened (stSrcDoc, docRef2)) { item::release (docRef2); docRef2 = document::open (stSrcDoc); mustClose = 1; } document::select (docRef2);
document::find_frame (frameRef, 3, 100, 10, 0); if (item::defined (frameRef)) { groupID = frame::get_cometgroup (frameRef, 0); } if (groupID == 0) { if (mustClose) document::close (docRef2); showmessage ("Produkt nicht gefunden!"); return 0; }
document::select (docRef); frame::remove_sub_cometgroups (gFrame); document::place_indesign ( stSrcDoc, 0, "", groupID, 2, 100.0, 100.0);
if (mustClose) document::close (docRef2);
return 0; }
static int document::find_frame(
ItemRef frameRef,
int classid,
int id,
int id2,
int id3,
char* sid = "",
int diveInto = 0)
Suche den ersten Rahmen, der mit einem Objekt einer gewünschten Klasse verbunden ist. Für das Ergebnis muss ein ItemRef mit reserviertem Speicher übergeben werden.
Name | Typ | Default | Beschreibung |
frameRef | ItemRef | - | Enthält nach dem Aufruf den gesuchten Rahmen. Wurde kein Rahmen gefunden, ist der Wert der Variable leer, testen mit item::defined |
classid | int | - | Klassennummer oder 0 |
id | int | - | Suche nach diesem Produkt |
id2 | int | - | Suche nach diesem Produkt |
id3 | int | - | Suche nach diesem Produkt |
sid | String oder char* | "" | Suche mit dieser StringID nach dem Produkt. Ein Produkt wird nur dann gefunden, wenn alle 3 IDs und die StringID übereinstimmen. Werden keine StringIDs verwendet, wird der Wert mit "" angegeben. |
diveInto | int | 0 | Auch in Unterrahmen suchen? 0 : Nein 1 : Ja |
Suche nach dem ersten Rahmen, der mit der Staude (1, 3, 4) verknüpft ist
ItemRef frame = item::alloc ();
document::find_frame (frame, 1, 1, 3, 4); if (!item::defined (frame)) { item::release (frame); showmessage ("Rahmen nicht gefunden"); return 1; }
static int document::export_(
ItemRef docRef,
char* destPath,
char* format,
char* profile = "",
int uiflag = 0,
int fileflag = 1,
...)
Exportiere ein Dokument in ein gegebenes Zielformat.
Name | Typ | Default | Beschreibung | ||||||||||||||||||||||||||||||||||||
Return | int | 0 oder Fehlercode 2201 : Document to packa not found 2202 : Error while creating package file 2203 : Cannot open file to package 2204 : Error while checking links of document (NOT missing images!) 2205 : Cannot create internal link object 2206 : Link resource not found 2207 : Error while duplicating image file 2208 : Error while updating link |
|||||||||||||||||||||||||||||||||||||
docRef | ItemRef | - | Dokument, das exportiert werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
||||||||||||||||||||||||||||||||||||
destPath | String oder char* | - | Zielpfad für den Export. Existiert der Ordnerpfad nicht, wird
er automatisch erzeugt. 0 oder "" und format = "package" : Verwende Pfad und Namen (ohne .indd) als Name des Paketes. |
||||||||||||||||||||||||||||||||||||
format | String oder char* | - | Zielformat. Folgende case sensitiven Angaben sind möglich:
|
||||||||||||||||||||||||||||||||||||
profile | String oder char* | "" | Name der Konfiguration, die für den Export verwendet werden soll.
Profile werden nur für das Format "pdf" verwendet:
|
||||||||||||||||||||||||||||||||||||
uiflag | int | 0 | 0 : Unterdrücke alle Dialoge und Progressbalken. Nötige Exportangaben werden aus den aktuellen oder Standardangaben von InDesign®
oder aus dem Profile genommen. 1 : Nur die nötigsten Dialoge werden gezeigt. 2 : Alle Dialoge und Progressbalken werden gezeigt. 3 : nur bei format "package" Führe den Menübefehl Datei -> Verpacken ... aus. Aus technischen Gründen kann diese Anweisung erst zur nächsten Ruhezeit von InDesign® ausgeführt werden und nicht direkt beim Aufruf im Skript. Vor der Verwendung der Anweisung muß unbedingt geprüft werden, ob das in Ihrem Arbeitsablauf überhaupt möglich und sinnvoll ist! |
||||||||||||||||||||||||||||||||||||
fileflag | int | 1 | Soll die Zieldatei überschrieben werden? 0 : Zieldatei nicht überschreiben 1 : Zieldatei darf überschrieben werden 2 : nur bei format = "package" Komprimiere das Ergebnis als ZIP-Datei. Hat der Paket-Ordner nicht existiert, wird er hier auch wieder gelöscht. (Auf dem Mac werden die Ordner in den Papierkorb verschoben. Die Verschiebung wird im Logfile vermerkt.) |
||||||||||||||||||||||||||||||||||||
⇨ Zusatzparameter. Die Zusatzparameter bestehen jeweils aus einem Schlüsselwort (String oder char*) und den zugehörigen Werten.
Die Liste der Zusatzparameter darf beliebig lang sein und eine beliebige Reihenfolge haben.
Werden Schlüssel mehrfach angegeben, wird immer der letzte Wert verwendet. seit v3.3 R2580 25.07.2011 und CS4 SWF-Export. Die Parameter entsprechen im Wesentlichen den Einstellungen des Export-Dialoges für SWF. Nicht angegebene Einstellungen werden (wenn möglich) aus den Einstellungen dieses Dialoges genommen. Die Einstellungen des Export-Dialoges bleiben unverändert. Der SWF-Export wird ab InDesign® 2020 nicht mehr unterstützt! seit v4.0.4 R9030, 2. Okt. 2015 Beim Verpacken (format = "package") eines Dokumentes können die mit pkg: definierten Optionen verwendet werden. |
|||||||||||||||||||||||||||||||||||||||
"swf:generateHTML" | int | - | 0 | 1 | ||||||||||||||||||||||||||||||||||||
"swf:viewAfterExport" | int | - | 0 | 1 | ||||||||||||||||||||||||||||||||||||
"swf:sizeAndFitting:fitTo" | int | - | 0: 1280x800 1 : 1240x620 2 : 1024x768 3 : 984x588 4 : 800x600 5 : 760x420 6 : 640x480 7 : 600x300 |
||||||||||||||||||||||||||||||||||||
"swf:sizeAndFitting:scale" | float | - | 0.0 -100.0 | ||||||||||||||||||||||||||||||||||||
"swf:sizeAndFitting:size" | float, float | - | Größe in Punkten | ||||||||||||||||||||||||||||||||||||
"swf:bkTransparent" | int | - | erst ab CS5 0 | 1 |
||||||||||||||||||||||||||||||||||||
"swf:transparencyHandler" | int | - | erst ab CS5 0: ignore 1 : flatten 2 : native |
||||||||||||||||||||||||||||||||||||
"swf:mediaHandler" | int | - | erst ab CS5 0: alles einschließen 1 : nur Erscheinungsbild |
||||||||||||||||||||||||||||||||||||
"swf:pageTransition" | int | - | 0 : ohne ab CS5 1 : aus Dokument 2 : Blenden 3 : Einblenden 4 : Kämmen 5 : überdecken 6 : Auflösen 7 : Verblassen 8 : Umblättern 9 : Schieben 10 : Teilen 11 : Aufdecken 12 : Wischen 13 : Einzoomen 14 : Auszoomen vor CS5 Alle anderen Werte schalten die Seitenüberblendung ein. |
||||||||||||||||||||||||||||||||||||
"swf:bookControl:curl" | int | - | 0 | 1 - Interaktives Aufrollen der Seiten einschließen | ||||||||||||||||||||||||||||||||||||
"swf:bookControl:showAtRest" | int | - | 0 | 1 | ||||||||||||||||||||||||||||||||||||
"swf:bookControl:cornerTease" | int | - | 0 | 1 | ||||||||||||||||||||||||||||||||||||
"swf:bookControl:sizePercent" | float | - | 0.0 - 100.0 | ||||||||||||||||||||||||||||||||||||
"swf:frameRate" | int | - | since CS5 Bilder pro Sekunde |
||||||||||||||||||||||||||||||||||||
"swf:textExport" | int | - | 0 : Klassischer Text 1 : In Pixel konvertieren 2 : In Pfade umwandeln 3 : Vellum |
||||||||||||||||||||||||||||||||||||
"swf:rasterizePage" | int | - | 0 | 1 | ||||||||||||||||||||||||||||||||||||
"swf:rasterCompression" | int | - | 0 : JPEG (verlustbehaftet) 1 : PNG (verlustfrei) 2 : Automatisch |
||||||||||||||||||||||||||||||||||||
"swf:jpgQuality" | int | - | 0 : Minimum 1 : Niedrig 2 : Mittel 3 : Hoch 5 : Maximum |
||||||||||||||||||||||||||||||||||||
"swf:rasterResolution" | int | - | Auflösung (ppi) | ||||||||||||||||||||||||||||||||||||
"swf:curveQuality" | int | - | |||||||||||||||||||||||||||||||||||||
"swf:resampling" | int | - | 0 : aus 1 : Durchschnitt 2 : Subsample 3 : Bikubisch |
||||||||||||||||||||||||||||||||||||
"swf:resampleTreshold" | int | - | |||||||||||||||||||||||||||||||||||||
"swf:readerSpreads" | int | - | 0 | 1 | ||||||||||||||||||||||||||||||||||||
"swf:useNetwork" | int | - | 0 | 1 | ||||||||||||||||||||||||||||||||||||
"swf:includePreloader" | int | - | since CS5 0 | 1 |
||||||||||||||||||||||||||||||||||||
"pkg:fonts" | int | 1 | Schriften exportieren? 0 : Nein 1 : Ja |
||||||||||||||||||||||||||||||||||||
"pkg:images" | int | 1 | Bilder exportieren? 0 : Nein 1 : Ja. In diesem Fall werden automatisch auch alle Verweise im verpackten Dokument aktualisiert. Fehlende Bilder sind kein Abbruchgrund. Verweise auf fehlende Bilder bleiben unverändert. Im Logfile finden Sie Meldungen über fehlende Bilder. |
||||||||||||||||||||||||||||||||||||
"pkg:profiles" | int | 1 | Farbprofile exportieren? 0 : Nein 1 : Ja |
||||||||||||||||||||||||||||||||||||
"pkg:hiddenLayers" | int | 1 | Schriften und Farben auch von unsichtbaren Ebenen exportieren? 0 : Nein 1 : Ja |
||||||||||||||||||||||||||||||||||||
"pkg:ignoreErrors" | int | 1 | Bei Preflight-Fehlern trotzdem verpacken? 0 : Nein 1 : Ja |
||||||||||||||||||||||||||||||||||||
"pkg:report" | int | 1 | Report-Datei (Anleitungen.txt) schreiben? 0 : Nein 1 : Ja |
||||||||||||||||||||||||||||||||||||
"pkg:idml" | int | 0 | Erst ab InDesign® CC. Sonst wird die Angabe ignoriert. IDML-Version des Dokumentes schreiben? 0 : Nein 1 : Ja |
||||||||||||||||||||||||||||||||||||
"pkg:pdf" | int | 0 | Erst ab InDesign® CC. Sonst wird die Angabe ignoriert. PDF-Version des Dokumentes schreiben? 0 : Nein 1 : Ja |
||||||||||||||||||||||||||||||||||||
"pkg:pdfstyle" | String oder char* | 0 | Erst ab InDesign® CC. Sonst wird die Angabe ignoriert. PDF-Stil für den PDF-Export. Achten Sie darauf, dass die Angabe ein String ist! |
Exportiere das aktuelle Dokument in eine PDF-Datei. Das Profil 'Paul' muss angelegt sein (Menü Datei:PDF-Exportvorgaben:Definieren ...).
int main () { int result = 0;
result = document::export_ ( 0, "/AAA/BBB/a.pdf", "pdf", "Paul", 0, 1); return 0; }
Verpacke das aktuelle Dokument als ZIP. Farbprofile sollen nicht exportiert werden. Eine Report-Datei ist nicht nötig.
result = document::export_ (0, "", "package", "", 0, 2, "pkg:profiles", 0, "pkg:report", 0);
static int document::pdf_export(
ItemRef docRef,
char* destPath,
char* profile = "",
int scope = 2,
List indexes = 0,
...)
PDF-Export einzelner Seiten oder Spreads eines Dokumentes. Die Seiten oder Spreads können dabei in beliebiger Reihenfolge exportiert werden.
Seit v4.1 R23334 Im erzeugten PDF können zusätzlich die Comet-Notizen als PDF-Kommentare angelegt werden. Addieren Sie dazu zum Parameter scope den Wert 4 (nur sichtbare Notizen) oder 8 (auch unsichtbare Notizen). Beachten Sie dazu bitte auch die Installations-Hinweise zur PDFlib!
Mit der Funktion können wahlweise auch interaktive PDFs erzeugt werden. Da es für interaktive PDFs keine PDF-Profile gibt, müssen die Exportoptionen im Skriptaufruf gemacht werden. Um interaktive PDFs zu erzeugen, definieren Sie den Parameter profile wie folgt:
interactive#{key:value;} mit key und value gemäß der folgenden Tabelle.
Ist die Liste der Key-Values leer, werden die aktuellen InDesign®-Einstellungen zum Export interaktiver Dokumente verwendet. Ist mindestens ein Wert definiert, wird für die fehlenden Werte der in der Tabelle angegebene fett dargestellte Default verwendet.
Key | Value | Beschreibung | |
Allgemein | singlePages |
no | 0 yes | 1 |
Seiten : Separate PDFs erstellen Verfügbar ab InDesign® 2020 |
singlePagesSuffix | beliebiger String |
Seiten : Separate PDFs erstellen ... Suffix Nur beim Erstellen von Einzelseiten (singlePages:yes;) Verfügbar ab InDesign® 2020 |
|
magnification | actual fitPage fitWidth fitHeight fitVisible 25 50 75 100 | Anzeige : Skalierung der Ansicht | |
pageLayout | single singleContinue twoUp twoUpContinue twoUpCover twoUpCoverContinue | Anzeige : Layout | |
fullScreen |
no | 0 yes | 1 |
Anzeige : Im Vollbildmodus öffnen | |
flipPages |
no | 0 yes | 1 |
Anzeige : Seiten wechseln ... Die Angabe wird nur im Vollbildmodus (fullScreen:yes;) verwendet. |
|
flipSpeed | Sekunden als Ganzzahl, Default 5 |
Anzeige : Seiten wechseln nach ... Sekunden Die Angabe wird nur im Vollbildmodus (fullScreen:yes;) verwendet. |
|
transition |
nothing blend combine box cover push uncover wipe zoomIn zoomOut disolve fade turn split |
Anzeige : Seitenübergänge Die Angabe wird nur im Vollbildmodus (fullScreen:yes;) verwendet. |
|
autoShow |
no | 0 yes | 1 |
Anzeige : Nach Export anzeigen | |
showInteractives |
no | 0 - nur Erscheinungsbild yes | 1 - alle einschließen |
Optionen : Formulare und Medien einschließen | |
thumbnails |
no | 0 yes | 1 |
Optionen : Seitenminiaturen einbetten | |
layers |
no | 0 yes | 1 |
Optionen : Acrobat-Ebenen erstellen | |
tags |
no | 0 yes | 1 |
Optionen : PDF mit Tags erstellen | |
tabs |
definition | 0 structure |
Optionen : Struktur für Aktivierungsreihenfolge verwenden Nur bei PDFs mit erstellten Tags (tags:yes;) |
|
Komprimierung | compression |
jpeg lossless auto |
Bildkomprimierung |
quality |
min low medium high max |
JPEG-Qualität | |
resolution |
PPI als Ganzzahl Minimum 10 Default 72 |
Auflösung (ppi) | |
Barrierefreiheit | title |
document file |
Barrierefreiheitsoptionen : Titel anzeigen |
language | Sprache als String |
Barrierefreiheitsoptionen : Sprache Die verfügbaren Sprachen und deren Schreibweise entnehmen Sie dem Popupmenü Barrierefreiheitsoptionen : Sprache. |
|
Sicherheit | Die Sicherheitseinstellungen hängen sehr stark vom verwendeten PDF-Viewer ab. Viewer wie Acrobat oder Acrobat Pro können mitunter nicht alle gemachten Sicherheitseinstellungen realisieren. Bitte prüfen Sie bei nicht angewendeten Sicherheitseinstellungen im PDF zuerst, ob Sie die gewünschte Einstellung bei einem manuellen Export erreichen! | ||
password |
String Default: kein Kennwort |
Kennwort zum Öffnen des Dokumentes | |
authorization |
String Default: kein Kennwort |
Berechtigungen : Berechtigungskennwort | |
allowPrint |
no | 0 low yes | 1 |
Berechtigungen : Zulässiges Drucken Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
|
allowAssembly |
yes | 1 no | 0 |
Zulässige Änderungen -> Einfügen, Löschen und Drehen von Seiten Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
|
allowFormfill |
yes | 1 no | 0 |
Zulässige Änderungen -> Ausfüllen von Formularfeldern Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
|
allowNotes |
yes | 1 no | 0 |
Zulässige Änderungen -> Einfügen von Kommentaren Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
|
allowExtraction |
yes | 1 no | 0 |
Zulässige Änderungen -> Alle außer Entnehmen von Seiten Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
|
allowCopy |
yes | 1 no | 0 |
Kopieren von Text, Bildern und anderen Inhalten ermöglichen Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
|
allowChange |
yes | 1 no | 0 |
Textzugriff ... Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
|
plainTextForMeta |
yes | 1 no | 0 |
Reines Textformat für Metadaten aktivieren Nur aktiv wenn ein Berechtigungskennwort gesetzt ist (authorization:'pwd';) |
InDesign® kann beim Export in PDF Texte automatisch in Pfade umwandeln. Jeder Buchstabe des Dokumentes wird dabei durch einen entsprechenden Pfad, den sogenannten Outline ersetzt und mit der entsprechenden Farbe gefüllt. Die dafür nötige Konfiguration ist nicht so ganz offensichlich. Hier eine Schritt-für-Schritt Anleitung:
Öffnen Sie das Menü Bearbeiten -> Transparenzreduzierungsvorgaben...
Wählen Sie [Hohe Auflösung] (oder was immer Sie wollen) und klicken Sie auf Neu....
Aktivieren Sie im erscheinenden Dialog das Kontrollkästchen Text in Pfade umwandeln. Und was Sie sonst noch so wollen. Nachdem Sie dem Ganzen einen Namen gegeben haben (hier Text in Pfade) klicken Sie auf OK. Danach schließen Sie auch den Dialog aus Schritt 2.
Im nächsten Schritt legen Sie eine PDF-Vorgabe mit der eben definierten 'Transparenzreduzierungsvorgabe' an. Wählen Sie dazu zunächst das Menü Datei -> Adobe PDF-Vorgaben -> Definieren.... Im erscheinden Dialog wählen Sie daas Button Neu... (oder einen der Nicht-Standard-Einträge ohne [eckige Klammern]). Es erscheint ein weiterer Dialog mit den Einstellungen der PDF-Vorgabe. Gehen Sie hier links zum Tab Erweitert. Dort wählen Sie im Dropdown Transparenzreduzierung die in Schritt 3 definierte Vorgabe (hier Text in Pfade).
Bitte beachten Sie : Damit das Dropdown aktiviert ist, muss mindestens PDF/X als Standard der Vorgabe gewählt sein.
Jetzt kommt der wirkliche, leicht hinterhältige Trick, ohne den alles gar nicht funktionieren würde: Damit die 'Transparenzreduzierungsvorgabe' (und damit das Umrechnen von Buchstaben in Pfade) von InDesign® überhaupt angewendet wird, muß das Dokument mindestens einen Rahmen mit Transparenz haben - und zwar auf jeder Seite!. Legen Sie dazu auf jeder Musterseite einen (kleinen) Rahmen an, in dem Sie mit Hilfe der Palette Fenster -> Effekte die Transparenz 0% einstellen:
Wenn Sie ein so vorbereitetes Dokument jetzt mit der erstellten PDF-Vorgabe in ein PDF exportieren, wird InDesign® Ihnen alle Texte des Dokumentes in Pfade umwandeln.
Suchen Sie gar nicht erst auf Ihrem Rechner nach der 'Transparenzreduzierungsvorgabe'. InDesign® schreibt die entsprechenden Einstellungen direkt in die PDF-Vorgabe! (Was wohl auch bedeutet: Änderungen einer 'Transparenzreduzierungsvorgabe' ändern das Verhalten von PDF-Vorgaben, die diese 'Transparenzreduzierungsvorgabe' verwenden, nicht!
Hier ein Ausschnitt einer PDF-Vorgabe mit aktivierter Umwandlung von Text in Pfade.
/FlattenerPreset << /ClipComplexRegions false /ConvertStrokesToOutlines false /ConvertTextToOutlines true /GradientResolution 300 /LineArtTextResolution 1200 /PresetName (Text to Outlines) /PresetSelector /UseName /RasterVectorBalance 1 >>
Mit der Angabe with comet-options ... am Ende des Namens des PDF-Profiles können spezifische Einstellungen festgelegt werden, die vom Standard-PDF-Export abweichen. Zur Zeit wird 'lediglich' die Umwandlung von Buchstaben in Pfade unterstützt.
Bevor Sie diese Option verwenden, versuchen Sie bitte unbedingt, ob derStandard-Export mit Outlines nicht vollkommen ausreichend ist. Hier finden Sie Informationen zum Standard-Outlines-Export von PDFs.
Key | Value | Beschreibung |
outlines |
no | 0 yes | 1 |
Alle Texte in Pfade umwandeln. Die Umwandlung der einzlenen Buchstaben im InDesign-Dokument in Pfade erfolgt temporär für den Export und wird nach dem Export wieder rückgängig gemacht. Für comet_pdf gibt es keine vergleichbare Funktion. |
Verwende die aktuellen Einstellungen für den PDF-Export und erzeuge ein PDF, in dem alle Buchstaben durch Pfade ersetzt sind.
Parameter profile : "with comet-options outlines:yes"
Verwende das Basisprofil für den PDF-Export und erzeuge ein PDF, in dem alle Buchstaben durch Pfade ersetzt sind.
Parameter profile "[Basic Style] with comet-options outlines:yes"
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
destPath | String oder char* | - | vollständiger Zielpfad und Name für den Export 0 oder "" : Pfad und Name (mit der Endung .pdf) des Dokumentes verwenden. Das geht natürlich nicht bei neuen ungesicherten Dokumenten! |
profile | String oder char* | "" | Name des PDF-Exportprofiles:
|
scope | int | 2 | Seiten oder Spreads exportieren? 1 : Spreads 2 : Seiten Export der Comet-Notizen: +4 : Export aller sichtbaren Comet-Notizen +8 : Export aller Comet-Notizen Siehe document::notes::set_pdf_prefs für Standardeinstellungen. Unter comet_pdf gibt es keine Notitzen-Sichtbarkeit, hier werden immer alle Notizen ins PDF eingefügt. PDFs mit Comet-Notizen sollten keinesfalls als finale Druckvorlage verwendet werden! Enthält das Dokument keine Comet-Notizen, die exportiert werden müssen, bleibt das PDF unverändert - wird also auch nicht mit Hilfe der PDFlib neu zsammengestellt. Wird bei Illustrator ignoriert. |
indexes | List | 0 | Liste von 0-basierten Seiten- oder Spreadnummern. Ist die Liste leer, werden die folgenden Parameter als Zahlenangaben verwendet. Folgen auch keine
weiteren Angaben, werden alle Seiten/Spreads exportiert
Beim PDF-Export der Comet-Notizen muß der Export bei Seite 1 beginnen und alle Folgeseiten in ihrer richtigen Reihenfolge enthalten. Andernfalls treten Fehler bei der Seitenzuordnung von Notizen auf. Seiten am Ende des Dokumentes dürfen im Export fehlen. Wird bei Illustrator ignoriert. |
... | int, ... | - | Beliebige Anzahl von 0-basierten Seiten- oder Spreadnummern,
die exportiert werden sollen. Die Angaben werden nur ausgewertet,
wenn die Liste indexes 0 ist.
Beim PDF-Export der Comet-Notizen muß der Export bei Seite 1 beginnen und alle Folgeseiten in ihrer richtigen Reihenfolge enthalten. Andernfalls treten Fehler bei der Seitenzuordnung von Notizen auf. Seiten am Ende des Dokumentes dürfen im Export fehlen. Wird bei Illustrator ignoriert. |
PDF-Export verschiedener Dokumentseiten. Achten Sie insbesondere auf vollständige Seitenbereiche beim Export von Comet-Notizen (scope + 8).
int main () { document::pdf_export (0, "$DESKTOP/aaa/aaa_spreads.pdf", "", 1, 0); document::pdf_export (0, "$DESKTOP/aaa/aaa_spreads.pdf", "", 1 + 8, 0); // export all Comet notes too document::pdf_export (0, "$DESKTOP/aaa/aaa_spread_2_4.pdf", "", 1, 0, 2, 4); document::pdf_export (0, "$DESKTOP/aaa/aaa_spread_2_4.pdf", "", 1 + 8, 0, 2, 4); // possible wrong Comet notes! document::pdf_export (0, "$DESKTOP/aaa/aaa3.pdf", "", 2, 0, 3); document::pdf_export (0, "$DESKTOP/aaa/aaa1401.pdf", "", 2, 0, 1, 4, 0, 1); document::pdf_export (0, "$DESKTOP/aaa/aaa1702.pdf", "", 2, 0, 1, 7, 0, 2);
return 0; }
Exportiere alle ungeraden Seiten des aktuellen Dokumentes in ein PDF.
int main() { List pnums = list::alloc (); int p;
for (p = 0; p < document::pages (); p += 2) { list::append (pnums, p); }
document::pdf_export (0, "$DESKTOP/aaa.pdf", "", 2, pnums);
return 0; }
static int document::html_export(
ItemRef docRef = 0,
char* destPath = "",
int target = 1,
ItemRef itemToExport = 0,
...)
HTML-Export eines Dokumentes. Sie können wählen, ob die aktuelle Auswahl, ein bestimmter Rahmen, eine bestimmte Tabelle oder das gesamte Dokument exportiert werden soll.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode -8000 : Exportscript nicht gefunden. Das Hauptskript sollte in Ihrem InDesign® definiert sein. Überprüfen Sie, ob im Ordner Scripts von InDesign® der Unterordner Export As XHTML existiert und vollständig ist. -8001 : Die Liste der zu exportierenden Dokumentobjekte ist leer -8002 : Exportfehler -8003 : Mind. ein verknüpftes Bild ist nicht vorhanden -8004 : Mind. ein verknüpftes Bild ist veraltet -8005 : Mind. ein eingebettetes Bild übersprungen. (Nur verknüpfte Bilder können expotiert werden.) -8006 : Mind. ein verknüpfter Film ist nicht vorhanden. -8007 : Nicht unterstützte Filme übersprungen. (Nur SWF-Filme werden unterstützt). |
|
docRef | ItemRef | 0 | Dokument das exportiert werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
destPath | String oder char* | "" | Vollständiger Pfad für die html-Datei. Existiert die Datei, wird sie überschrieben "" : Verwende den Pfad der InDesign® -Datei mit der Endung html |
int | target | 1 | Was soll exportiert werden? 0 : aktuelle Dokumentauswahl 1 : Gesamtes Dokument 2 : das folgenden Objekt (itemToExport) |
itemToExport | ItemRef | 0 | Gültige Rahmen- oder Tabellenreferenz. Ist ein gültiges Objekt angegeben, wird docRef ignoriert und das Dokument des Objektes verwendet. |
⇨ Exportoptionen. Die Angaben sind jeweils Paare bestehend aus Wertname und Wert. Der Datentyp der Werte kann unterschiedlich sein. Sie können eine beliebig lange Liste von Wertepaaren angeben. |
|||
"bulletListPolicy" | int | 0 | 0 : nicht sortierten Listen zuordnen 1 : in Text konvertieren |
"numberedListPolicy" | int | 0 | 0 : sortierten Listen zuordnen 1 : statisch sortierten Listen zuordnen 2 : in Text konvertieren |
"imageHandling" | int | 0 | 0 : Original kopieren 1 : Optimiert 2 : Mit Serverpfad verknüpfen |
"serverImgPath" | String oder char* | "" | Bei Verknüpfung der Bilder mit einem Serverpfad der Pfad zum Server. Die Angaben $DESKTOP, ... werden für diesen String nicht ausgewertet. |
"serverImgExtension" | String oder char* | "" | Endung für Bilder, die mit einem Serverpfad verknüpft werden (z.B. ".jpg") |
"imageConversion" | int | -1 | Bildumwandlung -1 : aktuelle Einstellung verwenden 0 : automatisch 1 : JPEG 1 : GIF |
"gifpalette" | int | -1 | Farbpalette GIF-Bilder -1 : aktuelle Einstellung verwenden 0 : Flexibel (ohne Dithering) 1 : System (Mac) 2 : Web 3 : System (Windows) |
"gifInterlaced" | int | -1 | Interlace verwenden? -1 : aktuelle Einstellung verwenden 0 : nein 1 : ja |
"jpegQuality" | int | -1 | Bildqualität -1 : aktuelle Einstellung verwenden 0 : niedrig 1 : mittel 2 : hoch 3 : maximal |
"jpegFormat" | int | -1 | JPEG-Formatmethode -1 : aktuelle Einstellung verwenden 0 : mehrere Durchgänge 1 : Grundlinie |
"styleHandling" | int | 0 | CSS-Optionen 0 : Leere CSS-Klassendeklarationen 1 : Kein CSS 2. Externe CSS-Datei |
"styleSheet" | String oder char* | "" | Vollstänger Pfad/URL zur Stylesheet-Datei Die Angaben $DESKTOP, ... werden für diesen String nicht ausgewertet. |
"linkToJavaScript" | int | 0 | Mit externer JavaScript-Datei verknüpfen? 0 : nein 1 : ja |
"javaScriptURL" | String oder char* | "" | Vollstänger Pfad/URL zur JavaScript-Datei Die Angaben $DESKTOP, ... werden für diesen String nicht ausgewertet. |
"showErrors" | int | -1 | Fehler zeigen? 0 : nein, nur den Fehlercode zurückgeben 1 : ja, in einem Alert zeigen |
Exportiere die gesamte aktuelle Datei. Wenn Fehler auftreten, zeige eine Meldung.
int main () { int r;
r = document::html_export (0, "", 1, 0, "showErrors", 1); wlog ("", "#html export : %d\n", r);
return 0; }
Exportiere den aktuellen Rahmen.
int main () { int r;
r = document::html_export (0, "", 2, gFrame); wlog ("", "#html export : %d\n", r);
return 0; }
Exportiere die erste Tabelle des aktuellen Rahmens.
int main () { int r; Table T = table::alloc ();
table::get (T, 0, 0);
r = document::html_export (0, "", 2, T, "styleHandling", 2, "styleSheet", "/Users/paul/Desktop/xxx.css"); wlog ("", "#html export : %d\n", r);
return 0; }
static int document::jpeg(
ItemRef docRef,
char* destPath,
char* destName,
int aggregateSpreads,
float resolution,
float bleed,
float greekBelow,
int quality,
int suppressNonPrintableFrames = 0)
Export aller Spreads oder Seiten eines Dokuments als JPEG Dateien.
Der Befehl exportiert wahlweise Spreads oder Einzelseiten, Auflösung und Qualität lassen sich im durch InDesign® vorgegebenen Rahmen fein abstimmen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument, das exportiert werden sollAngabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
destPath | String oder char* | - | Zielordner, wird ein Leerstring übergeben wird in den aktuellen Ordner des Dokuments exportiert. |
destName | String oder char* | - | Name der JPEG Dateien OHNE Erweiterung. Wird ein Leerstring übergeben, wird der Name des Dokuments verwendet. |
aggregateSpreads | int | - | 0: Ausgabe seitenweise, 1: Ausgabe von Spreads |
resolution | float | 72.0 | Auflösung in dpi |
bleed | float | 0.0 | Wieviel (in Punkt dpi) Rand soll mitgezeichnet werden? |
greekBelow | float | 7.0 | Unterhalb welcher Schriftgöße (in dpi) soll Schrift ausgegraut werden? |
quality | int | - | Verschiedene Angaben zur Ausgabe und JPEG-Qualität. Mögliche Werte sind: Antialiasing für alle Objekte: kAntiAliasing Voll auflösende Grafiken: kFullResGraphics Graustufen: kDrawGray Transparenz: kXPOff kXPLow kXPMedium kXPHigh kXPMaximum JPEG Qualität (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGLowQuality kJPEGGoodQuality kJPEGExcellentQuality kJPEGGreatQuality JPEG Encoding (Die Angabe hat nur auf die Qualität der gesicherten Datei Einfluß, nicht auf die Qualität das Previews selbst.): kJPEGBaseline kJPEGProgressive Der Wert wird als Bitfeld (kXXX... + kXXX + ...) übergeben, Standard ist: kAntiAliasing + kFullResGraphics + kXPHigh + kJPEGExcellentQuality + kJPEGBaseline |
suppressNonPrintableFrames | int | 0 | Sichtbarkeit nicht-druckbarer Rahmen im JPEG 0 Nicht-druckbare Rahmen bleiben im Bild sichtbar 1 Nicht-druckbare Rahmen erscheinen nicht im Bild |
static int document::duplicate(
ItemRef docRef,
char* destPath,
int fileflag = 1)
Kopieren eines Dokumentes in eine neue Datei.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument, das dupliziert werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
destPath | String oder char* | - | Zielpfad für den Export. Existiert der Ordnerpfad nicht, wird er automatisch erzeugt. |
fileflag | int | 1 | Soll die Zieldatei überschrieben werden? 0 : Zieldatei nicht überschreiben 1 : Zieldatei darf überschrieben werden |
static int document::force_redraw(ItemRef docRef = 0, int doAll = 0)
Neuzeichnen des Dokumentfensters erzwingen. Mit dem Befehl können wahlweise alle, ein einzelnes oder nur das aktuelle Dokument neugezeichnet werden. Der Befehl ist sinnvoll in Aufgaben, in denen Veränderungen am Dokument direkt bei der Ausführung des Skriptes gezeigt werden sollen. Wenn nur einzelne Texte oder Textteile neu gerendert werden sollen, können Sie die Funktion textmodel::force_redraw verwenden.
Unter comet_pdf hat der Aufruf keine Wirkung.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Dokument
gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
doAll | int | 0 | 0 : Nur das gegebene Dokument aktualisieren 1 : Alle geöffneten Dokumente aktualisieren. Der Parameter docRef bleibt in diesem Fall unberücksichtigt. |
static int document::print(
ItemRef docRef,
char* profile,
char* path = "",
int uiflag = 0,
int fileflag = 1)
Drucken eines Dokumentes. Das Dokument kann wahlweise zu einem Drucker geschickt oder als Postscript-Datei abgelegt werden. Die Angabe der Druckeinstellungen wird über die Angabe einer Druckervorgabe festgelegt (Menü Datei:Druckvorgaben).
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument, das gedruckt werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
profile | String oder char* | - | Druckervoreinstellung. Die Angabe ist case sensitiv. Siehe InDesign® -Menü
Datei:Druckvorgaben Leerstring : Verwende die aktuellen Einstellungen des Drucken-Dialoges |
path | String oder char* | "" | Leer : Drucken oder Dateinachfrage Sonst : Druckerausgabe als Postscriptdatei. Der Pfad bis zur angegebenen Datei wird automatisch erzeugt. |
uiflag | int | 0 | 0 : Zeige alle Dialoge und Progressbalken 1 : Progressbalken nicht zeigen 2 : Warnungen werden nicht gezeigt 4 : Druckendialog nicht zeigen 8 : Dateiauswahldiallog nicht zeigen 0xFF : Nichts zeigen Die Optionen sind mit logischen OR (|) verknüpfbar. |
fileflag | int | 1 | Soll die Zieldatei überschrieben werden? 0 : Zieldatei nicht überschreiben 1 : Zieldatei darf überschrieben werden |
Erzeuge aus der die aktuellen Datei ein Postscript-File, ohne irgendwelche Dialoge oder Progressbalken zu zeigen.
document::print (0, "", "/AAA/KKK/GGG/asdd.ps", 0xff);
static int document::move_pageitems(
ItemRef docRef,
int startPage,
int pages,
int deleteOld = 1,
float leftpages_offset_x = 0.0,
float leftpages_offset_y = 0.0,
float rightpages_offset_x = 0.0,
float rightpages_offset_y = 0.0)
Verschiebe den Inhalt von Dokumentseiten. Die Inhalte der Seiten können dabei mit einem seitenspeziefischen Offset platziert werden. Ist nichts anderes angegeben, wird der Inhalt der ersten Zielseite zuvor gelöscht.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | Item | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
startPage | int | - | 1-basierte Seitennummer, ab der die Inhalte verschoben werden
sollen. 0 : Seite des ersten ausgewählten Rahmens oder der aktuellen Textauswahl -1 : Aktuell angezeigte Seite des Dokumentes |
pages | int | - | Anzahl der Seiten, um die Inhalte verschoben werden sollen <0 : Verschiebe nach vorne 0 : Keine Verschiebung auf andere Seite >0 : Verschiebe nach hinten |
deleteOld | int | 1 | Soll der Inhalt der ersten Zielseite zuvor gelöscht werden? 1 : Löschen 0 : Nicht löschen Der Parameter hat nur für die erste Seite Gültigkeit. Die folgenden Seiten sind durch die Verschiebung ihrer Inhalte ja schon leer. |
leftpages_offset_x | float | 0.0 | Wird ein Rahmen von einer rechten oder unisex Seite auf eine linke Seite verschoben, dann wird der Rahmen auf der neuen Seite um den gegebenen Offset nach links/rechts verschoben. Lag der Rahmen bereits auf einer linken Seite, wird kein Offset eingefügt. |
leftpages_offset_y | float | 0.0 | s.o., Verschiebung nach unten/oben |
rightpages_offset_x | float | 0.0 | Wird ein Rahmen von einer linken oder unisex Seite auf eine rechte Seite verschoben, dann wird der Rahmen auf der neuen Seite um den gegebenen Offset nach links/rechts verschoben. Lag der Rahmen bereits auf einer rechten Seite, wird kein Offset eingefügt. |
rightpages_offset_y | float | 0.0 | s.o., Verschiebung nach unten/oben |
Verschiebe ab Seite 3 alle Dokumentrahmen um zwei Seiten nach hinten.
main () { document::move_pageitems ( 0, // Aktuelles Dokument 3, // Ab Seite 3 ... 2, // um zwei Seiten nach hinten 1, // Letzte Seite des Dok. zuvor löschen 11.0, 22.0, 33.0, 44.0); }
static int document::build_products(
char* statement = "watched",
int flags = 0,
char* errmess = 0,
ItemRef baseFrame = 0,
int removeFrame = 0,
int pageNum = -1,
char* layerName = "",
char* defaultMasterpage = "",
int gridID = 0,
int pageitemID = 0,
int anchor = 0,
float left = 0.0,
float top = 0.0,
float right = 0.0,
float bottom = 0.0,
int purgeSequence = 0,
char* sequName = "",
int preScript = kNoRule)
Produktaufbau. Die Funktion ist eine der mächtigsten der gesamten Comet-Plugins. Die ausgewählten oder alle Produkte der Produktpalette werden in das aktuelle Dokument übernommen. Für die Positionierung werden die produktspezifischen Rasterplätze verwendet. Hat ein Produkt keinen Rasterplatz, kann ein Standardraster verwendet werden. Eingefügt wird das im Produkt hinterlegte Template. Ist dieses Template nicht definiert, kann ein Standardtemplate angegeben werden. Beim Einfügen wird darauf geachtet, dass Templates nicht über bestehende Seiteninhalte gelegt werden. Neue Seiten werden automatisch angelegt. Die dafür verwendete Musterseite kann ebenfalls im Produkt hinterlegt sein oder als Standard gegeben werden. Musterseiten-Elemente werden nicht automatisch lokalisiert. Zum Lokalisieren von Musterseiten-Rahmen auf den neu erzeugten Seiten verwenden sie die Funktion page::masteritems_load.
Die Funktion erfordert #include "internal/types.h"
Für den Import können drei verschiedene Algorithmen verwendet werden :
Beschreibung | Neue Seiten | Dokumentanpassung | Flags |
rasterorientiert Suche im Raster nach dem nächsten freien Rasterplatz, mit den folgenden Eigenschaften
|
Jeweils beim Erreichen des letzten Rasterplatzes oder wenn die Seite voll ist. Als Musterseite wird defaultMasterpage verwendet (oder vor dem Import erfragt). | Ja. Alle Rahmen hinter den eingefügten oder gelöschten Produkten werden gemäß den aktuellen allgemeinen Platzierungsinfos neuen Rasterplätzen zugewiesen. Dieses Verhalten kann mit kDisableOptimizing abgeschaltet werden. | kUseDefaultGrid Optional
|
rasterfixiert Benutze ein Standardraster. Unabhängig von bestehenden Dokumentrahmen werden die Produkte am jeweils nächsten Rasterplatz eingefügt. Enthält die Platzierungsinfo des Produktes ein Template, wird dieses Template zum Import verwendet, sonst das Template pageitemID. Fehlt auch das, wird die Template-ID vor dem Import erfragt. |
Jeweils beim Erreichen des letzten Rasterplatzes. Als Musterseite wird defaultMasterpage verwendet (oder vor dem Import erfragt). | Nein | kUseDefaultGrid + kIntersectionsAllowed Optional
|
produktdefiniert Benutze die Platzierungshinweise im jeweiligen Produkt. |
Werden immer dann angelegt, wenn der Zielplatz im Dokument bereits belegt ist. Es wird die im Produkt angegebene Musterseite verwendet. Ist die nicht definiert, wird defaultMasterpage verwendet (oder vor dem Import erfragt). | Nein | kIntersectionsAllowed Optional
|
Vor dem Aufbau der Produkte kann ein Vorbereitungsskript ausgeführt werden (Parameter preScript). Dieses Skript dient insbesondere dazu, die Liste der aufzubauenden Produkte nachzubearbeiten. Das Skript wird ausgeführt, nachdem die Liste der einzufügenden Produkte zusammengestellt wurde.
Das Skript wird wie alle anderen Skripte in der Datenbanktabelle actions bzw. in der XML-Datei actions.xml definiert. Es muss die Klassennummer 14 (= Unterstützungsskript für den Produktaufbau) haben. Über den Umgang mit Produktplatzierungen und Seitenumbrüchen in diesem Skript siehe unter All about "Seitenumrüche".
Eine ausführliche Beschreibung finden Sie hier.Vor und nach dem (vollständigen) Aufbau jedes Produktes kann jeweils ein Skript ausgeführt werden, mit dem Sie das Seitenelement für das nächste Produkt 'in letzter Sekunde' ändern können. Im Flussdiagramm werden diese Skripte (gelb hinterlegt) als PreRule und PostRule bezeichnet.
Die Skripte werden wie alle anderen Skripte in der Datenbanktabelle actions bzw. in der XML-Datei actions.xml definiert und müssen die Klassennummer 14 (= Unterstützungsskript für den Produktaufbau) haben. Über den Umgang mit Produktplatzierungen und Seitenumbrüchen in diesen Skripten siehe unter All about "Seitenumrüche".
Um das Skript für ein Produkt zu aktivieren, setzen Sie den Wert von kPreRuleid bzw. kPostRuleid auf die ID des entsprechenden Skriptes.
product::set (p, kPreRuleid, 3020);
Eine ausführliche Beschreibung finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode. Für eine genauere Fehlerbeschreibung kann der Funktion ein allokierter String für die Fehlerbeschreibung übergeben werden, siehe Parameter errmess. | |
statement | String oder char* | "watched" | Auswahl der Objekte (und Unterobjekte), die aufgebaut werden sollen, siehe hier. |
flags | int | 0 | Steuerung des Importes. Der Wert wird als Summe (Bitfeld) der folgenden Konstanten angegeben, also zum Beispiel
kUseDefaultGrid + kUseFullPage. Es gibt drei unterschiedliche Importalgorithmen, siehe dazu
die obige Tabelle.
kUseDefaultGrid : Ignoriere die in den Produkten hinterlegten Rasterangaben und verwende das Standardraster (siehe Parameter grid). kIgnoreIncompletePlacements : Produkte mit unvollstandigen Angaben zur Platzierung (Raster und/oder Template) werden nicht ins Dokument eingefügt. kAllowIncompletePlacements : Sollen die Produktplatzierungen verwendet werden (kUseDefaultGrid nicht gesetzt), wird vor dem Import geprüft, ob alle Angaben vollständig sind. Ist dieses Bit gesetzt, werden unvollständige Angaben erlaubt und die Standardangaben verwendet. kCheckIfNotExists : Prüfe vor dem Einfügen, ob das Produkt bereits im Dokument verplant ist, wenn ja, wird es nicht mehr eingefügt. kIntersectionsAllowed : Beim Einfügen von Produkten mit einem Standardraster wird geprüft, dass keine bestehenden Seiteninhalte überschnitten werden und dass das neue Produkt auch auf die Seite passt. Diese Prüfung kann mit dem Flag kIntersectionsAllowed verhindert werden, dann wird ganz stur immer der nächste freie Rasterplatz verwendet. (s.a. kUseFullPage, kUseBleed, kCheckGridElementSize kCheckGridElementSize : Von den Rasterplätzen werden normalerweise nur die Positionen verwendet. Mit dem Flag kann zusätzlich geprüft werden, ob der neue Rahmen auch in den Rasterplatz passt. Nur aktiv, wenn Überschneidungen verboten sind (kIntersectionsAllowed nicht an). kUseFullPage : Beim Prüfen der bestehenden Seiteninhalte wird auch geprüft, ob das neue Produkt überhaupt noch auf die Seite passt. Im Normalfall wird dabei geprüft, ob das Produkt noch in die Boundingbox um alle Rasterplätze passt. Mit dem Flag kann erzwungen werden, dass statt dessen die Größe der aktuellen Dokumentseite inkl. ihrer Druckränder verwendet wird. Nur aktiv, wenn Überschneidungen verboten sind (kIntersectionsAllowed nicht an). kUseBleed : wie kUseFullPage, aber der Anschnitt der Seite (Bleed) wird der Seitengröße zugeschlagen kPreferDefaultPageItem : Verwende das Template pageitemID für alle Produkte und ignoriere das in den Produkten gegebene Template. kShowErrors : Auftretende Fehler werden automatisch in einem Fehlerdialog gezeigt. |
errmess | String oder char* | 0 | Zeigt die Variable auf einen allokierten String (z.B. vom Typ char[8192] oder Typ String), kann hier eine Fehlermeldung erhalten werden. |
⇨Mit den folgenden Angaben werden die Startseite und die Ebene für den Import angegeben. | |||
baseFrame | ItemRef | 0 | Die Seite und die Ebene, auf der sich der Rahmen im Dokument befindet werden als Startposition für den Import verwendet. Ist die Angaben leer, werden diese Angaben aus pageNum und layerName ermittelt. |
removeFrame | int | 0 | Soll der Startrahmen aus dem Dokument entfernt werden?
0 : Nein, Rahmen erhalten sonst : Rahmen löschen |
pageNum | int | -1 | 1-basierte Seitennummer, ab der eingfügt werden soll. Der Wert wird nur dann
verwendet, wenn baseFrame = 0 ist. -1 : Verwende die aktuelle Seite Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert. |
layerName | String oder char* | - | Name der Zielebene für den Import. Der Wert wird nur dann
verwendet, wenn baseFrame = 0 ist. 0 oder "" : Aktuelle Ebene |
⇨Angaben zu Standardraster, -template und --Musterseite. Die Werte werden nur angewendet, wenn das Flag kUseDefaultGrid
gesetzt ist oder wenn das Flag kAllowIncompletePlacements gesetzt ist und ein einzufügendes Produkt keine vollständige
Platzierungsinformation hat. Vor dem Einfügen der Produkte wird ermittelt, ob mindestens ein Produkt die Standardwerte benötigt. Wenn ja, wird geprüft, ob die Funktion alle Standardwerte übergeben bekommen hat. Fehlt mindestens einer dieser Werte, wird automatisch ein Dialog geöffnet, der die Werte fehlenden erfragt. |
|||
defaultMasterpage | String oder char* | 0 | Name der Musterseite, die verwendet werden soll, wenn neue Seiten ins Dokument eingefügt
werden müssen. Sollen in einseitigen Dokumenten für linke und rechte Seiten unterschiedliche Musterseiten
verwendet werden, werden beide Musterseitennamen in einfache Anführungszeichen und durch Komma getrennt
angegeben. Beispiel 1 : "A-Musterseite" Beispiel 2 : "'A-Musterseite-li', ''A-Musterseite-re'" |
gridID | int | 0 | Standardraster. Zum Einfügen werden der Reihenfolge nach (sortiert nach ihrer ID) die Stellplätze des Rasters verwendet. |
pageitemID | int | 0 | Standardtemplate zum Einfügen der Produkte. Enthält ein Produkt eine davon abweichende Angabe zum Template, wird dieses Template verwendet. Dabei wird darauf geachtet, dass das Template zum Typ der Zielseite passt und bei Bedarf auf ein Ausweichtemplate zurückgegriffen, siehe dazu in der Beschreibung der Palette 'Templates'. |
anchor | int | 0 | Gesperrte Seitenfläche. Die Angabe gilt nur für die Startseite des Importes, alle folgenden Seiten werden
ja neu angelegt und sind leer. Als Vergleichsgrenzen wird der Rahmen baseFrame verwendet.
Ist diese Angabe leer, können die Grenzen in den folgenden Parametern left, ... gegeben werden. -1 : Dialog zur Nachfrage öffnen 0 : Ganze Seite zum Einfügen verwenden 1 : Unter dem Rahmen beginnen 2 : Neben dem Rahmen beginnen 3 : Unter und neben dem Rahmen darf eingefügt werden |
⇨Angaben zur Positionierung auf der Startseite. Die Angaben gelten nur für die Startseite und nur für Objekte, die mit dem Standardraster eingefügt werden. Es kann fetsgelegt werden, ob erst neben und/oder unter dem gegebenen Rahmen eingefügt werden soll. In diesen Fällen werden nur Rasterplätze ausgewählt, deren Rahmen den gegebenen Rahmen nicht überschneiden. | |||
left | float | 0.0 | Bei der Verwendung eines Standardrasters muss ermittelt werden, welches der erste verwendete Rasterplatz sein soll. Das wird über einen Seitenrahmen und eine Ankerposition festgelegt. left legt die linke Seite des Rahmens fest. |
top | float | 0.0 | ... obere Seite des Rahmens |
right | float | 0.0 | ... rechte Seite des Rahmens |
bottom | float | 0.0 | ... untere Seite des Rahmens |
purgeSequence | int | 0 | Produkte jeweils in eigener Sequenz bearbeiten 0 - Gesamter Aufbau in einer Sequenz. Der Aufbau kann mit einem Undo rückgängig gemacht werden. Größere Importe werden meist durch einen Dialog unterbrochen, der nutzlos mitteilt, dass die Sequenz zu groß ist, und deshalb nicht rückgängig gemacht werden kann. 1 - Jedes Produkt wird in einer eigenen "gepurgten" Sequenz (siehe purge_sequence) bearbeitet. Beim Undo wird jedes Produkt einzeln wieder aus dem Dokument entfernt. Bei "clean" hat der Parameter keine Bedeutung. |
sequName | String oder char* | "Aufbau %d. Produkt" | Name einer einzelnen Importsequenz, wird nur bei purgeSequence != 0 verwendet. Die Angabe muss genau ein %d enthalten, das durch den aktuellen Importzähler ersetzt wird, also etwa "Import %d. Produkt". Ist die Angabe leer, wird der Defaultstring verwendet. |
preScript | int | kNoRule | ID des Vorbereitungsskriptes. Das Skript wird ausgeführt, nachdem die Liste der zu importierenden Produkte
ermittelt worden ist und kann dazu verwendet werden, die Produktliste zu bearbeiten. Siehe dazu auch product::set, product::clone,
productlist und unter dem Absatz Skriptunterstützung. kNoRule - Kein Skript ausführen Sonst ID des Skriptes, Skriptaufbau siehe hier. |
Baue über ein Palettenskript alle mit einem Auge markierten Produkte, die ein Oberprodukt haben, im Dokument auf.
#include "internal/types.h"
int main () { char errmess[512]; int result;
if (gRun != 1) return 0;
result = document::build_products (   "watched id2 > 0",// Nur Unterprodukte mit Auge   kAllowIncompletePlacements,   errmess, // Fehlernachricht
  // Zielseite und -ebene. Ist baseFrame definiert,   // werden Seitennummer und Ebene ignoriert   gFrame,   true, // Rahmen löschen   -1, // Seitennummer   "", // Ebene
  // Platzierungshinweise   // Ist einer der Werte undefiniert, wird   // ein Dialog geöffnet, der den Wert   // erfragt.   "A-Musterseite",// Musterseite   2, // Raster ID   1, // Template ID   0); // Anker (undef = -1)
if (result && result != -1199)   showmessage ("%d : %s", result, errmess);
return 0; }
Um alle Produkte mit Oberprodukt aufzubauen, die in der Liste zu sehen sind, muss im obigen nur das Statement geändert werden.
list id2 > 0 and level = 1
Und zur Demonstration, wie kurz die Anweisung sein kann, noch mal ohne Kommentare.
int main () { char errmess[512]; int result;
if (gRun != 1) return 0;
result = document::build_products ( "watched id2 > 0", kAllowIncompletePlacements errmess);
if (result && result != -1199) showmessage ("%d : %s", result, errmess);
return 0; }
static int document::get_firstpagetype(ItemRef docRef = 0)
Ermittle ob die die erste Dokumentseite eine linke, mittlere oder rechte Seite ist. Der Befehl liefert nur bei einseitigen Dokumenten ein Ergebnis, sonst wird immer 1 zurückgegeben.
Name | Typ | Default | Beschreibung |
Return | int | kLeftPage (0) : linke Seite kRightPage (2) : rechte Seite 1 : kein oder doppleseitiges Dokument |
|
docRef | ItemRef | 0 | Dokument, von dessen erster Seite der Typ ermittelt werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::set_firstpagetype(int typ, ItemRef docRef = 0)
Lege fest, ob die erste Dokumentseiten eine linke oder eine rechte Seite ist. Das Festlegen des Types der ersten Seite geht nur in einseitigen Dokumente. Der Seitentyp wird benötig, um feststellen zu können, welchen Seitentyp eine beliebige Dokumentseite hat.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
typ | int | - | kLeftPage (0) : linke Seite kRightPage (2) : rechte Seite |
docRef | ItemRef | 0 | Dokument, von dessen erster Seite der Typ geändert werden soll gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::split(
ItemRef docRef = 0,
char* postfix = "",
char* basename = "",
char* destPath = "")
Trennen eines Dokumentes in Einzelseiten. Das angegebene Dokument wird in einzelne Teildokumente zerlegt. Jedes Teildokument enthält eine Seite des Originales. Die Teildokumente enthalten jeweils alle Musterseiten, Stilinformationen, Farben, usw. des Originales. Linke Seiten bleiben linke Seiten und rechte Seiten rechte Seiten.
Existieren im Zielordner Seitendokumente mit gleichem Namen, werden sie gelöscht!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
postfix | String oder char* | "" | Die Namen der Seitendokumente werden mit einem Postfix und der Seitennummer versehen, also etwa myfile_1.indd, myfile_2.indd, ... . Die Seitennummer wird automatisch vergeben, was zwischen Name und Nummer steht, können Sie bestimmen. |
basename | String oder char* | "" | Basisname der Seitendokumente "" : Verwende den Namen der Originaldatei |
destPath | String oder char* | "" | Zielpfad, an dem die Seitendokumente abgelegt werden sollen. Existiert dieser Ordner nicht wird
er angelegt. "" : Ordner des Originaldokumentes |
static int document::concat(char* dest, char* src)
Anfügen der Seiten eines Dokumentes an ein anderes. Alle Seiten des zweiten Dokumentes werden an das erste Dokument angefügt. Musterseiten, Stilinformationen, Farben usw. werden nicht übernommen.
Beim Anfügen der Dokumentseiten können Spreads getrennt werden. Magnete zwischen so getrennten Seiten gehen dabei verloren.
Sichtbare Comet-Notizen werden übernommen. Unsichtbare Comet-Notizen werden ignoriert.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
dest | String oder char* | - | Pfad des Dokumentes, an das angefügt werden soll.
Die Datei muss nicht in InDesign® geöffnet sein. "" : aktuelles InDesign® -Dokument |
src | String oder char* | - | Pfad der InDesign® -Datei, die angefügt werden soll |
static int (
char* firstPath,
char* newname = "",
char* destpath = "",
long lastPage = -1)
DEPRECATED! Verwenden Sie dafür die Funktionen file::get_nth und document::concat.
Name | Typ | Default | Beschreibung |
Return | int | -1198 |
static int document::allow_shuffle(ItemRef docRef = 0, int allow = 1)
Neue Seitenanorndung in einem Dokument zulassen oder verbieten
Name | Typ | Default | Beschreibung |
Return | int | Fehlercode or 0 | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
allow | int | 1 | Neue Seitenanorndung zulassen oder verbieten 1 : Zulassen 0 : Verbieten |
static int document::justify_text(
ItemRef docRef,
int page,
char layerName,
int keepLast,
char* style1,
...)
Vertikaler Keil. Der vertikale Keil vergrößert in den Rahmen einer Seite in einer Liste gegebener Absatzstile den "Abstand vor" so, dass der Text den Rahmen jeweils vollständig ausfüllt. Die Absatzstile können zu unterschiedlichen Anteilen am vertikalen Keil beteiligt sein.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
page | int | - | 1-basierte Seitenangabe im Dokument, deren Textrahmen bearbeitet werden sollen -1 : Alle Dokumentseiten |
layerName | String oder char* | - | Einschränkung der Bearbeitung auf eine Ebene "" : alle Ebenen "--visible--" : nur sichtbare Ebenen "--active--" : nur die aktive Ebene sonst : Gültiger Ebenenname |
keepLast | int | - | 1 : Der letzte Rahmen einer Textverkettung wird unverändert gelassen 0 : Letzten Rahmen auch bearbeiten |
style1, percent1, ... | String oder char*, float, ... | - | Beliebig lange Liste von jeweils einem Absatzstil-Namen und einer Prozentangabe (als float).
Die Prozentangabe legt fest, zu welchem Anteil ein Absatzstil am vertikalen Keil beteiligt
sein soll. Mit Angabe 0.0 werden die Abstände gleichmäßig verteilt. Die Summe der Prozente
darf nicht größer als 100.0 sein. 0 oder "" : Beliebiger Absatzstil |
static int document::justify_text_reset(
ItemRef docRef,
int page,
char* layerName,
int keepLast,
char* style1,
...)
Vertikalen Keil zurücksetzen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
page | int | - | 1-basierte Seitenangabe im Dokument, deren Textrahmen bearbeitet werden sollen -1 : Alle Dokumentseiten |
layerName | String oder char* | - | Einschränkung der Bearbeitung auf eine Ebene "" : alle Ebenen "--visible--" : nur sichtbare Ebenen "--active--" : nur die aktive Ebene sonst : Gültiger Ebenenname |
keepLast | int | - | 1 : Der letzte Rahmen einer Textverkettung wird unverändert gelassen 0 : Letzten Rahmen auch bearbeiten |
style1, ... | String oder char*, ... | - | Liste von Paragraphenstilen, deren "Abstand vor" wieder auf den Wert zurückgesetzt werden soll, den die Stildefinition enthält |
static int document::remove_redundant_tags(
ItemRef docRef = 0,
int page = -1,
char* layerName = "")
Textplatzhalter aufräumen. Werden in einem Textplatzhalter Textattribute (Font, Farbe, Größe, ...) geändert, werden die Platzhalter intern in verschiedende sogenannte Runs getrennt. Die Comet-Plugins stellen sicher, dass alle zusammengehörigen Runs richtig erkannt werden. Für Templates und Musterdokumente ist es aus Performancegründen aber sinnvoll, diese redundanten Runs wieder zu verbinden.
Über das Menü Plug-ins -> Platzhalter -> Platzhalter vor dem Sichern aufräumen (Zusatzmodule statt Plug-ins in Versionen vor InDesign® 2025)können die redundanten Platzhalter im gesamten Dokument auch automatisch entfernt werden.
Die Funktion beseitigt in allen Textrahmen des Dokumentes redundante Textplatzhalter. Die Bearbeitung kann dabei auf eine Seite und bestimmte Ebenen eingeschränkt werden. Es wird aber empfohlen, die Platzhalter im gesamten Dokument zu bereinigen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
page | int | -1 | 1-basierte Seitenangabe im Dokument, deren Textrahmen bearbeitet werden sollen -1 : Alle Dokumentseiten |
layerName | String oder char* | "" | Einschränkung der Bearbeitung auf eine Ebene "" : alle Ebenen "--visible--" : nur sichtbare Ebenen "--active--" : nur die aktive Ebene sonst : Gültiger Ebenenname |
static int document::table_of_content(
ItemRef frameRef,
char* styleName,
int update_all = 1)
Einfügen oder Aktualisieren von Inhaltsverzeichnissen. Enthält das Dokument Texte mit Overset, wird ein Warndialog gezeigt, der erfragt, ob die im Overset befindlichen Textteile bei der Erstellung des Inhaltsverzeichnises beachtet werden sollen oder nicht. Dieser Dialog kann nicht verhindert werden. Hier ein Ausschnitt aus der Adobe-Entwicklerdoku : Set the include overset flag to determine if we should include table of content entries in overset. In fact, the include overset flag is set in runtime through user's input(a warning dialog). Currently, the function is only used for scripting to control the default behavior if we should include overset or not.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
frameRef | ItemRef | - | Zielrahmen != 0 : Einfügen oder Aktualieren eines Inhaltsverzeichnisse in diesem Rahmen. Ist der Rahmen kein Textrahmen, wird versucht, den Rahmen in einen Textrahmen zu konvertieren. Enthält der Rahmen Text, wird dieser Text entfernt. 0 : Aktualisiere alle Inhaltsverzeichnisse mit dem Namen styleName des aktuellen Dokumentes. (update_all muss in diesem Fall den Wert 1 haben!) |
styleName | String oder char* | "" | Name eines existierenden Inhaltsverzeichnis-Stiles "" : Benutze den Standardstil, der im Dokument angegeben ist |
update_all | int | 1 | Wenn sich im Dokument noch weitere Inhaltsverzeichnisse des gegebenen Stiles befinden, wie soll verfahren werden? 1 : ebenfalls aktualisieren 0 : unverändert lassen |
Ersetze den Inhalt des aktuellen Skriptrahmens durch das Inhaltsverzeichnis "Mein Inhalt". Inhaltsverzeichnisse gleichen Namens im Dokument bleiben unverändert.
int main () { int res;
res = document::table_of_content (gFrame, "Mein Inhalt", 0); wlog ("", "# table_of_content returns %s\n", serror (res));
return 0; }
static int document::adapt_many(char* xmlControlFile = 0)
Seitenadaptionen für das aktuelle ausführen. Die Adaptionen sind in einer Steuerdatei gegeben. Ist keine Steuerdatei gegeben, wird sie erfragt. Für die Funktion muss das Plugin PageAdapter installiert und lizensiert sein.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
xmlControlFile | String oder char* | "" | vollständiger Pfad zur Steuerdatei. "" : Automatische Nachfrage |
Hier ein Beispiel einer gültigen Steuerdatei. Folgende Formatangaben sind erlaubt : A3, A4, A5, B5, CD, US-Letter, US-Long, Tabloid, US-Letter Half, US-Long Half.
<?xml version="1.0" encoding="utf-8"?> <adaptions basename = "" folder = "$DESKTOP/adapt/ok" errfolder = "$DESKTOP/adapt/err"> <adaption> <format>A4</format> <width></width> <height></height> <name></name> </adaption> <adaption> <format>A5</format> <width></width> <height></height> <name></name> </adaption> <adaption> <format>A3</format> <width></width> <height></height> <name></name> </adaption> </adaptions>
static int document::adapt(
float width,
float height,
char* destPath = 0,
char* destName = 0)
Führe für das aktuelle Dokument eine Seitenadaption durch. Das Dokument selbst bleibt dabei unverändert. Für die Funktion muss das Plugin PageAdapter installiert und lizensiert sein.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
width, height | float | - | Größenangaben für die adaptierte Datei in Punkten. |
destPath | String oder char* | "" | Zielpfad für die Adaption "" : Verwende den selben Ordner wie die aktuelle Datei |
destName | String oder char* | "" | Name der Adaption (ohne Kürzel .indd) "" : Namen der aktuellen Datei plus ein "_wxh" verwenden |
AppleScript zum Adaptieren eines Dokumentes.
tell application "Adobe InDesign® CS5"
set d to document 1
tell d
adapt width 333.3 height 444.4
end tell
end tell
static int document::adapt_self(float width, float height)
Führe für das aktuelle Dokument eine Seitenadaption durch. Für die Funktion muss das Plugin PageAdapter installiert und lizensiert sein.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
width, height | float | - | Größenangaben für die adaptierte Datei in Punkten. |
static int document::start_stamping(
int actionID,
ItemRef origin,
ItemList designated = 0,
int autoClose = 0)
Starte das 'Stempeln' von Rahmen. Als Stempeln wird ein Prozess bezeichnet, der ausgehend von einem ersten Rahmen, dem sog. origin, 'irgendetwas' mit den Rahmen tut, die in der Folge angeklickt werden. Die Stempelaktion kann beliebig sein und sich auf die Anzahl der geklickten Rahmen und/oder auf den Originalrahmen beziehen.
Stempelaktionen können ausschließlich aus der Palette Front Row gestartet werden!
Auf Grund eines InDesign-Fehlers können Stempelaktionen zur Zeit leider nicht als ein Schritt rückgängig gemacht werden. Um die Aktionen rückgängig zu machen, müssen daher leider entsprechend viele Undos gemacht werden. Wir versuchen, dieses Verhalten so schnell wie möglich zu korrigieren - aber das liegt nicht alleine aus uns.
Stempel-Skripte müssen mit dem folgenden Pragma und in genau dieser Schreibweise eingeleitet werden:
#pragma _stamp_
Das Stempeln unterteilt sich in drei Unteraktionen:
In der Regel können alle drei Schritte in einem Skript implementiert werden. Anhand der Existenz globlaler Variablen (s.u.) können Sie mit declared unterscheiden, ob der Stempel gestartet oder ausgeführt werden soll. In allen Fällen muß der Stempel entweder automatisch oder mit document::stop_stamping 'irgendwann' beendet werden! Für das Beenden des Stempels eignen sich der Zählerstand gCounter oder z.B. die CMD-Taste (system::cmdkey).
Das Stempeln kann mit designated auf eine beliebige Anzahl von Rahmen beschränkt werden. In diesem Fall werden Klicks auf andere Rahmen ignoriert und das Stempeln kann autmatisch abgebrochen werden, wenn der letzte Rahmen bearbeitet wurde. Setzen Sie dazu den Parameter autoClose auf den Wert 1.
Ist eine Rahmenliste gegeben, werden nach dem Stempel-Start alle beteiligten Rahmen mit einer entsprechenden roten Sequenznummer versehen. Die beim Klicken vergebenen neuen Sequenznummern werden in blau hinter der alten Nummerierung angezeigt. Zum Anzeigen der Sequenznummern muß die Anzeige der Nägel und Magnete im Menü Dokument-Kontext -> Nägel und Magneten -> Zeigen aktiviert sein. Hier ein Screenshot:
Zum Korrigieren der bereits vergebenen Stempel-Reihenfolge klicken Sie einafch in einen bereits blau markierten Rahmen. Die Sequenz und der Zähler gCounter beginnen dann automatisch wieder an Stelle dieses Rahmens und allen Rahmen mit einer höheren blauen Nummer wird ihre blaue Nummer wieder entzogen.
Ohne oder mit leerer Rahmenliste werden keine Sequenznummern gezeigt.
Folgende globale Variablen sind beim Ausführen der Stempel-Aktionen in Schritt 2 und 3 (aber nicht in Schritt 1) definiert.
Name; | Type | Beschreibung |
gCounter | int* |
0-basierte Zählnummer des Stempels. Die Variable ist ein Zeiger, Sie können die Zählummer also im Skript ändern. Den Inhalt erhalten Sie mit *gCounter. |
gOriginalFrame | ItemRef | Der im Parameter origin von document::start_stamping übergebene erste Rahmen der Stempelaktion. |
Name | Typ | Default | Beschreibung |
Return | int | 0 : Kein Fehler und weitermachen 1 : Stempeln abbrechen |
|
actionID | int | - | ID der auszuführenden Aktion. -1 : Aktuelles Skript |
origin | ItemRef | - | Originalrahmen. Üblicherweise ist das der aktuelle Scriptrahmen gFrame. |
designated | ItemList | 0 | Liste der Rahmen, die gestempelt werden können. Die Liste sollte den Rahmen origin enthalten.
Die Rahmen werden in der Reihenfolge der Liste mit einer rot eingekreisten Sequenznummer versehen. 0 : Alle Rahmen dürfen bearbeitet werden. In diesem Fall erhalten die Rahmen keine Sequenznummern. |
autoClose | int | 0 | Soll das Stempeln automatisch beendet werden? 1 : Ja. Das Stempeln wird automatisch beendet, wenn der Zähler gCounter die Länge der Liste designated erreicht hat. Ist die Liste designated leer, wird die Option ignoriert. Hinweis : Durch Hochsetzen des Zählers oder mit einem Returnwert > 0 können Sie das Stempeln unabhängig von dieser Option auch eher beenden. sonst : Nicht automatisch beenden |
Das Skript nimmt die Farbe des ersten Rahmens und verringert in allen Folgerahmen den Grünanteil um 20. Hier ein Vorher/Nachher-Screenshot, bei
dem zuerst im grünen Rahmen das Stempeln gestartet wurd und dann der Reihe nach die blauen Rahmen geklickt wurden.
#pragma _stamp_
#include "internal/types.h" #include "internal/text.h"
int main () { float c1, c2, c3, c4;
if (system::cmdkey ()) { document::stop_stamping (); beep (); return 1; }
if (!declared ("gCounter")) { document::start_stamping (-1, gFrame); return 0; }
if (*gCounter > 0) { frame::get_color (gOriginalFrame, 0, 0, &c1, &c2, &c3, &c4); frame::color_rgb (gFrame, (int)(c1), (int)(c2) - (20 * *gCounter), (int)(c3)); }
return 0; }
Das nächste Beispiel ist etwas komplexer: Es werden alle Rahmen der aktuellen Seite (oder bei linken Seiten alle Rahmen des Spreads) gesucht, die einen bestimmten Platzhalter (im Beispiel der Platzhalter 10) enthalten. Die gefundenen Rahmen werden seitenweise sortiert nach ihrem Platzhalter-Präfix (der in diesem Fall eine Zahl enthalten sollte). Mit dieser Rahmenliste wird das Stempeln gestartet. Mit jedem Klick in einen Rahmen dieser Liste bekommt der Platzhalter jetzt die aktuelle Sequenznummer (plus 1, weil 0-basiert!) als Präfix. Ist der letzte Rahmen bearbeitet, wird das Stempeln automatisch beendet.
#pragma _stamp_
/* @@ICONID 533 @@SEQ 1 @@LABEL Leitziffern @@HELP Your Help Text */
#include "internal/types.h" #include "internal/text.h"
//***************************************************************************
int stPlaceholderID = 10;
//***************************************************************************
// Sort all links by their prefixes // int sort_links (Link a, Link b) { int result = 0; int pga = page::get (link::frame (a)); int pgb = page::get (link::frame (b)); String prea = string::alloc (); String preb = string::alloc ();
if (pga == pgb) { link::prefix (a, prea); link::prefix (b, preb); if (string::compare (preb, prea) < 0) result = 1; } else { if (pgb < pga) result = 1; }
string::release (prea); string::release (preb); return result; }
//***************************************************************************
// Get all frames of the page // If we are on a left page, also add the frames of the right page. // ItemList get_frames (ItemRef fr) { int pg = page::get (fr); ItemList pageFrames = itemlist::pageframes (pg, 1); ItemList pageFrames2 = 0; LinkList lli = linklist::alloc (0); Link li; ItemRef lif;
itemlist::sort (pageFrames, kSortRowwise); if (pg % 2 == 0) { pageFrames2 = itemlist::pageframes (pg + 1, 1); itemlist::sort (pageFrames2, kSortRowwise); itemlist::appendlist (pageFrames, pageFrames2); itemlist::release (pageFrames2); }
linklist::collect_any (lli, pageFrames, "--list--", kFirstIgnore, kSortNo, stPlaceholderID); linklist::sort (lli, sort_links); itemlist::clear (pageFrames); li = linklist::first (lli);
while (li) { lif = link::frame (li); if (itemlist::get_pos (pageFrames, lif) < 0) { itemlist::append (pageFrames, lif); } li = linklist::next (lli); } linklist::release (lli);
return pageFrames; }
//***************************************************************************
int find_placeholder (ItemRef fr, int pid) { int result = -1; int pos = 0; int len, phid;
while (pos < textmodel::fulllength (fr)) { len = 0; textmodel::get_placeholder (fr, pos, &pos, &len, &phid); if (len > 0) { if (phid == pid) { result = pos; break; } pos = pos + len; } else { pos = pos + 1; } }
return result; }
//***************************************************************************
// Main function // int main () { char txt [512]; ItemList pageFrames = 0; int pos;
// Emergency exit if (system::cmdkey ()) { document::stop_stamping (); wlog ("", "# Stamping Finished\n"); beep (); return 1; }
if (!declared ("gCounter")) { pageFrames = get_frames (gFrame); document::start_stamping (-1, gFrame, pageFrames, 1); itemlist::release (pageFrames); wlog ("", "# Start stamping\n"); return 0; }
pos = find_placeholder (gFrame, stPlaceholderID); if (pos < 0) return 0;
sprintf (txt, "%d | ", *gCounter + 1);
placeholder::change_tags (gFrame, 0, "Prefix+Apply", txt, kTextPlaceholder, pos, 1); placeholder::load (gFrame, 0, pos, 1);
return 0; }
static int document::stop_stamping()
Beende das Stempeln von Rahmen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode |
static int document::resize(float width, float height)
Ändere die Seitengröße des aktuellen Dokuments
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
width, height | float | - | neue Breite / Höhe des Dokuments |
static int document::getid(
ItemRef docRef,
int* id1,
int* id2 = 0,
int* id3 = 0,
char* stringid = 0)
Hole die Comet-ID eines Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
id1 | int* | - | Variable für die ID1 der Dokument-ID |
id2 | int* | 0 | Variable für die ID2 der Dokument-ID, darf 0 sein |
id3 | int* | 0 | Variable für die ID3 der Dokument-ID, darf 0 sein |
stringid | String oder char* | 0 | Variable für die StringID der Dokument-ID, darf 0 sein |
static int document::setid(
ItemRef docRef,
int id1,
int id2 = 0,
int id3 = 0,
char* stringid = 0)
Setze die Comet-ID eines Dokumentes. Die ID1 eines Dokumentes muss >=0 sein.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
id1 | int | - | Wert für ID1 der Dokument-ID |
id2 | int | 0 | Wert für ID2 der Dokument-ID |
id3 | int | 0 | Wert für ID3 der Dokument-ID |
stringid | String oder char* | 0 | Wert für die StringID der Dokument-ID |
static ItemRef document::get_book(ItemRef docRef = 0)
Hole das Buch, zu dem ein Dokument gehört. Das Buch muss in InDesign® geöffnet sein.
Name | Typ | Default | Beschreibung |
Return | ItemRef | Neue Referenz auf das geöffnete Buch. Vor einem neuen Aufruf an die Funktion muss das Ergebnis mit item::release wieder gelöscht werden. 0 : Das Dokument gehört zu keinem Buch oder das Buch ist nicht geöffnet oder es ist gar kein Dokument geöffnet |
|
docRef | ItemRef | 0 | Dokument, dessen Buch ermittelt werden soll. gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Ermittle das Buch des aktuellen Dokumentes und schreibe alle Schwestern-Dokumente ins Logfile.
int main () { ItemRef book = document::get_book (0); int i;
if (book::is_valid (book)) { for (i = 0; i < book::count_docs (book); i++) { wlog ("", "%d. Dokument : '%s'\n", i+1, book::nth_doc (book, i)); } }
item::release (book); return 0; }
static int document::update_crossrefs(
ItemRef docRef = 0,
ItemList frames = 0,
int updateCrossrefs = 1,
int showProgress = 0)
Neuberechnung aller Querverweis-Platzhalter in einem Dokument. Ist das Dokument Teil eines geöffneten Buches, werden auch die Referenzen aller anderen Dokumente des Buches aktualisiert.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Dokument, dessen Querverweis-Platzhalter aktualisiert werden sollen gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
frames | ItemList | 0 | Nur diese Rahmen sollen bearbeitet werden. Ist die Angabe ungleich 0, wird der Wert von docRef ignoriert. |
updateCrossrefs | int | 1 | Querverweis-Platzhalter aktualisieren? 0 : Nein. Diese Angabe bewirkt bei geöffneten Büchern eine Aktualisierung der Seitennummerierung. Sonst hat sie keinen Einfluss. 1 : Nur wenn das Dokument Teil eines Buches ist. In diesem Fall werden auch die Referenzen dieser Bücher aktualisiert. 2 : Die Referenzen sollen auch in einem einzelnen Dokument aktualisiert werden. |
showProgress | int | 0 | Soll beim Aktualisieren der Querverweis-Platzhalter ein Progressbalken gezeigt werden? 0 : Nein 1 : Ja |
static int document::get_bleed(
ItemRef docRef,
int pageNum,
float* inner,
float* top,
float* outer,
float* bottom,
int* isUniform)
Ermittle den Anschnitt, den das Dokument erwartet.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
pageNum | int | - | 1-basierte Seitennummer. Die Seitennummer ist wichtig, um über den Seitentyp zu ermitteln, welches die Außen- und welches die
Innenkante der Seite ist. -2 : Werte ohne Beachtung der Seite holen -1 : Aktuelle Seite Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert. Von Illustrator wird der Parameter ignoriert. |
inner, top, outer, bottom | float* | - | Variablen für die Ergebnisse. Alle Angaben sind in Punkten (z.B. &inner) |
isUniform | int* | - | Wird für alle kanten der gleiche Bleed verwendet? |
static int document::get_slug(
ItemRef docRef,
int pageNum,
float* inner,
float* top,
float* outer,
float* bottom,
int* isUniform)
Ermittle den Infobereich, den das Dokument bereitstellt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
pageNum | int | - | 1-basierte Seitennummer. Die Seitennummer ist wichtig, um über den Seitentyp zu ermitteln, welches die Außen- und welches die
Innenkante der Seite ist. -2 : Werte ohne Beachtung der Seite holen -1 : Aktuelle Seite Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert. |
inner, top, outer, bottom | float* | - | Variablen für die Ergebnisse. Alle Angaben sind in Punkten (z.B. &inner) |
isUniform | int* | - | Wird für alle Kanten der gleiche Anschnitt verwendet? |
static int document::set_bleed(
ItemRef docRef,
float inner,
float top,
float outer,
float bottom)
Setze den Dokument-Anschnitt. Durch die Veränderung der Anschnittsgröße eines Dokumentes wird auch die Größe der Montagefläche verändert!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
inner | float | - | Neuer Wert für den Anschnitt (in Punkten) an der Innenkante. Fehlen die Angaben für top, outer und bottom, wird dieser Wert für alle vier Seiten verwendet. |
top, outer, bottom | float | siehe oben |
static int document::set_slug(
ItemRef docRef,
float inner,
float top,
float outer,
float bottom)
Setze den Dokument-infobereich. Durch die Veränderung des Infobereiches eines Dokumentes wird auch die Größe der Montagefläche verändert!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
inner | float | - | Neuer Wert für den Anschnitt (in Punkten) an der Innenkante. Fehlen die Angaben für top, outer und bottom, wird dieser Wert für alle vier Seiten verwendet. |
top, outer, bottom | float | siehe oben |
static int document::get_pasteboard_gutter(
ItemRef docRef,
float* minXBorder,
float* minYBorder)
Ermittle die Größe der Ränder für den Arbeitsbereich.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode pasteBoardDocErr (1272) : CS-Versionen vor CS5 |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
minXBorder | float* | - | Minimalwert für den linken und den rechten Rand |
minYBorder | float* | - | Minimalwert für den oberen und den unteren Rand |
static int document::set_pasteboard_gutter(
ItemRef docRef,
float minXBorder,
float minYBorder)
Setze die Größe der Ränder für den Arbeitsbereich.
Verkleinerungen der Arbeitsfläche werden automatisch so begrenzt, dass keine Rahmen von der Arbeitsfläche fallen. Mindestens eine Kante der Rahmen bleibt sichtbar.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode pasteBoardDocErr (1272) : CS-Versionen vor CS5 |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
minXBorder | float | - | neuer Minimalwert für den linken und den rechten Rand -1.0 : Unverändert lassen -10.0 : Standard (595.276 Pt, Änderungen der InDesign® -Voreinstellungen für diesen Wert werden ignoriert.) |
minYBorder | float | - | neuer Minimalwert für den oberen und den unteren Rand -1.0 : Unverändert lassen -10.0 : Standard (72.0 Pt, Änderungen der InDesign® -Voreinstellungen für diesen Wert werden ignoriert.) |
static int document::show_page_elements(ItemRef docRef, int state)
Zeige oder verstecke die in den Dokumentseiten hinterlegten Seiteninformationen und -elemente.
Beim Druck und in PDFs werden die Seitenelemente nicht gezeigt. Die Wirkung der Einstellung ist deshalb nur unter InDesign® Desktop sichtbar. Trotzdem wird die Einstellung auch unter InDesign® Server und comet_pdf ins Dokument übernommen. Mit comet_pdf können die Seitenelemente mit der Option -ae im PDF sichtbar gemacht werden.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
state | int | -1 | Anzeigestatus -1 : Umschalten 0 : Verstecken 1 : Zeigen |
static int document::page_elements_shown(ItemRef docRef = 0)
Werden die Seiteninformationen und -elemente im Dokument angezeigt oder nicht?
Name | Typ | Default | Beschreibung |
Return | int | 0 : unsichtbar (oder Fehler) 1 : sichtbar |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::export_notes(
ItemRef docRef = 0,
char* destPath = 0,
String destString = 0,
int flags = 4)
Siehe document::notes::export_
static int document::import_notes(
ItemRef docRef = 0,
char* srcPath = 0,
String srcString = 0,
int flags = 6)
Siehe document::notes::import
static int document::show_notes(ItemRef docRef = 0)
Siehe document::notes::show
static int document::hide_notes(ItemRef docRef = 0)
Siehe document::notes::hide
static int document::set_default_style(
ItemRef docRef,
int type,
char* stylePath)
Standardstil setzen. Beachten Sie, dass Stildefinitionen dokumentabhängig definiert sind.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
type | int | - | Welcher Stil soll gesetzt werden? 1 : Absatzstil 2 : Zeichenstil |
stylePath | String oder char* | - | Name oder Pfad des Stiles, der als Standard verwendet werden soll. Der Stil muss definiert sein. Als Pfadtrenner wird ':' verwendet. |
Ermittle den bisherigen Standard-Absatzstil und setze dann einen neuen Stil. Den alten Stil müssen Sie in Anwendungen natürlich nur dann holen, wenn Sie auch was damit machen wollen.
int main () { char oldStyle [256]; int res;
*oldStyle = 0; document::get_default_style (0, 1, oldStyle); showmessage ("Old default style : '%s'.", oldStyle);
res = document::set_default_style (0, 1, "Beta:Geuze"); if (res) showmessage ("Cannot set default style.");
return 0; }
static char* document::get_default_style(
ItemRef docRef,
int type,
char* stylePath)
Ermittle einen Standardstil. Beachten Sie, dass Stildefinitionen dokumentabhängig definiert sind.
Name | Typ | Default | Beschreibung |
Return | String oder char* (Abhängig von Parameter stylePath) | Die Eingabevariable stylePath | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
type | int | - | Welcher Stil soll erfragt werden? 1 : Absatzstil 2 : Zeichenstil |
stylePath | String oder char* | - | Name oder Pfad des Stiles, als Pfadtrenner wird ':' verwendet. |
Ermittle den bisherigen Standard-Absatzstil und setze dann einen neuen Stil.
int main () { char oldStyle [256]; int res;
*oldStyle = 0; document::get_default_style (0, 1, oldStyle); showmessage ("Old default style : '%s'.", oldStyle);
res = document::set_default_style (0, 1, "Beta:Geuze"); if (res) showmessage ("Cannot set default style.");
return 0; }
static int document::set_modified(ItemRef docRef = 0, int modified = 0)
Setze den Sichern-Status eines Dokumentes. Der Aufruf lässt den Inhalt des Dokumentes unverändert. Mit dem Aufruf können Sie erzwingen, dass unveränderte Dokumente neu gesichert werden bzw. veränderte Dokumente ohne Sichern geschlossen werden können. Der Aufruf hat insbesondere in Batch-Skripten, bei denen lediglich Informationen aus dem Dokument gesammelt werden sollen, Bedeutung.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
modified | int | 0 | neuer Dokumentstatus 0 : Dokument nicht geändert 1 : Dokument geändert |
Ein Dokument soll, obwohl möglicherweise verändert, ungesichert geschlossen werden.
int main () { document::set_modified (); return 0; }
static int document::get_modified(ItemRef docRef = 0)
Ermittle den Sichern-Status eines Dokuments.
Name | Typ | Default | Beschreibung |
Return | int | 0 (nicht geändert) oder 1 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Ungesicherte Dokumente sollen von der Bearbeitung ausgeschlossen werden.
int main () { if (document::get_modified ()) { return 0; }
// weitere Bearbeitung // ...
return 0; }
static int document::set_units(
ItemRef docRef = 0,
int horiz_unit = 0,
int vert_unit = 0,
int text_units = 0,
int text_size_units = 0,
int print_units = 0,
int line_units = 0,
float customHPoints = -1.0,
float customVPoints = -1.0,
float key_nudge = -1.0,
float ppi = -1.0)
Maßeinheiten des Dokumentes setzen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
horiz_unit, horiz_unit | int | 0 | Maßeinheit horizontal/vertikal 0, kUnitUndefined: unverändert lassen kUnitPoints kUnitPicas kUnitInches kUnitInchesDecimal kUnitMillimeters kUnitCentimeters kUnitCentimeters kUnitCiceros kUnitAgates (ab CS5) kUnitPixels (ab CS5) |
text_units | int | 0 | Maßeinheit (??) 0, kUnitUndefined: unverändert lassen kUnitPoints kUnitPixels (ab CS5) |
text_size_units | int | 0 | Maßeinheit 'Textgröße' 0, kUnitUndefined: unverändert lassen kUnitPoints kUnitPixels (ab CS5) |
print_units | int | 0 | Maßeinheit 'Drucken' 0, kUnitUndefined: unverändert lassen kUnitPoints kUnitMillimeters kUnitPixels (ab CS5) |
line_units | int | 0 | Maßeinheit 'Kontur' 0, kUnitUndefined: unverändert lassen kUnitPoints kUnitMillimeters kUnitPixels (ab CS5) |
customHPoints, customVPoints | float | -1.0 | custom points for horz/vert ruler - Was immer das bedeutet -1.0 unverändert lassen sonst : Angabe in Punkten |
key_nudge | float | -1.0 | Tastaturschritte Pfeiltasten -1.0 unverändert lassen sonst : Angabe in Punkten |
ppi | float | -1.0 | Punkt/Zoll -1.0 unverändert lassen sonst : Angabe in Punkten |
#include "internal/types.h"
int w_unit (char * m, int u) { char ustr[512];
if (u == kUnitUndefined) strcpy (ustr, "Unit undefined"); else if (u == kUnitPoints) strcpy (ustr, "points"); else if (u == kUnitPicas) strcpy (ustr, "picas"); else if (u == kUnitInches) strcpy (ustr, "inches"); else if (u == kUnitInchesDecimal) strcpy (ustr, "decimal inches"); else if (u == kUnitMillimeters) strcpy (ustr, "mm"); else if (u == kUnitCentimeters) strcpy (ustr, "cm"); else if (u == kUnitCiceros) strcpy (ustr, "ciceros"); else if (u == kUnitAgates) strcpy (ustr, "agates"); else if (u == kUnitPixels) strcpy (ustr, "pixels");
if (m) wlog ("", "# %s : ", m); wlog ("", "%s\n", ustr); return 0; }
int w_units (ItemRef docRef) { float h, v, nudge, ppi;
w_unit ("Horizontal", document::get_units (docRef, kHorizontalUnit)); w_unit ("Vertical", document::get_units (docRef, kVerticalUnit)); w_unit ("Text", document::get_units (docRef, kTextUnit)); w_unit ("Textsize", document::get_units (docRef, kTextSizeUnit)); w_unit ("Print", document::get_units (docRef, kPrintUnit)); w_unit ("Line", document::get_units (docRef, kLineUnit));
h = document::get_custompoints (docRef, kHorizontalUnit); v = document::get_custompoints (docRef, kVerticalUnit); nudge = document::get_keynudge_inc (docRef); ppi = document::get_ppi (docRef);
wlog ("", "Pointsize [%f, %f], key nudge %f, ppi %f\n", h, v, nudge, ppi);
return 0; }
int main () { float h, v, nudge, ppi;
wlog ("", "=== Before ===\n"); w_units (0);
document::set_units ( 0, kUnitPixels, // horiz kUnitAgates, // vert kUnitPixels, // text pt/px kUnitPixels, // textsize pt/px kUnitMillimeters, // print pt/px/mm kUnitMillimeters, // lines pt/px/mm 18.0, 22.0, 2.3456, 120.0);
wlog ("", "=== After ===\n"); w_units (0);
return 0; }
static int document::get_units(ItemRef docRef = 0, int what = 0)
Maßeinheit des Dokumentes holen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder kUnitPoints kUnitPicas kUnitInches kUnitInchesDecimal kUnitMillimeters kUnitCentimeters kUnitCentimeters kUnitCiceros kUnitAgates (ab CS5) kUnitPixels (ab CS5) |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
what | int | kHorizontalUnit | Welche Maßeinheit soll ermittelt werden? kHorizontalUnit kVerticalUnit kTextUnit Maßeinheit '??' kTextSizeUnit Maßeinheit 'Textgröße' kPrintUnit Maßeinheit 'Drucken' kLineUnit Maßeinheit 'Kontur' |
static float document::get_custompoints(ItemRef docRef = 0, int what = 0)
Zitat aus der InDesign® -API für Plug-Ins : "custom points for horz/vert ruler". Diese Werte holt die Funktion.
Name | Typ | Default | Beschreibung |
Return | float | aktueller Wert in Punkten oder 0.0 im Fehlerfall | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
what | int | kHorizontalUnit | Welcher Wert soll ermittelt werden? kHorizontalUnit kVerticalUnit |
static float document::get_keynudge_inc(ItemRef docRef = 0)
Länge der Tastaturschritte der Pfeiltasten.
Name | Typ | Default | Beschreibung |
Return | float | aktueller Wert in Punkten oder 0.0 im Fehlerfall | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static float document::get_ppi(ItemRef docRef = 0)
Pixel/Punkt des Dokumentes.
Name | Typ | Default | Beschreibung |
Return | float | aktueller Wert in Punkten oder 0.0 im Fehlerfall | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::get_visible_areas(
ItemRef docRef,
int page,
int flags,
List pageNums,
List cometGroupIDs,
IDTypeList ids,
RectList bboxes,
FloatList visible_sizes,
FloatList sizes,
FloatList percents)
Berechnen der Flächen, die Cometgruppen im Dokument belegen. Die sichtbare Flächen eines Rahmens ist die Fläche, die sich aus der folgenden Schnittmenge ergibt :
Wie Sie sich sicher denken können, ist das Verfahren zur Berechnung der Schnittflächen und Größen beliebiger Formen nicht ganz einfach. Die Integrale der Kurven (Bézier-Kurven) werden durch Interpolation berechnet. Dabei ergibt sich ein kleiner Rundungsfehler von durchschnittlich 0,03 ‰. Das ist etwa 150-mal weniger als der in alkoholfreiem Bier tolerierte Alkoholgehalt. Eine Verkleinerung des Fehlers um eine weitere 0 nach dem Komma bedeutet einen etwa 100-mal größeren Rechenaufwand (aus jeder Sekunde werden also fast 2 Minuten!).
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
page | int | - | Seitennummer -1 : alle Dokumentseiten sonst : 1-basierte Seitennummer |
flags | int | - | Steuerung der Berechnung kUseClippath : Verwende bei Bildern den Bildinhalt. Wird das Bild mit einem Beschneidungspfad angezeigt, wird dieser Pfad verwendet. Der Pfad darf beliebig komplex sein und wird immer mit der Form des Rahmens geschnitten. kAllowHoles : Löcher im Bild werden normalerweise zur Bildfläche hinzugerechnet. Mit dieser Option werden Löcher im Bild nicht zur Bildfläche hinzugerechnet. Die Option ist nur aktiv, wenn kUseClippath verwendet wird. kCheckTransparenz : Der Rahmenhintergrund von Bildern kann selbst undurchsichtig sein. Nicht-transparente Bildhintergründe werden im Normalfall ignoriert und nicht zur Rahmenfläche hinzugerechnet. Soll bei nicht-transparenten Bildhintergründen der gesamte Rahmen als Fläche verwendet werden, setzen Sie dieses Flag. Rahmenhintergründe sind transparent, wenn eine der folgenden Eigenschaften gesetzt ist :
kUseMargins : Es werden immer nur die sichtbaren Flächenteile der Rahmen berechnet. Rahmenteile, die in die Montagefläche ragen, werden ignoriert. Ist das Flag kUseMargins gesetzt, wird die zu berücksichtigende Fläche weiter verkleinert auf die Seite des Rahmens ohne deren Seitenanschnitt. Die Seite eines Rahmens ist die Seite des Spreads, auf der der grösste Teil der Boundingbox um den Rahmen liegt. |
⇨ Die folgenden Listen werden durch die Funktion gefüllt. Nach erfolgreicher Ausführung der Funktion enthalten die Listen für jede Cometgruppe einen Eintrag mit dem zugehörigen Wert. Die Listen haben alle die gleiche Länge. (0-Werte sind erlaubt, diese Listen werden ignoriert.) | |||
pageNums | List | - | Seitennummer der Cometgruppe (1-basiert) |
cometGroupIDs | List | - | Cometgruppen-ID |
ids | IDTypeList | - | Objekt-ID der Cometgruppe oder des Rahmens. |
bboxes | RectList | - | Boundingbox um die jeweilige Cometgruppe bzw. den Rahmen. Die Angaben sind in Punkten. |
visible_sizes | FloatList | - | Berechnete sichtbare Größe der Rahmen in Quadrat-Punkt. |
sizes | FloatList | - | Größe der Boundingbox in Quadrat-Punkt. |
percents | FloatList | - | Berechnete sichtbare Größe in Prozent zur Gesamtseite (mglw. ohne Ränder, siehe Flag kUseMargins). |
#include "internal/types.h"
int write_areas ( List pageNums, List cometGroups, IDTypeList ids, RectList bboxes, FloatList visible_sizes, FloatList sizes, FloatList percents) { int i = 0; int p = -1; int p1; IDType id; Rect r;
if (list::length (pageNums) == 0) { wlog ("", "document::calc_areas : No frames found\n"); return 0; }
for (i = 0; i < list::length (pageNums); i++) { // Pagenum p1 = list::get (pageNums, i); if (p1 != p) wlog ("", "Page %d\n", p1); p = p1;
// Comet group wlog ("", " Comet group %d\n", list::get (cometGroups, i));
// Id id = idtypelist::get (ids, i); wlog ("", " Id [%d, %d, %d, '%s']\n", idtype::id (id), idtype::id2 (id), idtype::id3 (id), idtype::stringid (id));
// BBoxes r = rectlist::get (bboxes, i); wlog ("", " bbox %f %f %f %f\n", rect::left (r), rect::top (r), rect::right (r), rect::bottom (r));
// Areas wlog ("", " Netto : %f\n", floatlist::get (visible_sizes, i)); wlog ("", " Brutto : %f\n", floatlist::get (sizes, i)); wlog ("", " Percent : %f\n", floatlist::get (percents, i));
}
return 0; }
int main () { int flags = kUseClippath + kUseMargins; List pageNums = list::alloc (); List cometGroups = list::alloc (); IDTypeList ids = idtypelist::alloc (); RectList bboxes = rectlist::alloc (); FloatList visible_sizes = floatlist::alloc (); FloatList sizes = floatlist::alloc (); FloatList percents = floatlist::alloc ();
document::get_visible_areas (0, -1, flags, pageNums, cometGroups, ids, bboxes, visible_sizes, sizes, percents); write_areas (pageNums, cometGroups, ids, bboxes, visible_sizes, sizes, percents);
return 0; }
static int document::get_links(
ItemRef docRef,
int page,
char* layer,
ItemList resultList)
Dokument-Verknüpfungen holen. Die Auswahl kann wahlweise auf eine Seite und/oder eine Ebene eingeschränkt werden.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
page | int | - | Seitennummer (1-basiert) ≤0 : Alle Seiten sonst : nur Links dieser Seite holen (1-basiert) |
layer | String oder char* | - | Ebenenname "" : Alle Ebenen Sonst : Nur Links dieser Ebene holen |
resultList | ItemList | - | Allokierte Ergebnisliste. In InDesign® sind die Einträge der Liste keine Dokumentrahmen. Um die Einträge zu verwenden, benutzen Sie die Funktionen des Modules frame::doclink. Unter comet_pdf enthält die Ergebnisliste die tatsächlichen Bildrahmen, die auch in allen anderen Rahmenfunktionen verwendet werden können. |
Alle Verknüpfugen des Dokumentes holen und ins Logfile schreiben.
int main () { ItemList lks = itemlist::alloc (); ItemRef lk = item::alloc (); ItemRef fr = item::alloc (); char p [5000]; int i;
document::get_links (0, 0, "", lks); for (i = 0; i < itemlist::length (lks); i++) { itemlist::get (lks, lk, i);
frame::doclink::get_frame (lk, fr); frame::doclink::get_path (lk, p);
wlog ("", "Frame %d\t<- %d [%d, '%s']\n", item::getint (fr), item::getint (lk), frame::doclink::get_state (lk), p); }
return 0; }
static int document::update_links(
ItemRef docRef = 0,
int page = 0,
char* layer = "",
IDTypeList changedLinks = 0)
Aktualisiere (die) Verknüpfungen des Dokumentes. Sie können die Aktualisierung auf eine Ebene und/oder Seite beschränken. In einer Ergebnisliste können Sie sich die aktualisierten Rahmen und die Dateipfade zurückgeben lassen.
Unter comet_pdf ist Funktion verfügbar, hat aber keine Wirkung und die Ergebnisliste bleibt immer leer.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
page | int | -1 | Seitennummer -1 : Alle Seiten sonst : nur Links dieser Seite aktualisieren (1-basiert) |
layer | String oder char* | "" | Ebenenname "" : Alle Ebenen Sonst: Nur Links dieser Ebene werden aktualisiert |
changedLinks | IDTypeList | 0 | Liste der aktualisierten Links. Mit idtype::id erhalten Sie die UIDs der einzelnen Rahmen (Bei Textverkettungen die UID des ersten Rahmen der Kette). Mit idtype::stringid erhalten Sie den vollständigen Dateipfad. |
int main () { IDTypeList updated = idtypelist::alloc (); IDType * p;
document::update_links (0, 1, "", updated);
for (p = idtypelist::first (updated); p; p = idtypelist::next (updated)) { wlog ("", "# %d\t'%s'\n", idtype::id (p), idtype::stringid (p)); }
return 0; }
static int document::export_styles(
ItemRef docRef = 0,
char* destPathAndBaseName = 0,
int fileFlag = 1)
XML-Export aller Stilinformationen und Farbfelder eines Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
destPathAndBaseName | String oder char* | "" | Pfad und Basisname für die Exportdateien. Die Stilinformationen
werden in die Datei destPathAndBaseName_Styles.xml exportiert. Die
Farbfelder befinden sich in der Datei destPathAndBaseName_Graphic.xml "" : Pfad und Name des Dokumentes verwenden. Das Dokument darf dazu nicht neu und ungesichert sein! |
fileFlag | int | 1 | Bestehende Exportdateien löschen? 0 : Nein 1 : Ja |
static int document::get_styles(
ItemRef docRef,
char* styleClass,
StringList resultList)
Sammeln aller Stilnamen eines Dokumentes. Die Name aller verfügbaren Stile einer Klasse werden inklusive ihrem Ordnerpfad in einer Liste gesammelt. Als Pfadtrenner wird ':' verwendet.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
styleClass | char* oder String | - | Welche Stilnamen sollen gesammelt werden? "parastyles" : Absatzstile "charstyles" : Zeichenstile "objstyles" : Objektstile "tablestyles" : Tabellenstile "cellstyles" : Zellstile |
resultList | StringList | - | Liste für die Ergebnisse. Bitte beachten Sie:
|
Schreibe alle verfügbaren Absatzstile des aktuellen Dokumentes ins Logfile.
int main () { StringList li = stringlist::alloc (); char * str;
document::get_styles (0, "parastyles", li);
for (str = stringlist::first (li); str; str = stringlist::next (li)) { wlog ("", "--%s--\n", str); }
stringlist::release (li); return 0; }
static int document::import_styles(
ItemRef docRef,
char* whatStyles,
char* sourceDocument,
int clashResolution = 0)
Importieren von Stilen aus einem anderen Dokument.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
whatStyles | char* oder String | - | Welche Formate sollen importiert werden? Folgende (case insensitiven) Angaben
sind möglich: "paraStyles" : Absatzstile "charStyles" : Zeichenstile "textStyles" : Zeichen- und Absatzstile "tableStyles" : Tabellenstile "cellStyles" : Zellstile "tableAndCellstyles" : Tabellen- und Zellstile "tocStyles" : Inhaltsverzeichnisstile "strokeStyles" : Linienstile (Nicht unterstützt von comet_pdf.) "objectStyles" : Objektstile "all" : Alles |
sourceDocument | char* oder String | - | Vollständiger Pfad des Dokumentes aus dem die Stile importiert werden sollen |
clashResolution | int | 0 | Strategie zur Auflösung von Konflikten bei Namensgleichheiten 0 : Stil nicht importieren 1 : Stil überschreiben 2 : Unter neuem Namen importieren
Hinweis für comet_pdf : Werden nur Zellstile importiert, werden
fehlende Absatzstile, die in Zellstilen verwendet werden, ebenfalls importiert.
Bereits existierende Absatzstile werden dabei nicht überschrieben. Wird
also der Zellstil Z mit dem Absatzstil A importiert, dann wird A importiert, wenn
es noch keinen Absatzstil A gibt. Existiert A bereits, bleibt der Absatzstil A
unverändert. |
result = document::import_styles (0, "tableAndCellStyles", "$DESKTOP/naiv.indd", 0);
static int document::show_folio(ItemRef docRef = 0)
Foliovorschau eines Dokumentes öffnen. Die Anweisung wird erst von InDesign® CS5.5 unterstützt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::get_notes_printable(ItemRef docRef = 0)
Siehe document::notes::get_printable
static int document::set_notes_printable(ItemRef docRef = 0, int newState = 0)
See document::notes::set_printable
static int document::get_masterpages(
ItemRef docRef,
IDTypeList resultList,
int unusedOnly = 0,
int sortedByBasedOn = 1)
Informationen über Musterseiten des Dokumentes. Sammle die Namen und UIDs aller Musterseiten eines Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
resultList | IDTypeList | - | allokierte Ergebnisliste. Die Listeneinträge enthalten folg. Werte: idtype::stringid () : Name der Musterseite idtype::id () : UID der Musterseite idtype::id2 () : Anzahl der Seiten idtype::id3 () : UID der Musterseite, von der die Seite abgeleitet ist |
unusedOnly | int | 0 | ab V4.1.6 R25778 Hole nur die unbenutzten Musterseiten des Dokumentes |
sortedByBasedOn | int | 1 | ab V4.1.6 R25778 Sortierreihenfolge der Ergebnisliste 1 : Sortiere die Ergebnisse so, dass Musterseiten, die auf anderen Musterseiten basieren, später in der Liste erscheinen. 0 : Sortiere die Liste so wie in der Palette Seiten. |
int main () { IDTypeList masters = idtypelist::alloc (); IDType master;
document::get_masterpages (0, masters); for (master = idtypelist::first (masters); master; master = idtypelist::next (masters)) { wlog ("", "%s [UID %d, %d page(s), Ancestor %d]\n", idtype::stringid (master), idtype::id (master), idtype::id2 (master), idtype::id3 (master)); }
return 0; }
static int document::import_masterpage(
ItemRef docRef,
char* orgPath,
char* master_name,
int overrideExisting = 0,
int openAsCopy = 0)
Importiere/Aktualisiere Musterseiten eines Dokumentes aus einem anderen Dokument. Ist eine Musterseite von anderen Musterseiten abgeleitet, werden auch alle Basisseiten importiert/aktualisiert.
Ist das Quell-Dokument nicht bereits geöffnet, wird es im Hintergrund geöffnet und zur nächsten Idle-Time automatisch wieder geschlossen. Bis dahin darf es nicht geändert werden. Änderungen am Dokument gehen dabei verloren!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
orgPath | String oder char* | - | vollständiger Pfad auf das Quell-Dokument |
master_name | String oder char* | - | vollständiger Name der Musterseite, z.B. C-Musterseite. Ist die Seite von einer anderen Musterseite abgeleitet, werden auch alle Basisseiten importiert/aktualisiert |
overrideExisting | int | 0 | Bestehende Musterseiten aktualisieren? 0 : nein 1 : ja. In diesem Fall werden automatisch alle freigestellten Musterseiten-Einträge der zu aktualisierenden Musterseiten im Dokument entfernt. |
openAsCopy | int | 0 | Modus zum Öffnen der Datei 0 : Normal öffnen. Ist die Datei bereits geöffnet, wird dieses Dokument verwendet. 1 : Als Kopie öffnen. Ungesicherte Änderungen in einem anderen Dokumentfenster der gleichen Quelldatei werden ignoriert. |
int main () { int res;
res = document::import_masterpage ( 0, "$DESKTOP/musterseiten.indd", "C-Musterseite", 1);
wlog ("", "import_masterpage result %d\n", res); return 0; }
static int document::import_masterpages(
ItemRef docRef,
char* sourceDocument,
int clashResolution = 0)
Importieren aller Musterseiten eines anderen Dokumentes. Gelöschte Musterseitenrahmen, die im Ziel überschrieben wurden (siehe frame::is_overriden_masteritem) bleiben beim Import erhalten.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
sourceDocument | char* oder String | - | Vollständiger Pfad des Dokumentes aus dem die Musterseiten importiert werden sollen |
clashResolution | int | 1 | Strategie zur Auflösung von Konflikten bei Namensgleichheiten 1 : Musterseite überschreiben 2 : Unter neuem Namen importieren |
int main () { int res = document::import_masterpages (0, "$DESKTOP/m_src.indd", 1);
wlog ("", "Import masterpages result : %d", res); return 0; }
static int document::remove_masterpage(ItemRef docRef, char* master_name)
Lösche eine Musterseite aus einem gegebenen Dokument.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
master_name | String oder char* | - | vollständiger Name der Musterseite, z.B. C-Musterseite. |
static int document::move_masterpage(
ItemRef docRef,
char* master_name,
char* before)
Verschiebe einen Musterseiteneintrag in der Liste der Musterseiten auf der Palette Seiten.
Der Aufruf hat keinerlei Einfluß auf das Aussehen des Dokumentes. Er ändert lediglich die Reihenfolge der Musterseiten in der Palette Seiten.
Aus irgendeinem für uns nicht nachvollziehbaren Grund ist die Anweisung nicht rückgängig zu machen.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
master_name | String oder char* | - | vollständiger Name der Musterseite, z.B. C-Musterseite. |
before | String oder char* | - | Vor welche Musterseite soll der Eintrag geschoben werden? "" oder nicht existierende Musterseite : Ans Ende verschieben |
static int document::dump_uidtranstable(ItemRef docRef = 0)
Nur zur internen Verwendung.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::cometgroup_recreated(
ItemRef docRef,
int oldGroupID,
int newGroupID)
Übernahme einer Cometgruppen-ID. Beim Ersetzen von Produkten oder Teilen von Produkten kann es erwünscht sein, dass die Cometgruppen-ID des Produktes erhalten bleibt. In diesem Fall ermitteln so den Änderungen die bisherige Cometgruppen-ID. Am Ende können Sie der geänderten Cometgruppe diese Nummer dann wieder übergeben.
Achten Sie darauf, nur gültige Cometgruppen-IDs zu verwenden. Falsche Angaben können zu Dokumentfehlern führen und Ihre Dokumente unbrauchbar machen!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
oldGroupID | int | - | Alte Cometgruppen-ID. Die Rahmen sollen diese Cometgruppen-Nummer behalten. |
newGroupID | int | - | Aktuelle Cometgruppen-ID. Die Rahmen haben nach den Änderungen diese Cometgruppe. |
Sammle alle Cometgruppen des Dokumentes und ersetze einige davon durch fertige Snippets. Um das Skript ausführen zu können, müssen Sie zuerst das Skript im folgenden Beispiel als eigene Action anlegen und MY_COMPARE_SCRIPT durch die ID dieser Action ersetzen.
#include "internal/types.h"
int get_snippet (IDType id) { if (idtype::id (id) == 0) return 0; if (strcmp (idtype::stringid (id), "109007") == 0) return 617; if (strcmp (idtype::stringid (id), "109507") == 0) return 621; if (strcmp (idtype::stringid (id), "107507") == 0) return 623;
return 0; }
IDType get_id (ItemRef fr, IDType id) { int i; char base [255]; char slot [255];
idtype::set_id (id, 0); if (!frame::get_cometgroup (fr)) return id;
for (i = 0; i < 2; i++) { if (i == 0) strcpy (base, "BuiltBy"); else strcpy (base, ""); idtype::set_id (id, placeholder::get_value (fr, sprintf (slot, "%d%s", base, "ID"))); idtype::set_id2 (id, placeholder::get_value (fr, sprintf (slot, "%s%s", base, "ID2"))); idtype::set_id3 (id, placeholder::get_value (fr, sprintf (slot, "%s%s", base, "ID3"))); idtype::set_stringid (id, placeholder::sget_value (fr, sprintf (slot, "%s%s", base, "StringID")));
if (idtype::id (id)) break; }
return id; }
int replace (ItemList oldFrames) { ItemList newFrames = 0; ItemRef fr = item::alloc (); IDType id = idtype::alloc (); int snippet; float l, t, r, b; int pg, gid, new_gid; char lay [512];
while (1) { // Sanity check itemlist::get (oldFrames, fr, 0); if (!frame::is_valid (fr)) break;
// Do we have to replace this Comet group? snippet = get_snippet (get_id (fr, id)); if (!snippet) break;
// Get old states pg = page::get (fr); gid = frame::get_cometgroup (fr); frame::get_layer (fr, lay); itemlist::bbox (oldFrames, &l, &t, &r, &b);
wlog ("", "'%s' replace by snippet %d\n", idtype::stringid (id), snippet);
// Remove old, create new itemlist::remove_items (oldFrames); newFrames = document::place_items (0, 0, 0, snippet, l, t, pg, lay);
// Reset comet group id itemlist::get (newFrames, fr, 0); new_gid = frame::get_cometgroup (fr); document::cometgroup_recreated (0, gid, new_gid);
break; // ready }
item::release (fr); idtype::release (id); itemlist::release (newFrames);
return 0; }
int main () { ItemListList lli; ItemList li; ItemList docFrames = itemlist::allframes ();
if (gRun > 1) return 0;
lli = itemlist::logical_groups (docFrames, kSearchDocument, "", 1, "script", MY_COMPARE_SCRIPT);
for (li = itemlistlist::first (lli); li; li = itemlistlist::next (lli)) { replace (li); }
itemlist::release (docFrames); itemlistlist::release (lli);
return 0; }
Vergleichsfunktion für das Skript des obigen Beispieles. Das Skript muss zuvor als eigene Action gesichert werden.
int main () { int group1 = frame::get_cometgroup (gMasterFrame); int group2 = frame::get_cometgroup (gCheckFrame);
if (!gCheckFrame) { if (!group1) return 0; return 0; }
return (group1 != group2); }
static int document::get_pageref(
ItemRef outRef,
ItemRef docRef,
int pg)
Ermitteln der UID einer Seite.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
outRef | ItemRef | - | allokiertes ItemRef für das Ergebnis. |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
pg | int | - | 1-basierte Seitenindex der Seite, deren ItemRef ermittelt werden soll |
int main () { int pg = page::get (gFrame); int indexInSpread; int spread = page::get_spread (0, pg, &indexInSpread); ItemRef pageRef = item::alloc (); ItemRef spreadRef = item::alloc ();
document::get_pageref (pageRef, 0, pg); document::get_spreadref (spreadRef, 0, spread);
wlog ("", "Spread %d (%d), Seite %d (%d), %d. page in Spread\n", spread, item::getint (spreadRef), pg, item::getint (pageRef), indexInSpread);
return 0; }
static int document::get_spreadref(
ItemRef outRef,
ItemRef docRef,
int spreadIndex)
Ermitteln der UID eines Spreads über den Spreadindex. Den Spreadindex einer Seite erhalten Sie über die Funktion page::get_spread.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
outRef | ItemRef | - | allokiertes ItemRef für das Ergebnis. |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
spreadIndex | int | - | 0-basierter Spreadindex. Den Spreadindex einer Seite erhalten Sie über die Funktion page::get_spread. |
int main () { int pg = page::get (gFrame); int indexInSpread; int spread = page::get_spread (0, pg, &indexInSpread); ItemRef pageRef = item::alloc (); ItemRef spreadRef = item::alloc ();
document::get_pageref (pageRef, 0, pg); document::get_spreadref (spreadRef, 0, spread);
wlog ("", "Spread %d (%d), Seite %d (%d), %d. page in Spread\n", spread, item::getint (spreadRef), pg, item::getint (pageRef), indexInSpread);
return 0; }
static int document::has_overset(
ItemRef docRef,
ItemList frames = 0,
ItemList tables = 0,
IDTypeList cells = 0)
Hat ein Dokument mindestens einen Textübersatz? Der Übersatz kann in normalen Texten oder in Tabellenzellen sein.
Name | Typ | Default | Beschreibung |
Return | int | 0 : Kein Übersatz oder Fehler 1 : Mind. ein Text oder eine Tabellenzellen haben einen Übersatz |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
frames | ItemList | 0 | Die Liste enthält nach erfolgreicher Ausführung der Funktion alle Rahmen mit Textübersatz. |
tables | ItemList | 0 | Die Liste enthält nach erfolgreicher Ausführung der Funktion alle Tabellen mit Zellen mit Textübersatz. Die Liste hat die gleiche Länge wie cells und der i-te Eintrag der Liste ist die Tabellenreferenz des i-ten Eintrags aus cells. |
cells | IDTypeList | 0 | Die Liste enthält für jede Tabellenzelle mit Übersatz einen
Eintrag vom Typ IDType mit den folgenden Werten: idtype::id : 0-basierte Spalte idtype::id2 : 0-basierte Zeile idtype::id3 : UID der Tabelle. Zur Verwendung von UIDs siehe item::define. Alternativ kann die zugehörige Tabellenreferenz auch über den gleichen Listenindex aus der Liste tables ermittelt werden. |
int main () { ItemList frames = itemlist::alloc (); ItemList tables = itemlist::alloc (); IDTypeList cells = idtypelist::alloc (); int ov;
ov = document::has_overset (0, frames, tables, cells); if (ov) { wlog ("", "# Oversets : %d frame(s), %d table(s), %d cells(s)\n", itemlist::length (frames), itemlist::length (tables), idtypelist::length (cells)); }
return 0; }
Lege über alle Tabellenzellen mit Übersatz einen roten Rahmen. Diese Rahmen sollen auf der Extra-Eben 'Overset' angelegt werden.
#include "internal/types.h" #include "internal/table.h" #include "internal/text.h" #include "internal/products.h"
int main() { checkAndMarkOversets(); return 0; }
int checkAndMarkOversets() { ItemList frames = itemlist::alloc(); ItemList tables = itemlist::alloc(); IDTypeList cells = idtypelist::alloc(); int ov; char * layerName = "Overset";
layer::remove(layerName); layer::add(layerName, ""); ov = document::has_overset(0, frames, tables, cells); if (ov) handleOversetTable(tables, cells);
itemlist::release(frames); itemlist::release(tables); idtypelist::release(cells);
return 0; }
int handleOversetTable(ItemList tableList, IDTypeList cellList) { ItemRef fr = item::alloc(); ItemRef nFrame = item::alloc(); IDType idType; char * layerName = "Overset"; char * colorName = "Overset"; int c, r; Table t = table::alloc(); float x, y, x2, y2; float fx, fy, fx2, fy2; int i, j;
color::define_cmyk(colorName, 0.0, 1.0, 1.0, 0.0); for (i = 0; i < itemlist::length(tableList); i++) { itemlist::get(tableList, t, i); Tabelle aus der Liste abfragen idType = idtypelist::get(cellList, i); if (table::is_valid(t)) { c = idtype::id(idType); r = idtype::id2(idType); if (c < table::columns(t) && r < table::rows(t)) { table::get_cellbox(t, c, r, kFrameRelative, &x, &y, &x2, &y2, fr); frame::bbox(fr, &fx, &fy, &fx2, &fy2); frame::create2(nFrame, kRectangle, fx + x, fy + y, fx + x2, fy + y2, page::get(fr), layerName); frame::color(nFrame, colorName); frame::set_blending(nFrame, kBlendingBasic, 20.0); } } }
table::release(t); item::release(fr); item::release(nFrame);
return 0; }
static int document::write_frame_info(
ItemRef document,
int frameSearchFlags,
int documentType,
int conflictBehavior,
int frameType = 0,
int page = -2,
LinkList placeholders = 0)
Schreibe alle Informationen der Rahmen im Dokument in die Datenquellen. Mehr Informationen unter Frame Infos
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Dokument |
frameSearchFlags | int | kUseDefault | Auf welche Art und Weise sollen Rahmen zum überschreiben identifiziert werden? Siehe frame::write_frame_info |
documentType | int | kLocalDoc | In welchem Dokument soll nach bereits existierenden Rahmen gesucht werden? Siehe frame::write_frame_info |
conflictBehavior | int | kThrowError | Verhalten bei mehreren Suchtreffern pro Rahmen Siehe frame::write_frame_info |
frameType | int | - | Rahmentyp der geschrieben wird. 0: Alle 1: Textrahmen 2: Bildrahmen |
page | int | -2 | Von welcher Seite sollen die Rahmen geschrieben werden? -2: Alle Seiten |
placeholders | LinkList | 0 | Nur Platzhalter in dieser Liste berücksichtigen |
Alle Rahmen des Dokumentes schreiben
int main () { return document::write_frame_info(gDocument); }
Nur Grafikrahmen von Seite 4 schreiben
int main () { document::write_frame_info(gDocument, 2, 4); return 0; }
static int document::apply_frame_info(
ItemRef document,
int propertyFlags,
int searchType,
int documentType,
int page = -2,
int frameType = 0,
LinkList placeholders = 0)
Stelle gespeicherte Rahmeninformationen aus den Datenquellen wieder her und setze die Rahmen auf diese Informationen zurück. Mehr Informationen unter Frame Infos
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
propertyFlags | int | - | Welche Informationen sollen wiederhergestellt werden? Siehe frame::apply_frame_info |
frameSearchFlags | int | kUseDefault | Wie wird entschieden, aus welchem Dokument die gespeicherten Informationen kommen? Siehe frame::apply_frame_info |
documentType | int | kLocalDoc | Auf welche Art und Weise soll der gespeicherte Rahmen identifiziert werden? Siehe frame::apply_frame_info |
conflictBehavior | int | kThrowError | Verhalten bei mehreren Suchtreffern pro Rahmen Siehe frame::apply_frame_info |
page | int | -2 | Auf welcher Seite sollen die Rahmeninformationen wiederhergestellt werden? -2: Alle Seiten |
frameType | int | 0 | Rahmentyp der berücksichtigt wird. 0: Alle 1: Textrahmen 2: Bildrahmen |
placeholders | LinkList | 0 | Nur Platzhalter in dieser Liste berücksichtigen |
Alle Eigenschaften aller Rahmen des aktuellen Dokumentes wiederherstellen
#include "internal/frameinfos.h"
int main () { int propertyFlags = kApplyScriptTags + kApplyXPosAbs + kApplyYPosAbs + kApplyWidth + kApplyHeight + kApplyFrameRotate + kApplyFrameSkew + kApplyImageXOffset + kApplyImageYOffset + kApplyImageXScale + kApplyImageYScale + kApplyImageRotate + kApplyImageSkew;
document::apply_frame_info(gDocument, propertyFlags, kUseDefault, kLocalDoc, kThrowError); return 0; }
static int document::delete_frame_info(
ItemRef docRef,
int frameSearchFlags = kUseDefault,
int documentType = kLocalDoc,
int conflictBehavior = kThrowError,
int page = -2,
int frameType = 0,
LinkList placeholders = 0)
Lösche gespeicherte Rahmeninformationen aus den Datenquellen.
Wichtig: Diese Funktion löscht nur Frame Infos der Rahmen des Dokumentes. Es handelt sich hier um eine Hilfsfunktion die das Sammeln der Rahmen im Dokument erleichtert. Mehr Informationen unter Frame Infos
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Dokument |
frameSearchFlags | int | kUseDefault | Wie wird entschieden, aus welchem Dokument die gespeicherten Informationen kommen? Siehe frame::apply_frame_info |
documentType | int | kLocalDoc | Auf welche Art und Weise soll der gespeicherte Rahmen identifiziert werden? Siehe frame::apply_frame_info |
conflictBehavior | int | kThrowError | Verhalten bei mehreren Suchtreffern pro Rahmen Siehe frame::apply_frame_info |
page | int | -2 | Auf welcher Seite sollen die Rahmeninformationen wiederhergestellt werden? -2: Alle Seiten |
frameType | int | 0 | Rahmentyp der berücksichtigt wird. 0: Alle 1: Textrahmen 2: Bildrahmen |
placeholders | LinkList | 0 | Nur Platzhalter in dieser Liste berücksichtigen |
Alle Eigenschaften aller Rahmen des aktuellen Dokumentes löschen
#include "internal/frameinfos.h"
int main ()
{
document::delete_frame_info(gDocument);
return 0;
}
static int document::delete_frame_info2(ItemRef docRef)
Lösche gespeicherte Rahmeninformationen aus den Datenquellen.
Wichtig: Diese Funktion löscht alle je gespeicherten Frame Infos des Dokumentes. Mehr Informationen unter Frame Infos
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Alle jemals gespeicherten Frame Infos des aktuellen Dokumentes löschen
int main () { document::delete_frame_info2(gDocument); return 0; }
static int document::create_mission_ui(ItemRef docRef, ItemList frames = 0)
Ruft die Eingabemaske zur Erstellung von Missions auf.
Optional kann eine Rahmenliste als Parameter eingegeben werden, um Missions für diese Rahmen zu erstellen. Mehr Informationen unter Missions
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
duplicateBehavior | int | 0 | Was soll passieren, wenn die Mission bereits existiert? 0 - Nicht anlegen 1 - Erste existierende Mission ans Ende der Liste verschieben, alle anderen löschen 2 - Neue Mission als Duplikat erstellen |
frames | ItemList | 0 | Rahmen für die Missions erzeugt werden sollen. |
Zeigt die Eingabemaske mit unterschiedlichem verhalten bei Duplikaten ja nach Tastenkombination. Kann für die selektierten Rahmen Missions erstellen.
int main() { ItemList selected;
selected = itemlist::selected();
if (gRun == 1) { if (system::shiftkey()) { document::create_mission_ui(gDocument, 1, selected); // Move } else if (system::cmdkey()) { document::create_mission_ui(gDocument, 2, selected); // Duplicate } else { document::create_mission_ui(gDocument, 0, selected); // Skip } }
itemlist::release(selected);
return 0; }
static int document::execute_missions(
ItemRef docRef,
int deleteAfterDone = 1,
int alsoDeleteFailed = 0)
Führt alle Missions des Dokumentes aus. Mehr Informationen unter Missions
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
deleteAfterDone | int | 1 | Sollen die Missions nach Ausführung gelöscht werden? 0 - Nein 1 - Ja |
alsoDeleteFailed | int | 0 | Auch Missions löschen, die fehlgeschlagen sind? Hat keinen Effekt wenn deleteAfterDone 0 ist. 0 - Nein 1 - Ja |
Führt alle Missions im Dokument aus. Erfolgreich ausgeführte werden gelöscht, fehlerhafte nicht.
int main () { document::execute_missions(gDocument, 1, 0);
return 0; }
static int document::count_missions(ItemRef docRef, int* count)
Zählt die Anzahl der Missions des Dokumentes. Mehr Informationen unter Missions
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
count | int* | - | Ergebnis der Anzahl der Missions |
Zeigt eine Nachricht, die die Anzahl der Missions im Dokument enthält.
int main () { int count = 0; document::count_missions(gDocument, &count); showmessage("%d", count);
return 0; }
static int document::delete_missions(ItemRef docRef)
Löscht alle Missions des Dokumentes. Mehr Informationen unter Missions
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Löscht alle Missions des Dokumentes.
int main () { document::delete_missions(gDocument);
return 0; }
static int document::remove_duplicate_missions(ItemRef docRef)
Entfernt alle Duplikate von allen Missions des Dokumentes, so dass jede Mission maximal einmal übrig bleibt.
Mehr Informationen unter Missions
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
document | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Löscht alle Missionsduplikate des Dokumentes.
int main () { document::remove_duplicate_missions(gDocument);
return 0; }
static int document::prepare_translations(
ItemRef docRef,
int placeholderID,
int autoStore,
int get_record_id_func,
IDType recordID,
int behavior = 0)
Vorbereiten des Dokumentes für eine automatische Übersetzung. Alle im Dokument bestehenden Textplatzhalter werden entfernt. Danach wird der angegebene Platzhalter über alle Texte des Dokumentes gelegt und nur durch Tabellen, Tabellenzellen und Inlines unterbrochen. Zur Berechnung der RecordIDs wird für jeden neu angelegten Platzhalter einmal die übergebene Funktion get_record_id_func ausgeführt.
Der übergebene Platzhalter placeholderID muss existieren und als Textplatzhalter definiert sein!
Die Funktion entfernt bestehende Textplatzhalter aus dem Dokument.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
placeholderID | int | - | ID eines definierten Textplatzhalters |
autoStore | int | - | Sollen die Platzhalter nach dem Anlegen und Verlinken automatisch zurückgeschrieben werden? 0 : Nein 1 : Ja, für jeden neuen Platzhalter wird das Store-Skript ausgeführt |
get_record_id_func | func_ptr | - | Name der Funktion, die zum Ermitteln der Record-IDs verwendet werden soll. Hier geben Sie einfach und ohne
Anführungszeichen den Funktionsnamen an. Die Funktion muss folgenden Typ haben: int my_function (IDType myRecordID, int placeholderID) Der IDType myRecordID muss außerhalb der Funktion allokiert worden sein und bekommt bei Aufrufen zur Berechnung einer neuen ID die Variable recordID des Aufrufes von prepare_translations. Rückgabewerte der Funktion get_record_id_func 1 : Platzhalter erstellen und mit der berechneten ID verlinken 0 : Platzhalter nicht anlegen |
recordID | IDType | - | Allokierter IDType für die Berechnung der nächsten ID |
behavior | int | 0 | Wie soll mit bestehenden Platzhaltern des Textes verfahren werden? 0 : Alle Platzhalter ersetzen 1 : Platzhalter mit der Platzhalter-ID placeholderID erhalten, alle anderen ersetzen 2 : Platzhalter erhalten |
Eigentlich ist das alles gar nicht so schwer. Im Beispiel werden der IDType recordID erzeugt und die Funktion get_record_id definiert, die damit eine neue RecordID berechnet. Der Verweis auf die Funktion ist einfach das Wort get_record_id im Aufruf von prepare_translations. Zusätzlich geben Sie diesem Aufruf noch den allokierten IDType mit. Egal , wieviel Text Ihr Dokument jetzt enthält, get_record_id wird für jeden neuen Platzhalter einmal ausgeführt (und zählt die ID hoch).
int main () { IDType recordID = idtype::alloc ();
idtype::set_id (recordID, 100); document::prepare_translations (0, 360, 1, get_record_id, recordID);
return 0; }
int get_record_id (IDType rid, int placeholderID) { idtype::set_id (rid, idtype::id (rid)+1); idtype::set_id2 (rid, 0); idtype::set_id3 (rid, 0); idtype::set_stringid (rid, "");
return 1; }
static int document::link_with_unique_placeholder(
ItemRef docRef,
int placeholderID,
int autoStore,
int get_record_id_func,
IDType recordID)
Synonym für prepare_translations.
static int document::schwarzfilmtausch(ItemRef docRef)
Dokument vorbereiten für den Schwarzfilmtausch. Beim Schwarzfilmtausch ist es wichtig, dass bunte Teile des Dokumentes sich bei Sprachwechseln nicht ändern. Damit Benutzer das nicht versehentlich machen, sperrt der Befehl alle Dokumentrahmen und setzt alle Tabellenzeilen auf feste Höhen. Zusätzlich werden alle Gestaltungsregeln und alle Nägel und Magnete aus den Dokumentrahmen entfernt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::get_blendingspace(ItemRef docRef)
Erfrage den Transparenzfüllraum eines Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | -1 : Fehler 1 : RGB 2 : CMYK |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::set_blendingspace(ItemRef docRef, int blendSpace)
Setze den Transparenzfüllraum eines Dokumentes.
Soll das Dokument später gedruckt werden, sollten Sie unbedingt darauf achten, hier die richtige Einstellung zu haben. In der Regel ist das CMYK. Falsche Transparenzfüllräume führen zu falschen Druckergebnissen und können hohe Kosten verursachen.
Hier sehen Sie die gleichen Rahmen einmal mit CMYK und einmal mit RGB als Transparenzfüllraum:
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
blendSpace | int | - | neuer Transparenzfüllraum 0 : Default 1 : RGB 2 : CMYK |
Transparenzfüllraum hin- und herschalten.
int main () { int blendingspace = document::get_blendingspace (0);
if (blendingspace == 1) document::set_blendingspace (0, 2); else if (blendingspace == 2) document::set_blendingspace (0, 1);
return 0; }
static int document::preflight(
ItemRef docRef,
char* profile,
char* output,
int maxlen = 0)
Preflight eines Dokumentes. Prüfung des Dokumentes gemäß den den im Preflight-Profil angegebenen Tests. Das Preflight-Profil kann dabei auch über einen Pfad festgelegt werden. In diesem Fall wird das Profil automatisch angelegt (und kann in späteren Aufrufen auch ohne Pfadangabe verwendet werden.) Das Anlegen des Profiles können Sie aber natürlich auch selbst machen: In InDesign® (Desktop) geht das über die Palette Preflight. In InDesign® Server mit der Javascript-Zeile
app.loadPreflightProfile(File(profilepath));
Unter comet_pdf hat der Befehl keine Wirkung.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode 1289 (preflightNotEmptyErr) : Die Prüfung des Dokumentes wurde erfolgreich durchgeführt und hat Fehler ergeben. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
profile | String oder char* | - | Name oder Pfad des Preflight-Profiles. Bei der Angabe eines Pfades (Endung idpp) wird das
Profil automatisch in InDesign® angelegt. ACHTUNG : Wenn Sie einen Pfad verwenden, muß der Dateiname (ohne Endung natürlich) auch der Profilname sein, sonst wird bei jedem Aufruf ein weiteres Profil in InDesign® angelegt, jeweils mit einer neuen Nummer hinter dem Namen. |
output | String oder char* | - | Allokierter String für das Ergebnis "" : Die Ergebnisse des Preflights werden in diesen String geschrieben. Achten Sie darauf, bei Verwendung von char* hier genügend Platz zu allokieren. Vollständiger Pfad mit den Endungen 'pdf' oder 'txt' : Das Ergebnis wird in die angegebene Datei geschrieben. Existiert die Datei, wird sie überschrieben. ACHTUNG : Unter InDesign® Server wird der Export in PDF nicht unterstützt! |
maxlen | int | 0 | Länge des Ergebnisses in Bytes inkl. abschließender 0. Der Parameter wird nur ausgewertet, wenn output leer ("") und vom Typ char* ist. Ist das Ergebnis länger, wird es bei maxlen-1 abgeschnitten. |
int main () { char txt [100000]; int result;
if (system::shiftkey ()) strcpy (txt, "$DESKTOP/aaa.pdf"); result = document::preflight (0, "$DESKTOP/aaa.idpp", txt); wlog ("", "%d\n-------------------\n%s\n", result, txt);
return 0; }
Etwas schwieriger wird das mit Javascript. Hier nur der Vollständigkeit halber. Achtung: Das verwendete Preflight-Profil (hier profile_comet) muß in diesem Beispiel ins Dokument eingebettet sein!
var myPath = "/Users/paul/Desktop/preflight.indd" var preflightName = "profile_comet"; var reportPath = "/Users/paul/Desktop/report.pdf"; var reportPathTxt = "/Users/paul/Desktop/report.txt"; var gOptions = app.comet.ping () + ";-1;";
function checkPreflight() { var myDoc = app.documents[0]; var turnOff = false;
if (myDoc.preflightOptions.preflightOff) { myDoc.preflightOptions.preflightOff = false; turnOff = true; }
var myProfile = undefined; for (var tk = 0;tk < myDoc.preflightProfiles.length; tk++) { var prefLightname = myDoc.preflightProfiles[tk].name; if( prefLightname == preflightName) { myProfile = myDoc.preflightProfiles[tk]; break; } }
if (myProfile == undefined) { alert ("Preflight profile " + preflightName + " not found!"); if (turnOff) myDoc.preflightOptions.preflightOff = true; return; }
var allProcess = app.preflightProcesses; var myPreflight = app.preflightProcesses.add(myDoc, myProfile); // Set the preflight var
myPreflight.waitForProcess(); // Don't process the results until it has finished running
if (app.name.indexOf ('Server') > 0) { var results = myPreflight.aggregatedResults[2]; // Store the results in a variable var errorLog = File(reportPathTxt); errorLog.open("w"); for (var x = 0; x < results.length; x++) { errorLog.write(results[x]); errorLog.write("\n"); } errorLog.close(); } else { myPreflight.saveReport (File (reportPath)); }
if (turnOff) myDoc.preflightOptions.preflightOff = true; }
app.comet.use ("##type:xmlfolder;folder:$DESKTOP/fifo/priint 5.5/xmldata", "", "", false, ""); app.comet.documentOpen (myPath, true, gOptions); checkPreflight(); app.comet.documentClose (myPath, gOptions);
static int document::export_color_profiles(
ItemRef docRef,
char* destfolder,
char* destXML = 0)
Exportieren der Farbprofile eines Dokumentes. Die Funktion exportiert das RGB- und das CMYK-Farbprofil, die ein gegebenes Dokument verwendet (InDesign® -Menü Bearbeiten -> Profile zuweisen...). Verwendet das Dokument einen aktuellen Farbraum (InDesign® -Menü Bearbeiten -> Farbeinstellungen...), wird das Profil des Arbeitsfarbraumes exportiert.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
destfolder | String oder char* | - | Exportziel für die icc-Datei. Der Export kopiert die Profil-Datei in die Unterordner rgb bzw. cmyk des angegebenen Ordners. Fehlende Ordner werden automatisch angelegt. Bestehende Zieldateien werden überschrieben. |
destXML | String oder char* | 0 | Vollständiger Pfad einer colorprofiles.xml.
Die Profil-Daten der exportierten Farbprofile
werden in die angegebene XML eingetragen oder dort aktualisiert. Existiert die XML nicht, wird sie angelegt. 0 : ignorieren |
int main () { document::export_color_profiles (0, "$DESKTOP/aaabbb", "$DESKTOP/aaabbb.xml");
return 0; }
static int document::get_color_profiles(
ItemRef docRef,
char* rgbProfile = 0,
char* cmykProfile = 0,
char* priority = 0)
Ermittle die Namen der Farbprofile, die iim Dokument eingestellt sind.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
rgbProfile | String oder char* | 0 | Name des RGB-Profiles 0 : Rückgabe ignorieren |
cmykProfile | String oder char* | 0 | Name des CMYK-Profiles 0 : Rückgabe ignorieren |
priority | String oder char* | 0 | Rendering Intention. Es wird einer der folgenden Werte zurückgegeben: perceptual saturation relative absolute unknown 0 : Rückgabe ignorieren |
static int document::clean_storyscrap(ItemRef docRef = 0)
Löschen unbenutzter Textstories im Dokument. Alle Dokumente, die mit priint:comet Plugins vor v4.0.5 R16180 eingefügte %!TT-Texte enthalten, enthalten fälschlicherweise auch einige unbenutzte Objekte die unter sehr seltenen Umständen zu Problemen mit dem InDesign® -Dokument führen. können. Mit Hilfe der Funktion document::clean_storyscrap können diese Objekte entfernt werden.
Bemerkungen:
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::show_invisibles(ItemRef docRef = 0, int state = -2)
Verborgene Zeichen der Texte des Dokumentes ein- und ausblenden.
Name | Typ | Default | Beschreibung |
Return | int | Bisheriger Status -1 : Fehler 0 : Verborgene Zeichen ausgeblendet 1 : Verborgene Zeichen eingeblendet |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
int | state | -2 | Neuer Status -2 : Nur den Status abfragen -1 : Toggle 0 : Verborgene Zeichen ausgeblenden 1 : Verborgene Zeichen eingeblenden |
static int document::individualization(ItemRef docRef, char* dataFilePath)
Serienbrief eines Dokumentes erstellen. Informationen zu Serienbriefen finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Dokument, das serialisiert werden soll, siehe hier gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) 0 : aktuelles Frontdokument |
dataFilePath | char* oder String | - | Vollständiger Pfad der Datendatei für die Serialisierung, siehe hier Der Datentyp String wird ab v4.1 R23901 unterstützt! |
static ItemList document::linked_urls(ItemRef docRef = 0)
Hole alle Rahmen eines Dokumentes, die ein Web-Bild haben. Allgemeine Infos zu Web-Bildern finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | ItemList | Liste aller Rahmen des Dokumentes die Web-Bild haben. Die Liste muss mit itemlist::release wieder gelöscht werden! | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole die Rahmen mit Web-Bildern eines Dokumentes
int main() { ItemList linked = document::linked_urls(); ItemList embedded = document::embedded_urls(); int linkedCount = 0; int embeddedCount = 0;
if (linked) { linkedCount = itemlist::length(linked); }
if (embedded) { embeddedCount = itemlist::length(embedded); }
showmessage("%d frames are linked\n%d frames are embedded", framesCount, linkedCount, embeddedCount);
itemlist::release(selected); if (linked) { itemlist::release(linked); } if (embedded) { itemlist::release(embedded); }
return 0; }
static ItemList document::embedded_urls(ItemRef docRef = 0)
Hole alle Rahmen eines Dokumentes, die ein eingebettetes Web-Bild haben. Allgemeine Infos zu Web-Bildern finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | ItemList | Liste aller Rahmen des Dokumentes die ein Web-Bild zur Einbettung haben. Die Liste muss mit itemlist::release wieder gelöscht werden! | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Hole alle Rahmen eines Dokumentes mit Web-Bildern.
int main() { ItemList linked = document::linked_urls(); ItemList embedded = document::embedded_urls(); int linkedCount = 0; int embeddedCount = 0;
if (linked) { linkedCount = itemlist::length(linked); }
if (embedded) { embeddedCount = itemlist::length(embedded); }
showmessage("%d frames are linked\n%d frames are embedded", framesCount, linkedCount, embeddedCount);
itemlist::release(selected); if (linked) { itemlist::release(linked); } if (embedded) { itemlist::release(embedded); }
return 0; }
static ItemList document::check_url_links(
ItemRef docRef = 0,
ItemList outDated = 0,
ItemList error = 0,
int flags = 0)
Überprüfe alle Web-Bilder des Dokumentes. Allgemeine Infos zu Web-Bildern finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlerode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
outdated | ItemList | 0 | In diese Liste werden die Rahmen geschrieben, bei denen die Bilder veraltet sind. |
error | ItemList | 0 | In diese Liste werden die Rahmen geschrieben, bei denen die Statusprüfung fehlgeschlagen ist. |
flags | int | 0 | Bearbeitungshinweise 1 : Progressbalken zeigen |
Überprüfe den Status aller verlinkten Bilder
int main() { ItemList outDatedFrames = itemlist::alloc(); ItemList errorFrames = itemlist::alloc(); int i = 0; int outDatedFramesCount = 0; int errorFramesCount = 0;
document::check_url_links(gDocument, outDatedFrames, errorFrames, 1); errorFramesCount = itemlist::length(errorFrames); outDatedFramesCount = itemlist::length(outDatedFrames);
showmessage("%d frames are out of date.\nCould not get state for %d frames.", outDatedFramesCount, errorFramesCount);
itemlist::release(errorFrames); itemlist::release(outDatedFrames);
return 0; }
static ItemList document::update_url_links(ItemRef docRef = 0, int flags = 0)
Aktualisiere alle Web-Bilder des Dokuments, deren Originalbild sich geändert hat. Allgemeine Infos zu Web-Bildern finden Sie hier. Beachten Sie bitte auch die Regeln für die Bildplatzierung von Web-Bildern.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlerode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
flags | int | 0 | Bearbeitungshinweise 1 : Progressbalken zeigen |
int main () { ItemList missing = itemlist::alloc (); ItemList outdated = itemlist::alloc (); int result;
if (!system::shiftkey ()) { result = document::update_url_links (0, 1); if (result != 0) { showmessage ("Error %d while checking Web Images.", result); } } else { result = document::check_url_links (0, outdated, missing, 1); if (result == 0) { showmessage ("%d missing images, %d outdated images", itemlist::length (missing), itemlist::length (outdated)); } else { showmessage ("Error %d while checking Web Images.", result); } }
return 0; }
static ItemList document::remove_url_links(ItemRef docRef = 0)
Entferne die Verweise zu Web-Bldern aus allen Rahmen des Dokumentes. Die Bilder der Rahmen bleiben dabei bestehen, es wird lediglich die Verknüpfung zum Web-Bild (der URL) gel&oouml;scht. Allgemeine Infos zu Web-Bildern finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlerode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
int main () { document::remove_url_links(); return 0; }
static char* document::get_image_url_folder(ItemRef docRef = 0)
Ermittle den Pfad, an dem Donwloads für Web-Bilder des Dokumentes abgelegt werden. Allgemeine Infos zu Web-Bildern finden Sie hier.
Name | Typ | Default | Beschreibung |
Return | char* | Pfad des Ordners für Downloads des InDesign® -Dokumentes. Das Dokument
muss mind. einmal gesichert worden sein, neue ungesicherte Dokumente
haben noch keinen Pfad.
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::set_pdf_accessibility_order(ItemRef docRef, int structOrder)
Lege fest, welche Reihenfolge für Tags von barrierefreien PDFs verwendet werden soll, die 'normale' Reihenfolge, die sich aus den XY-Positionen ergibt oder die in der Artikel-Palette konfigurierte Artikel-Reihenfolge? Manuell kann die Auswahl mit Hilfe des Menüs Für Tagging-Reihenfolge in PDFs mit Tags verwenden der Artikel-Palette getroffen werden.
Die Einstellung wird nur vom PDF-Export und nur wenn 'Allgemein : PDF mit Tags' in den PDF-Vorgaben (/GenerateStructure) aktiviert ist, verwendet.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlerode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
structOrder | int | - | Welche Reihenfolge soll verwendet werden? 1 : Artikel-Reihenfolge 0 : InDesign Standardsortierung |
static int document::get_pdf_accessibility_order(ItemRef docRef)
Welche Reihenfolge wird für die Tags von barrierefreien PDFs verwendet? Die 'natürliche' Reihenfolge, die sich aus den XY-Positionen ergibt oder die in der Artikel-Palette konfigurierte Artikel-Reihenfolge? Manuell kann die Auswahl mit Hilfe des Menüs Für Tagging-Reihenfolge in PDFs mit Tags verwenden der Artikel-Palette getroffen werden.
Die Einstellung wird nur vom PDF-Export und nur wenn 'Allgemein : PDF mit Tags' in den PDF-Vorgaben (/GenerateStructure) aktiviert ist, verwendet.
Name | Typ | Default | Beschreibung |
Return | int | 0 : InDesign Standardsortierung 1 : Artikel-Reihenfolge -1 : Fehler |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::get_placeholder_visibility(ItemRef docRef = 0)
Erfrage die Sichtbarkeit der Platzhalter im Dokument.
Unter comet_pdf hat der Aufruf keine Wirkung. Die Sichtbarkeit von Platzhaltern kann hier mit der Programmoption -ap gesetzt, siehe hier.
Name | Typ | Default | Beschreibung |
Return | int | Aktuelle Sichtbarkeit der Platzhalter 0 : Nicht sichtbar 1 : Sichtbar 2 : Sichtbar mit Status -1 : Fehler |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::set_placeholder_visibility(
ItemRef docRef = 0,
int newState = 0,
int suppressUI = 0)
Setze die Sichtbarkeit von Platzhaltern im Dokument.
Unter comet_pdf hat der Aufruf keine Wirkung. Die Sichtbarkeit von Platzhaltern kann hier mit der Programmoption -ap gesetzt, siehe hier.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
newState | int | 0 | Neue Sichtbarkeit 0 : Verbergen 1 : Zeigen 2 : Mit Status zeigen |
suppressUI | int | 0 | Bei großen Dokumenten zeigt der Aufruf einen Progressbalken. Soll der Progressbalken
unterdrückt werden? 0 : Nein, Progressbalken bei Bedarf zeigen 1 : Ja, Progressbalken nicht zeigen Kein Effekt in Illustrator |
static int document::notes::export_(
ItemRef docRef = 0,
char* destPath = 0,
String destString = 0,
int flags = 4)
Exportieren der Comet-Notizen eines Dokumentes. Der Export kann wahlweise in eine Datei oder einen String erfolgen. Für den Export muss das Plugin ToDoList installiert sein.
Beachten Sie bitte, dass für den Export in einen String eine Variable vom Typ String verwendet wird (und nicht char* oder char[]). Das wird deshalb gemacht, weil der Export unerwartet lang werden kann und die Länge von String-Variablen automatisch verwaltet wird. Wollen Sie mit dem unveränderten Export weiterarbeiten, können Sie mit string::get auf den Inhalt der Variable zugreifen. Soll der Inhalt geändert werden, muss er vorher in eine char*-Variable kopiert werden. Die nötige Länge dazu erhalten Sie mit string::length (+mind 1 für die abschließende 0).
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
destPath | String oder char* | "" | Zielpfad. Ist die Angabe leer, wird die Zieldatei erfragt. Ist destString definiert und ungleich 0, wird die Angabe ignoriert. |
destString | String | 0 | Zielstring für den Export. Der String muss mit string::alloc allokiert sein! Ist die Angabe leer (0), wird der Export in die mit destPath definierte Datei gemacht. |
flags | int | kUseDocumentPath | Zusätzliche Angaben zum Export 0 : keine weiteren Angaben kUseDocumentPath : Dokumentpfad und Name mit .xml am Ende als Ausgabedatei kNoHiddenNotes : Unsichtbare Notizen nicht exportieren |
Export aller Comet-Notizen des aktuellen Dokumentes 'neben' die Datei. Das Dokument darf nicht neu (aber ungesichert) sein.
int main () { int result;
result = document::export_notes (); wlog ("# Exporting all notes returned result code %d\n", result);
return 0; }
Export der Comet-Notizen des aktuellen Dokumentes in einen String. Der Export kann danach für einen XML-Baum
zur Eingabe dienen.
Zur Demonstration wird der String nach dem Export in eine char*-Variable kopiert. Im Anwendungsfall benötigen Sie das nur,
wenn Sie den Inhalt des Exportes
ändern möchten (und in diesem Fall sollten Sie das alloc möglicherweise entsprechend größer machen!!).
#include "internal/types.h"
int main () { int result; String d = string::alloc (); char * s; XMLTree tree; char title [512]; long id;
result = document::export_notes (0, "", d); if (result == 0) wlog ("# %d chars exported\n", string::length (d)); else { wlog ("# Export to string failed with error %d\n", result); return 0; }
// Using export in an xml tree wlog ("", "Notes of current document\n"); tree = xmlquery::parse (string::get (d)); xmlquery::send (tree, "select title, id node notes.note orderby title"); xmlquery::output (tree, kString, title, 511); xmlquery::output (tree, kInt, &id); xmlquery::exec (tree); while (xmlquery::fetch (tree)) { wlog ("", "\t%s : %d\n", title, id); } xmlquery::close (tree);
// Internal usage of export s = alloc (string::length (s)+1); strcpy (s, string::get (d));
wlog ("", "\n\n"); wlog ("", s); wlog ("", "\n\n");
release (s); release (d);
return 0; }
static int document::notes::import(
ItemRef docRef = 0,
char* srcPath = 0,
char* srcString = 0,
int flags = 6)
Importieren von Comet-Notizen in ein InDesign® -Dokument. Die Comet-Notizen können als Datei (XML oder PDF) oder als String (String oder char*) mit den XML-Daten der Comet-Notizen vorliegen. Für den Import muss das Plugin ToDoList installiert sein.
Hier finden Sie Informationen zum XML-Format der Comet-Notizen
Beachten Sie bitte auch die Installationshinweie für den Import von Kommentaren einer PDF-Datei
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
srcPath | String oder char* | "" | Quelldatei 0 oder "" : XML-Datei erfragen. Ist srcString ungleich 0, wird die Angabe ignoriert. "pdf" : Import der PDF-Kommentare aus der PDF-Datei gleichen Namens neben dem Dokument Vollständiger Pfad einer PDF-Datei: Import der PDF-Kommentare aus dieser Datei |
srcString | String oder char* | 0 | XML-Text mit den Comet-Notizen. Ist die Angabe leer (0), wird der Import aus der mit srcPath definierten Datei gemacht. |
flags | int | kUseDocumentPath + kReplaceNotes | Zusätzliche Angaben zum Import 0 : keine weiteren Angaben kUseDocumentPath : Importdatei befindet sich 'neben' der Dokumentdatei. kReplaceNotes : Alle bisherigen Comet-Notizen werden aus dem Dokument gelöscht. kSuppressExternalUpdate : [Nur InDesign® Server] InDesign® Server importiert Notizen immer als unsichtbare Notizen. Wird das Dokument später in InDesign® geöffnet, werden unsichtbare Notizen automatisch sichtbar gemacht. Ist das Flag gesetzt, bleiben die Notizen auch in der Desktop-Version unsichtbar. (Die Eigenschaft gilt global für alle versteckten Notizen. Spätere Aufrufe von import_notes, bei denen das Flag nicht gesetzt ist, bewirken also, dass auch vorher importierte Notizen sichtbar gemacht werden.) |
Ersetze alle Comet-Notizen durch die 'neben' dem Dokument liegende XML-Datei.
int main () { document::import_notes (); return 0; }
Mit einem Trick können Sie alle Comet-Notizen aus einem Dokument entfernen : Als Importquelle verwenden Sie einen leeren String (aber nicht 0) mit der Option kReplaceNotes.
int main ()
{
document::import_notes (0, 0, "");
return 0;
}
[InDesign® Server] In ein Dokument sollen Notizen importiert werden. Danach soll das Dokument inkl. der sichtbaren Notizen als PDF exportiert werden. Wird das Dokument später im Desktop geöffnet, sollen die Notizen unsichtbar sein.
#include "internal/types.h"
int main () { int flags = kUseDocumentPath + kReplaceNotes;
flags += kSuppressExternalUpdate; document::import_notes (0, "$DESKTOP/foo.xml", "", flags); document::show_notes (); document::pdf_export(0, 0, "Druckbare Notizen"); document::hide_notes (0);
return 0; }
static int document::notes::show(ItemRef docRef = 0)
Zeige alle Comet-Notizen des angegebenen InDesign® -Dokumentes. Versteckte Comet-Notizen, die auf nicht mehr existierende Ziele verweisen, werden dabei automatisch aus der Datei gelöscht.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::notes::hide(ItemRef docRef = 0)
Verstecke alle Comet-Notizen des angegebenen InDesign® -Dokumentes
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::notes::get_printable(ItemRef docRef = 0)
Druckbarkeit* von Comet-Notizen. Werden Comet-Notizen gedruckt oder nicht.
*) "Druckbar" bedeutet die "normale" Druckerausgabe und PDF-Exporte.
Name | Typ | Default | Beschreibung |
Return | int | Sind die Comet-Notizen druckbar oder nicht? 1 : ja 0 : nein |
|
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) Unter comet_pdf wird die Angabe ignoriert und der aktuelle Wert der Programmoption --annot ermittelt. |
static int document::notes::set_printable(ItemRef docRef = 0, int newState = 0)
Setze die Druckbarkeit* von Comet-Notizen. Sollen Comet-Notizen gedruckt werden oder nicht? Die Funktion ändert die Einstellung für alle Notizen des Dokumentes. Werden versteckte Notizen sichtbar gemacht oder neue Notizen erstellt, wird die aktuelle Dokumenteinstellung der Druckbarkeit für diese Notizen übernommen.
*) "Druckbar" bedeutet die "normale" Druckerausgabe und PDF-Exporte.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) Unter comet_pdf wird die Angabe ignoriert und der aktuelle Wert der Programmoption --annot geändert. |
newState | int | 0 | Druckbarkeit 0 : nicht druckbar oder in PDFs exportieren 1 : drucken und in PDFs exportieren |
Ändere den Druck-Status der Dokument-Notizen.
int main () { int printable = document::get_notes_printable ();
document::set_notes_printable (0, !printable); wlog ("", "# Note printable : %d\n", document::get_notes_printable ());
return 0; }
static int document::notes::set_pdf_prefs(
float fontSize = 12.0,
char* fontFamily = "Verdana",
int printable = 0,
int opened = 1)
Standardeinstellungen für PDF-Kommentare, die aus Comet-Notizen erstellt werden. Hier finden Sie Informationen zum PDF-Export und -Import von Comet-Notizen
Name | Typ | Default | Beschreibung |
Return | int | 0 | |
fontSize | int | 12 | Standardschriftgröße für Kommentare von Comet-Notizen ohne lokal gesetzte Schriftgröße |
fontfamily | char* oder String | "Verdana" | Standardschrift für Kommentare von Comet-Notizen ohne lokal gesetzte Schriftgröße |
printable | int | 0 | Können die PDF-Kommentare gedruckt werden? 0 : Nein 1 : Ja |
opened | int | 1 | Sollen die PDF-Kommentare in der Ansicht geöffnet sein? 0 : Nein 1 : Ja |
static int document::notes::change_group(
ItemRef docRef,
int oldGroupID,
int newGroupID)
Comet-Notizen von einer Cometgruppe an eine andere Cometgruppe übergeben.
Die Funktion hieß bis v4.2 R32064 notes::cometgroup_changed. Dieser alte Name ist weiter gültig.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
oldGroupID | int | - | Alte Cometgruppen-ID |
newGroupID | int | - | Neu Cometgruppen-ID |
Erzeuge aus der aktuellen Rahmenauswahl eine neue Cometgruppe und übergib der neuen Gruppe die Notizen einer bereits bestehenden Cometgruppe. Danach wird die alte Cometgruppe gelöscht.
int main () { int groupID = 24991; // Put in your Comet Group ID here. ItemList oldGroup = itemlist::get_cometgroup_members (0, groupID, 1); ItemList newGroup = itemlist::selected ();
if (gRun > 1) return 0;
itemlist::create_cometgroup (newGroup); document::notes::change_group (0, groupID, itemlist::get_cometgroup (newGroup));
itemlist::remove_items (oldGroup);
return 0; }
static int document::notes::delete_groupnotes(ItemRef docRef, int groupID)
Lösche die Gruppennotizen einer Cometgruppe.
Die Funktion hieß bis v4.2 R32064 notes::cometgroup_deleted. Dieser alte Name ist weiter gültig.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
groupID | int | - | Cometgruppen-ID |
static List document::notes::find(
ItemRef docRef,
char* selector,
char* regex,
...)
Suche von Notizen.
Die Funktion gibt eine Liste von IDs zurück, die bspw. in Funktionen wie document::notes::delete_note verwendet werden können.
Die Suchkriterien werden als (beliebig viele) Werte-Paare übergeben. Suchkriterien werden mit UND verknüpft. Als Schlüssel (key) kann einer der unten aufgelisteten Selektoren verwendet, als Suchausdruck ein regulärer Ausdruck.
"title", "Eine Notiz" findet alle Notizen, deren Titel "Eine Notiz" enthät.
"title", "^Eine Notiz$" dagegen findet nur Notizen, deren Titel exakt "Eine Notiz" ist.
Um Notizen direkt über ihren Dokumentrahmen bzw. -referenz zu bearbeiten, verwenden Sie die Funktionen itemlist::doc_notes, ... und frame::notes::change_dest, ... .
Name | Typ | Default | Beschreibung |
Return | List | Liste mit IDs der gefundenen IDs. Die Liste muss mit list::release wieder freigegeben werden. | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
selector | char * | - | Bezeichner für das Feld bzw. die Notiz-Eigenschaft. Mögliche Werte sind:
|
regex | char * | - | Suchmuster (regulärer Ausdruck) |
... | char * | - | Weitere selector / regex Paare. Die Bedingungen werden UND verknüpft |
static int document::notes::show_note(
ItemRef docRef,
int noteId,
...)
Einblenden einer einzelnen Notiz.
Die Notizen werden über ihre ID definiert (siehe document::notes::find). Um Notizen direkt über ihren Dokumentrahmen bzw. -referenz zu bearbeiten, verwenden Sie die Funktionen itemlist::doc_notes, ... und frame::notes::change_dest, ... .
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
noteId | int | - | ID der einzublendenden Notiz |
... | int | - | IDs weiterer einzublendender Notizen |
static int document::notes::hide_note(
ItemRef docRef,
int noteId,
...)
Ausblenden einzelner Notizen.
Die Notizen werden über ihre ID definiert (siehe document::notes::find). Um Notizen direkt über ihren Dokumentrahmen bzw. -referenz zu bearbeiten, verwenden Sie die Funktionen itemlist::doc_notes, ... und frame::notes::change_dest, ... .
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
noteId | int | - | ID der auszublendenden Notiz |
... | int | - | IDs weiterer auszublendender Notizen |
static int document::notes::delete_note(
ItemRef docRef,
int noteId,
...)
Löschen einzelner Notizen.
Die Notizen werden über ihre ID definiert (siehe document::notes::find). Um Notizen direkt über ihren Dokumentrahmen bzw. -referenz zu bearbeiten, verwenden Sie die Funktionen itemlist::doc_notes, ... und frame::notes::change_dest, ... .
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
noteId | int | - | ID der zu löschenden Notiz |
... | int | - | IDs weiterer zu löschender Notizen |
static int document::sync::create_variant(
ItemRef docRef,
char* outfileInfo = 0,
int flags = 1)
Erzeuge eine Variante eines Musterdokumentes. Der Befehl ist nur sinnvoll für nachfolgende Dokument-Synchronisationen.
Der Befehl ist nicht ausführbar für neue, ungesicherte Dokumente!
Für die Variante werden folgende Schritte gemacht:
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) Der Befehl ist nicht ausführbar für neue, ungesicherte Dokumente! |
outfileInfo | char * oder String | 0 | Pfad-Hinweise für die Variante 0 oder "" : Lege die Variante mit der Namensendung _variant neben das Musterdokument relativer Pfad : Lege die Variante unter dem angegeben Namen neben das Musterdoument. Die Namensangabe erfolgt ohne die Endung .indd. sonst : Vollständiger Pfad der Variante |
flags | int | 1 | Flags 1 : Existierende Variante darf überschrieben werden |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::possible(ItemRef variant, ItemRef master)
Prüfe, ob ein gegebenes Dokument mit einem anderen Dokument synchronsiert werden kann. Folgende Voraussetzungen müssen für eine Dokument-Synchronisation erfüllt sein:
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::before(ItemRef variant)
Bereite eine Variante auf die Synchronisation mit dem Musterdokument vor. Dieser Schritt muss vor dem Beginn jeder Synchronisation ausgeführt werden! Nach dem Ende der Dokument-Synchronisation muss die Funktion document::sync::after ausgeführt werden.
Die Funktion setzt das XML-Root-Element priint_syncDocType auf den Wert in progress. Dadurch wird verhindert, dass Änderungen an der Variante als lokale Änderungen registiert werden, die bei in späteren Synchronisationen dann ignoriert werden würden.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::after(ItemRef variant)
Die Synchronsation einer Variante ist beendet. Versetze das Dokument wieder in den Normalzustand.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::swatches(ItemRef variant, ItemRef master)
Synchronsation der Farbfelder. Lege alle im Musterdokument definerten und in der Variante fehlenden Farbfelder (swatches), Farbtonfelder und Verlaufsfelder in der Variante an und übertrage Änderungen an bereits existierenden Swatches in die Variante. Farbtongruppen werden bei Bedarf wiederhergestellt. Verschiebungen in andere Farbtongruppen in der Variante bleiben erhalten. Die Reihenfolge der Swatches kann sich ändern.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::layers(ItemRef variant, ItemRef master)
Synchronisation der Ebenen. Erzeuge/Aktualisiere alle Ebenen des Musterdokumentes in der Variante. Ebenen werden über ihre Namen eindeutig identifiziert. Die Reihenfolge der Ebenen bleibt erhalten. In der Variante neu hinzugefügte Ebenen, die nicht im Master enthalten sind, werden hinter die Original-Ebene aus dem Master gelegt. Existiert diese Ebene nicht(mehr), werden sie nach ganz oben verschoben.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::styles(ItemRef variant, ItemRef master)
Synchronisation der Stildefinitionen. Erzeuge/Aktualisiere alle Stile des Musterdokumentes in der Variante. Der Befehl entspricht dem Javascript-Befehl doc.importStyles der InDesign-Scripting DOM. Folgende Stile werden aktualistiert:
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::masterspreads(ItemRef variant, ItemRef master)
Synchronisation der Musterseiten. Erzeuge/Aktualisiere alle Musterseiten des Musterdokumentes in der Variante. Der Befehl entspricht dem Javascript-Befehl doc.loadMasters der InDesign-Scripting DOM.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::pages(ItemRef variant, ItemRef master)
Synchronisation der Dokumentseiten. Erzeuge/Aktualsiere (alle Einstellungen) aller Seiten des Musterdokumentes in der Variante. Der Verweis auf die Originalseite im Master-Dokument wird über die intern auf der Seite gespeicherten Informationen hergestellt. (siehe Javascript-Funktion doc.pageGetOrigin.
Seiten, die lokal in der Variante (mit einem Ursprung == 0) erstellt wurden, werden hinter die Originalseite aus dem Master verschoben. Wenn diese Seite nicht (mehr) existiert, wird die Seite ganz nach hinten verschoben.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::groups(ItemRef variant, ItemRef master)
Synchronisation der Rahmengruppen. Erzeugen/Aktualisieren aller Rahmengruppen wie im Musterdokument. Gruppen des Musterdokumentes haben Vorrang vor Gruppen der Variante.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::remove_empty_pages(ItemRef variant, ItemRef master)
Löschen leerer lokaler Seiten. Lösche alle lokal angelegten und leeren Seiten der Variante.
Dadurch, dass die Variante lokale Änderungen enthalten darf, kann es sein, dass eine Seite zwar im Musterdokument leer ist, aber nicht in der Variante. Ebenso kann die Variante freigestellte Musterseiten-Einträge haben. Seiten der Variante mit lokalen Änderungen und/oder freigestellten Musterseiten-Einträge werden nicht gelöscht!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::remove_empty_layers(ItemRef variant, ItemRef master)
Löschen leerer lokaler Ebenen. Lösche alle leeren Ebenen der Variante, die nicht lokal angelegt wurden und auch im Musterdokument leer sind.
Dadurch, dass die Variante lokale Änderungen enthalten darf, kann es sein, dass eine Ebene zwar im Musterdokument leer ist, aber nicht in der Variante. Ebenso kann die Variante freigestellte Musterseiten-Einträge haben. Ebenen der Variante mit lokalen Änderungen und/oder freigestellten Musterseiten-Einträge werden nicht gelöscht!
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::sync::cleanup(ItemRef variant, ItemRef master)
Aufräumen des Dokumentes nach einer Synchronisation. In der aktuellen Variante werden von der Funktion überzählige Farbverläufe aus Objekt- und Absatzstilen entfernt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
variant | ItemRef | - | Dokumentreferenz der Variante 0 : aktuelles Skriptdokument |
master | ItemRef | - | Dokumentreferenz des Musterdokumentes |
Ein vollständiges Beispiel finden Sie in der Beschreibung der Dokument-Synchronisationen:
Beispielskript
static int document::metadata::set_title(ItemRef docRef, char* value)
Setze den Dokumenttitel. Der Dokumenttitel wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neuer Dokumenttitel. Der neue Wert darf leer (0 oder "") sein. |
static char* document::metadata::get_title(ItemRef docRef)
Hole den Dokumenttitel. Der Dokumenttitel wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | char* | Dokumenttitel des Dokumntes
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::metadata::set_author(ItemRef docRef, char* value)
Setze den Autor des Dokumentes. Der Dokumenttitel wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neuer Autor des Dokumentes. Der neue Wert darf leer (0 oder "") sein. |
static char* document::metadata::get_author(ItemRef docRef)
Hole den Autor des Dokumentes. Der Autor des Dokumentes wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | char* | Autor des Dokumentes
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::metadata::set_author_title(ItemRef docRef, char* value)
Setze den Titel des Autor des Dokumentes. Der Titel des Autors wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neuer Autortitel des Dokumentes. Der neue Wert darf leer (0 oder "") sein. |
static char* document::metadata::get_author_title(ItemRef docRef)
Hole den Titel des Autor des Dokumentes. Der Titel des Autor wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | char* | Titel des Autor des Dokumentes
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::metadata::set_author_descr(ItemRef docRef, char* value)
Setze die Dokumentbeschreibung des Autors. Der Dokumentbeschreibung des Autors wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neue Dokumentbeschreibung des Autor des Dokumentes. Der neue Wert darf leer (0 oder "") sein. |
static char* document::metadata::get_author_descr(ItemRef docRef)
Hole die Dokument-Beschreibung des Autors. Der Beschreibung des Autors wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | char* | Dokument-Beschreibung des Autors
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::metadata::set_descr(ItemRef docRef, char* value)
Setze die Beschreibung des Dokumentes. Der Beschreibung des Dokumentes wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neue Beschreibung des Dokumentes. Der neue Wert darf leer (0 oder "") sein. |
static char* document::metadata::get_descr(ItemRef docRef)
Hole die Beschreibung des Dokumentes. Die Beschreibung des Dokumentes wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | char* | Beschreibung des Dokumentes
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::metadata::set_keys(ItemRef docRef, char* value)
Definiere die Schlüsselworte des Dokumentes. Mehrere Schlüsselworte können durch Kommas getrennt werden. Die Schlüsselworte des Dokumentes werden im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neue Schlüsselworte des Dokumentes. Der neue Wert darf leer (0 oder "") sein. |
static char* document::metadata::get_keys(ItemRef docRef)
Hole die definerten Schlüsselworte des Dokumentes. Mehrere Schlüsselworte werden durch Kommas getrennt. Die Schlüsselworte werden im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | char* | Definerte Schlüsselworte des Dokumentes.
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::metadata::set_copyright(ItemRef docRef, char* value)
Definiere eine Copyright-Notiz für das Dokument. Der Copyright-Notiz des Dokumentes wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neue Copyright-Notiz des Dokumentes. Der neue Wert darf leer (0 oder "") sein. |
static char* document::metadata::get_copyright(ItemRef docRef)
Hole die Copyright-Notiz des Dokumentes. Der die Copyright-Notiz des Dokumentes wird im InDesign-Dialog Datei -> Dateiinformationen... und im Acrobat-Menü Datei -> Eigenschaften... des PDFs angezeigt.
Name | Typ | Default | Beschreibung |
Return | char* | Copyright note of the document
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::metadata::set_copyright_url(ItemRef docRef, char* value)
Definiere die Copyright Info URL für das Dokument.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | char* oder String | - | Neue Copyright Info URL des Dokumentes. Der neue Wert darf leer (0 oder "") sein. |
int main () { // rating // printf ("rating : %d\n", document::metadata::get_rating (0)); document::metadata::set_rating (0, 2); printf ("rating : %d\n", document::metadata::get_rating (0));
// copyright_url // printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0)); document::metadata::set_copyright_url (0, "www.bahn.deppfff"); printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0));
// copyright_state // printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0)); document::metadata::set_copyright_state (0, 2); printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0));
return 0; }
static char* document::metadata::get_copyright_url(ItemRef docRef)
Hole die Copyright Info URL des Dokumentes.
Name | Typ | Default | Beschreibung |
Return | char* | Copyright Info URL des Dokumentes
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
int main () { // rating // printf ("rating : %d\n", document::metadata::get_rating (0)); document::metadata::set_rating (0, 2); printf ("rating : %d\n", document::metadata::get_rating (0));
// copyright_url // printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0)); document::metadata::set_copyright_url (0, "www.bahn.deppfff"); printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0));
// copyright_state // printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0)); document::metadata::set_copyright_state (0, 2); printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0));
return 0; }
static int document::metadata::set_copyright_state(ItemRef docRef, int value)
Definiere den Copyright-Status für das Dokument.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | int | - | Neuer Copyright-Status des Dokumentes. 1 : Urheberrechtlich geschützt 2 : Public Domain sonst : Unbekannt |
int main () { // rating // printf ("rating : %d\n", document::metadata::get_rating (0)); document::metadata::set_rating (0, 2); printf ("rating : %d\n", document::metadata::get_rating (0));
// copyright_url // printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0)); document::metadata::set_copyright_url (0, "www.bahn.deppfff"); printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0));
// copyright_state // printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0)); document::metadata::set_copyright_state (0, 2); printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0));
return 0; }
static int document::metadata::get_copyright_state(ItemRef docRef)
Hole den Copyright-Status des Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | Copyright-Status des Dokumentes 0 : Unbekannt 1 : Urheberrechtlich geschützt 2 : Public Domain -1 : Fehler |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
int main () { // rating // printf ("rating : %d\n", document::metadata::get_rating (0)); document::metadata::set_rating (0, 2); printf ("rating : %d\n", document::metadata::get_rating (0));
// copyright_url // printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0)); document::metadata::set_copyright_url (0, "www.bahn.deppfff"); printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0));
// copyright_state // printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0)); document::metadata::set_copyright_state (0, 2); printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0));
return 0; }
static int document::metadata::set_rating(ItemRef docRef, int value)
Definiere die Bewertung des Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
value | int | - | Neue Bewertung des Dokumentes. 1 - 5 : Anzahl der Sterne sonst : Keine Bewertung |
int main () { // rating // printf ("rating : %d\n", document::metadata::get_rating (0)); document::metadata::set_rating (0, 2); printf ("rating : %d\n", document::metadata::get_rating (0));
// copyright_url // printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0)); document::metadata::set_copyright_url (0, "www.bahn.deppfff"); printf ("copyright_url : '%s'\n", document::metadata::get_copyright_url (0));
// copyright_state // printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0)); document::metadata::set_copyright_state (0, 2); printf ("copyright_state : %d\n", document::metadata::get_copyright_state (0));
return 0; }
static ItemList document::get_articles(ItemRef docRef = 0)
Erstelle eine Liste aller Artikel eines Dokumentes. Die Funktion ist gleichwertig mit der Funktion itemlist::articles.
Die Artikel eines Dokumentes können mit der Palettte Artikel auch manuell bearbeitet werden.
Name | Typ | Default | Beschreibung |
Return | ItemList | Liste aller Artikel des Dokumentes
Die Ergebnisliste muss mit itemlist::release wieder gelöscht werden! |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
static int document::articles::count(ItemRef docRef = 0)
Wieviele Artikel hat ein Dokument?
Name | Typ | Default | Beschreibung |
Return | int | Anzahl der Artikel im Dokument. | |
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
Schleife über alle Artikel eines Dokumentes.
int main () { int i; ItemRef fa = item::alloc ();
for (i = 0; i < document::articles::count (); i++) { document::articles::get_nth (0, fa, i);
wlog ("", "# %d (UID %d) : %s, (use for export : %d)\n", i + 1, item::getint (fa), document::article::get_name (fa), document::article::get_use_for_export (fa)); }
item::release (fa);
return 0; }
Alternativ (und etwas schneller) können Sie diese Schleife auch wie gewohnt über die ItemList der Artikel laufen lassen.
int main () { int i; ItemList articles; ItemRef fa = item::alloc ();
articles = itemlist::articles (); for (i = 0; i < itemlist::length (articles); i++) { itemlist::get (articles, fa, i);
wlog ("", "# %d (UID %d) : %s, (use for export : %d)\n", i + 1, item::getint (fa), document::article::get_name (fa), document::article::get_use_for_export (fa)); }
item::release (fa); itemlist::release (articles);
return 0; }
static int document::articles::get_nth(
ItemRef docRef,
ItemRef outArticleRef,
int nth)
Hole den n-ten Artikel eines Dokumentes.
Name | Typ | Default | Beschreibung |
Return | int | 0 : Artikel gefunden Sonst : Fehlercode |
|
docRef | ItemRef | - | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
outArticleRef | ItemRef | - | Rückgabevariable für den gefundenen Artikel. 0 : Ergebnis ignorieren Sonst : Allokierte Variable vom Typ ItemRef |
nth | int | - | 0-basierter Index des Artikels. Ist nth ≥ articles::count gibt die Funktion einen Fehler zurück. -1 : Letzer Artikel |
static int document::articles::find(ItemRef frameRef)
Erstelle eine Liste aller Artikel eines Dokumentes, die einen bestimmten Rahmen enthalten.
Ein und derselbe Rahmen kann gleichzeitig mehreren Artikeln zugeordnet werden. Für die gewünschte Barrierefreiheit ist das sicher nicht besonders hilfreich.
Name | Typ | Default | Beschreibung |
Return | ItemList | Liste aller Artikel des Dokumentes, die den gegebenen Rahmen enthalten.
Die Ergebnisliste muss mit itemlist::release wieder gelöscht werden! |
|
frameRef | ItemRef | 0 | Gültige Rahmenreferenz 0 : Aktueller Skriptrahmen |
Sammle alle Artikel, die den aktuellen Skriptrahmen enthalten.
int main () { int i; ItemList articles; ItemRef fa = item::alloc ();
articles = document::articles::find (gFrame); for (i = 0; i < itemlist::length (articles); i++) { itemlist::get (articles, fa, i);
wlog ("", "# %d (UID %d) : %s, (use for export : %d)\n", i + 1, item::getint (fa), document::article::get_name (fa), document::article::get_use_for_export (fa)); }
item::release (fa); itemlist::release (articles);
return 0; }
static int document::article::create(
ItemRef outArticleRef = 0,
ItemRef docRef = 0,
char* name = 0,
int pos = -1,
int useForExport = 1)
Erzeuge einen neuen leeren Artikel im angegebenen Dokument.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
outArticleRef | ItemRef | 0 | Bei erfolgreicher Ausführung enthält die Variable ein egültig Referenz auf den neuen Artikel. 0 : Ergebnis ignorieren Sonst : Allokierte Variable vom Typ ItemRef |
docRef | ItemRef | 0 | Angabe des Dokumentes gDocument oder 0: Dokument, mit dem das Skript gestartet wurde. Sonst: Gültige Dokumentreferenz (z. B. von document::get_front) |
name | char* oder String | 0 | Name des neuen Artikels 0 oder "" : Standardnamen verwenden |
pos | int | -1 | Position in der Artikelliste -1 : Anfügen > 0 : 0-basierter Index |
useForExport | int | 1 | Soll der Artikel exportiert werden? 1 : Ja 0 : Nein |
static int document::article::remove(ItemRef articleRef)
Löschen eines Artikels. Die Inhalte des Artikels bleiben dabei erhalten.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
static int document::article::set_pos(ItemRef articleRef, int pos = -1)
Verschieben eines Artikels in der Artikelliste.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
pos | int | -1 | Neue Position des Artikels in der Artikelliste -1 : Ans Ende |
static int document::article::get_pos(ItemRef articleRef)
Ermittle die Position eines Artikels innerhalb der Artikelliste.
Name | Typ | Default | Beschreibung |
Return | int | ≥ 0 : =-basierter Index des Artikels in der Artikelliste des Dokumentes -1 : Fehler |
|
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
static char* document::article::get_name(ItemRef articleRef)
Ermittle den Namen eines Artikels des Dokumentes.
Name | Typ | Default | Beschreibung |
Return | char* | Pfad der Dokumentdatei oder Fenstertitel bei neuen Dokumenten
Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen. "" : Fehler |
|
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
static int document::article::set_name(ItemRef articleRef)
Ändere den Namen eines Artikels des Dokumentes. Um einen Artikelnamen manuell zu ändern, klicken oder doppel-klicken Sie den Artikel direkt in der Artikel-Palette.The article name can be changed manually by single-clicking or double-clicking the article.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
name | char* oder String | 0 | Neuer Name des Artikels 0 oder "" : Standardnamen verwenden |
static int document::article::get_use_for_export(ItemRef articleRef)
Wird der Artikel in die Tags für die Barrierefreiheit eingefügt? Die Funktion erfragt die Artikel-Einstellung Beim Exportieren berücksichtigen, die beim Doppelklick eines Artikels in der Artikel-Palette gezeigt wird.
Name | Typ | Default | Beschreibung |
Return | int | 0 : Nein 1 : Ja -1 : Fehler |
|
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
static int document::article::set_use_for_export(ItemRef articleRef, int useFoExport)
Soll der Artikel beim Export berücksichtigt werden? Die Funktion setzt die Artikel-Einstellung Beim Exportieren berücksichtigen, die beim Doppelklick eines Artikel in der Artikel-Palette gesetzt werden kann.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
useFoExport | int | - | 0 : Nein, nicht verwenden 1 : Ja |
static ItemList document::article::get_members(ItemRef articleRef)
Erstelle einen Liste aller Elemente (members) eines Artikels. Die Liste enthält üblicherweise die Dokumentrahmen, deren Inhalte den Artikel bilden.
Name | Typ | Default | Beschreibung |
Return | ItemList | Liste aller Rahmen des Artikels
Die Ergebnisliste muss mit itemlist::release wieder gelöscht werden! |
|
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
static int document::article::members::add(ItemRef articleRef, ItemRef frameRef = 0; int pos = -1)
Hinzufügen eines Rahmens zu einem Artikel.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
frameRef | ItemRef | 0 | Gültige Rahmenreferenz 0 : Aktueller Skriptrahmen |
pos | int | -1 | 0-basierter Index des neuen Rahmens in der Liste der Elemente des Artikels -1 : Anfügen |
Füge den aktuellen Skriptrahmen ans Ende des letzten Artikels des Dokumentes an.
int main () { ItemRef fa = item::alloc ();
document::articles::get_nth (0, fa, -1); document::article::members::add (fa, gFrame); item::release (fa);
return 0; }
static int document::article::members::add_multi(
ItemRef articleRef,
int uid,
...)
Hinzufügen einer beliebig Anzahl von Elementen (Rahmen) zu einem Artikel.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode -1 oder 1 : Allgemeiner Fehler > 0: Mindestens ein Rahmen der angegebenen Liste konnte nicht zur Members-Liste hinzugefügt werden. Der Rückgabewert gibt die erste nicht eingefügte UID an. Unabhängig davon wurden trotzdem alle existierenden Rahmen zur Members-Liste hinzugefügt. |
|
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
uid, ... | int, ... | - | Beliebig viele Rahmen-UIDs, abgeschlossen durch die Einfügeposition in der Members-Liste des Artikels.
Nicht existierende Rahmen werden ignoriert. ..., -1 : Elemente anfügen ..., N : : Elemente an der Postion N (0-basiert) einfügen Die abschließende Positionsangabe ist zwingend und muß auch bei 'Anfügen' (-1) angegeben werden! Wenn die Rahmen 1000-1003 existieren und 999999 nicht existiert, werden die Rahmen 1000-1003 zur Mitgliederliste hinzugefügt. Der Rahmen 999999 wird ignoriert und die Funktion gibt den Wert 999999 zurück. 1000, 1001, 999999, 1002, 1003, -1 |
Füge einige Rahmen ans Ende des letzten Artikels des Dokumentes an.
int main () { ItemRef fa = item::alloc ();
document::articles::get_nth (0, fa, -1); document::article::members::add_multi (fa, 1000, 1001, 999999, 1002, 1003, -1); item::release (fa);
return 0; }
static int document::article::member::remove(ItemRef articleRef, ItemRef frameRef = 0)
Enferne einen Rahmen aus einem Artikel. Der Rahmen selbst wird dabei nicht gelöscht.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
frameRef | ItemRef | 0 | Gültige Rahmenreferenz 0 : Aktueller Skriptrahmen |
static int document::article::member::get_pos(ItemRef articleRef, ItemRef frameRef = 0)
Ermittle die Position eines Rahmen in einem Artikel.
Name | Typ | Default | Beschreibung |
Return | int | 0-basierter Index des Rahmens in der Artikelliste -1 : Nicht in der Artikelliste enhalten | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
frameRef | ItemRef | 0 | Gültige Rahmenreferenz 0 : Aktueller Skriptrahmen |
static int document::article::member::set_pos()
Verschieben eines Rahmens in der Rahmenliste eines Artikels.
Name | Typ | Default | Beschreibung |
Return | int | 0 oder Fehlercode | |
articleRef | ItemRef | - | Gültige Referenz auf einen Artikel |
frameRef | ItemRef | 0 | Gültige Rahmenreferenz 0 : Aktueller Skriptrahmen |
pos | int | -1 | 0-basierter Index des neuen Rahmens in der Liste der Elemente des Artikels -1 : Anfügen |
Alphabetic index HTML hierarchy of classes or Java