Ebenen eines InDesign®-Dokumentes
Ebenen eines InDesign®-Dokumentes
static int layer::count()
Wieviele Ebenen hat das aktive Dokument?
| Name | Typ | Default | Beschreibung |
| Return | int | Anzahl der Ebenen des aktiven Dokumentes |
Zeige die Anzahl der Ebenen des aktuellen Dokumentes in einer Nachricht.
int main ()
{
showmessage ("%d", layrs::count ());
return 0;
}
static char* layer::front_name(char* s = 0)
Ermittle den Namen der aktiven Ebene.
In InDesign® (Desktop) ist das die aktive Ebene des aktuellen Front-Dokumentes.
In InDesign® Server ist das aktuelle Frontdokument das zuletzt geöffnete Dokument und die aktive Ebene ist die Ebene, die in diesem Dokument zuletzt mit layer::select festgelegt wurde. Der Aufruf von layer::select kann dabei in einer voherigen (auch InDesign® Desktop) Session gewesen sein. Wurde layer::select im aktuellen Front-Dokument noch nie ausgeführt, wird der Leerstring zurückgegeben.
Hat das Dokument nur eine Ebene, wird diese Ebene automatisch als aktive Ebene verwendet. Auf den Aufruf von layer::select kann in diesem Fall verzichtet werden.
| Name | Typ | Default | Beschreibung |
| Return | String oder char* | Die Eingabevariable s wird zur einfacheren Verwendung der Funktion als Rückgabewert verwendet. | |
| s | String oder char* | 0 | Reservierter Speicher für den Ebenennamen 0 : [ab v4.3 R36166] Die Variable darf 0 sein oder fehlen, dann gilt: 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. |
Zeige den Namen der aktuellen Ebene in einer Nachricht.
int main ()
{
showmessage ("--%s--", layer::front_name ());
return 0;
}
Im Beipiel wird layer::front_name in einem Pythonskript verwendet, das den Namen der aktiven Ebene benötigt (wenn auch nur in einem showMwssage).
#!py
import comet
def main(): comet.runCScript ("int main ()\ {\ char lname [512];\ \ set_script_clipboard (\"myLayer\", layer::front_name (lname));\ return 0;\ }") frontLayer = comet.getScriptClipboard ('myLayer') comet.showMessage (f'Current Layer is now {frontLayer}') return 0
static int layer::rename_all(char* prefix = 0)
Umbenennen aller Ebenen gemäß ihrer aktuellen Reihenfolge. Der übergebene Präfix wird als Basis der neuen Ebenennamen verwendet. Die oberste Ebene (die, die alle anderen überdeckt) bekommt die größte Zählnummer. In einem Dokument mit L Ebenen ergeben sich damit folgende neue Namen:
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| prefix | String oder char* | "" | Namensbasis. Ist der Präfix leer, wird der InDesign® Standardname 'Ebene' verwendet. |
Ändere alle Ebenenname gemäß ihrer aktuellen Reihenfolge in MMM 5, MMM 4, ..., MMM 1.
int main ()
{
layer::rename_all ("MMM");
}
static int layer::sort()
Sortiere alle Ebenen des aktuellen Dokumentes absteigend nach ihren Namen. Groß/Kleischreibung wird bei der Sortierung ignoriert. Hier ein Vorher/Nachher-Screenshot:

| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode |
Sortiere alle Doumentebenen nach ihrem Namen.
int main ()
{
layer::sort ();
return 0;
}
static int layer::index(char* n)
An welcher Position steht eine Ebene? Positionen werden bei 0 beginnend von unten gezählt. Ebenen mit einem höheren Index verdecken Rahmen von Ebenen mit einem kleineren Index. Wurde eine Ebene nicht gefunden, wird -1 zurückgegeben.
| Name | Typ | Default | Beschreibung |
| Return | int | 0-basierter Index der Ebene oder -1. | |
| n | String oder char* | - | Ebenenname |
Zeige den Index von 'Ebene 1' in einer Nachricht:
int main ()
{
showmessage ("%d", layer::index ("Ebene 1"));
return 0;
}
static char* layer::name(int nth, char* res)
Name der n-ten Ebene. Positionen werden bei 0 beginnend von unten gezählt. Gibt es keine Ebene mit dem angegebenen Index, wird der Leerstring zurückgegeben.
| Name | Typ | Default | Beschreibung |
| Return | String oder char* | Parameter res mit dem Namen (oder "" im Fehlerfall) der n-ten Ebene | |
| nth | int | - | 0-basierter Index der Ebene. -2 : Aktuell ausgewählte Ebene |
| res | String oder char* | - | Reservierter Speicher für den Ebenennamen |
Zeige den Namen der aktuellen Ebene in einer Nachricht.
int main ()
{
char s[256];
showmessage ("'%s'", layer::name (-2, s));
return 0;
}
static int layer::select_i(int index)
Aktiviere eine durch ihren Index gegebene Ebene. Wird die Ebene nicht gefunden, macht die Methode nichts.
InDesign® Server kann keine aktive Ebene setzen. Für den Produktaufbau und andere Skriptfunktionen, die die aktuelle Ebene benötigen, wird deshalb der Ebenennamen in einer speziellen Dokumentpräferenz festgehalten.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| index | int | - | 0-basierter Index der Ebene |
Wähle die oberste Ebene des aktuellen Dokumentes aus.
int main ()
{
layer::select_i (layer::count () - 1);
return 0;
}
static int layer::select(char* lname)
Aktiviere eine durch ihren Name gegebene Ebene. Wird die Ebene nicht gefunden, macht die Methode nichts.
InDesign® Server kann keine aktive Ebene setzen. Für den Produktaufbau und andere Skriptfunktionen, die die aktuelle Ebene benötigen, wird deshalb der Ebenennamen in einer speziellen Dokumentpräferenz festgehalten und kann danach (auch in einer späteren InDesign®-Session) mit layer::front_name abgefragt werden.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| lname | String oder char* | - | Name einer Ebene |
Das Besipiel zeigt die Verwendung der Funktion in einem Python-Skript. Der Name der Ebene wird hier mit Hilfe der Variable layerName an das kurze cScript übergeben.
comet.runCScript ('int main () { layer::select (layerName); return 0; }', items=[('Ebene 3', 'layerName')])
static int layer::set_visible_i(int index, int vis)
Zeige oder verstecke eine durch ihren Index gegebene Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| index | int | - | 0-basierter Index der Ebene. -2 : Aktuell ausgewählte Ebene |
| vis | int | - | Neue Sichtbarkeit 0 : unsichtbar sonst : sichtbar |
Mache die aktuelle Ebene unsichtbar:
int main ()
{
layer::set_visible_i (-2, 0);
return 0;
}
static int layer::set_visible(char* nam, int vis)
Zeige oder verstecke eine durch ihren Namen gegebene Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| nam | String oder char* | - | Name einer Ebene |
| vis | int | - | Neue Sichtbarkeit 0 : Unsichtbar sonst : Sichtbar |
Mache 'Ebene 1' unsichtbar.
int main ()
{
layer::set_visible ("Ebene 1", 0);
return 0;
}
static int layer::remove_i(int index)
Lösche eine durch ihren Index gegebene Ebene. Durch das Löschen einer Ebene werden auch alle Rahmen auf dieser Ebene gelöscht.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode 1207 removeLayerErr : Fehler beim Löschen der Ebene 1205 deleteLayerErr : Das Dokument hat nur noch eine Ebene. Die gegebene Ebene kann deshalb nicht gelöscht werden. |
|
| index | int | - | 0-basierter Index der Ebene, die gelöscht werden soll.
Der Befehl entfernt die gegebene Ebene und alle ihre Inhalte!. -2 : Aktuell ausgewählte Ebene |
Lösche die aktuelle Ebene mit allen ihren Inhalten.
int main ()
{
layer::remove_i (-2);
return 0;
}
static int layer::remove(char* nname)
Lösche eine durch ihren Namen gegebene Ebene. Durch das Löschen einer Ebene werden auch alle Rahmen dieser Ebene gelöscht.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode 1207 removeLayerErr : Fehler beim Löschen der Ebene 1205 deleteLayerErr : Das Dokument hat nur noch eine Ebene. ene kann deshalb nicht gelöscht werden. |
|
| nname | String oder char* | - | Name der Ebene die entfernt werden soll. |
Lösche die Ebene 'Ebene 1' und all ihre Inhalte.
int main ()
{
layer::remove ("Ebene 1");
return 0;
}
static int layer::merge(char* from, char* to)
Verschiebe den Inhalt der Ebene from auf die Ebene to und lösche die Ebene from danach. Beide Ebene werden über ihren Namen festgelegt.
Soll der Inhalt der Ebene from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy. Sind beide Ebenen gleich, gibt die Funktion lediglich den Fehlercode 0 (Okay) zurück.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | String oder char* | - | Name der Ebene, deren Objekte verschoben werden sollen. Nachdem die Inhalte der Ebene verschoben wurden, wird die Ebene gelöscht!. |
| to | String oder char* | - | Name der Zielebene |
Kopiere den Inhalt von Ebene 2 auf die Ebene1 und lösche danach Ebene 1.
int main ()
{
layer::merge ("Ebene 2", "Ebene 1");
return 0;
}
static int layer::merge_ni(char* from, int to)
Verschiebe den Inhalt der Ebene from auf die Ebeneto und lösche die Ebene from danach. Die erste Ebene wird über ihren Namen festgelegt, die zweite über einen Index.
Soll der Inhalt der Ebene from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy_ni. Sind beide Ebenen gleich, gibt die Funktion lediglich den Fehlercode 0 (Okay) zurück.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | String oder char* | - | Name der Ebene, deren Objekte verschoben werden sollen. Nachdem die Inhalte der Ebene verschoben wurden, wird die Ebene gelöscht!. |
| to | int | - | 0-basierter Index der Zielebene. -2 : Aktuell ausgewählte Ebene |
Kopiere den Inhalt von Ebene 2 in die aktuelle Ebene und lösche danach Ebene 2.
int main ()
{
layer::merge_ni ("Ebene 2", -2);
return 0;
}
static int layer::merge_ii(int from, int to)
Verschiebe den Inhalt der Ebene from auf die Ebeneto und lösche die Ebene from danach. Beide Ebenen werden über einen Index festgelegt.
Soll der Inhalt der Ebene from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy_ii. Sind beide Ebenen gleich, gibt die Funktion lediglich den Fehlercode 0 (Okay) zurück.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | int | - | 0-basierter Index der Ebene, deren Rahmen verschoben werden sollen.
Nachdem die Inhalte der Ebene verschoben wurden, wird die Ebene gelöscht!. -2 : Aktuell ausgewählte Ebene |
| to | int | - | 0-basierter Index der Zielebene -2 : Aktuell ausgewählte Ebene |
Kopiere den Inhalt der obersten Ebene in die aktuelle Ebene und lösche danach die alte oberste Ebene.
int main ()
{
layer::merge_ii (0, -2);
return 0;
}
static int layer::merge_in(int from, char* to)
Verschiebe den Inhalt der Ebene from auf die Ebeneto und lösche die Ebene from danach. Die erste Ebene wird über einen Index festgelegt, die zweite über ihren Namen.
Soll der Inhalt der Ebene from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy_in. Sind beide Ebenen gleich, gibt die Funktion lediglich den Fehlercode 0 (Okay) zurück.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | int | - | 0-basierter Index der Ebene, deren Rahmen verschoben werden sollen.
Nachdem die Inhalte der Ebene verschoben wurden, wird die Ebene gelöscht!. -2 : Aktuell ausgewählte Ebene |
| to | String oder char* | - | Name der Zielebene |
Kopiere den Inhalt der aktuellen Ebene in Ebene 1 und lösche die aktuelle Ebene.
int main ()
{
layer::merge_in (-2, "Ebene 1");
return 0;
}
static int layer::copy(
char* from,
char* to,
int exhaustive = 0,
int reconstruct = 0,
int completeProducts = 0)
Kopiere (dupliziere) den Inhalt der Ebene from auf die Ebeneto. Beide Ebene werden über ihren Namen festgelegt. Sind beide Ebenen gleich, werden alle Rahmen dieser Ebene dupliziert.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | String oder char* | - | Name der Ebene, deren Objekte dupliziert werden sollen. |
| to | String oder char* | - | Name der Zielebene |
| exhaustive | int | 0 | CS6 Server führt mitunter zum Absturz bei layer::copy. Setzen Sie den Parameter
auf den Wert 1, um den Absturz zu vermeiden - wir haben dann um den Fehler herum-programmiert. 0 : "normales" Verhalten 1 : CS6 Server-sicher |
| reconstruct | int | 0 | Cometgruppen wiederherstellen, Comet-Notizen anpassen und wiederholende Elemente neu zuordnen? 0 : nein 1 : ja Unsichtbare Comet-Notizen werden nicht dupliziert! |
| completeProducts | int | 0 | Sollten zu einer Cometgruppe Rahmen gehören, die auf einer anderen Ebene als from< liegen,
sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden. 0 : nein 1 : ja |
Dupliziere den Inhalt von Ebene 2 auch auf die Ebene1.
int main ()
{
layer::copy ("Ebene 2", "Ebene 1");
return 0;
}
Dupliziere die aktuelle Ebene. Alle Cometgruppen werden dabei wiederhergestellt.
int main ()
{
char frontname [4000];
char newname [4000];
char tmp [4000];
int index = 0;
// Get current front layer
layer::front_name (frontname);
index = layer::index (frontname);
// Create a new layer name and create the layer
layer::default_name (sprintf (tmp, "%s Kopie", frontname), newname);
layer::add_i (newname, index+1);
// Copy content
layer::copy (frontname, newname, 1, 1);
return 0;
}
static int layer::copy_ni(
char* from,
int to,
int exhaustive = 0,
int reconstruct = 0,
int completeProducts = 0)
Kopiere (dupliziere) den Inhalt der Ebene from auf die Ebeneto. Die erste Ebene wird über ihren Namen festgelegt, die zweite über einen Index. Sind beide Ebenen gleich, werden alle Rahmen dieser Ebene dupliziert.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | String oder char* | - | Name der Ebene, deren Objekte dupliziert werden sollen. |
| to | int | - | 0-basierter Index der Zielebene. -2 : Aktuell ausgewählte Ebene |
| exhaustive | int | 0 | CS6 Server führt mitunter zum Absturz bei layer::copy. Setzen Sie den Parameter
auf den Wert 1, um den Absturz zu vermeiden - wir haben dann um den Fehler herum-programmiert. 0 : "normales" Verhalten 1 : CS6 Server-sicher |
| reconstruct | int | 0 | Cometgruppen wiederherstellen, Comet-Notizen anpassen und wiederholende Elemente neu zuordnen? 0 : nein 1 : ja Unsichtbare Comet-Notizen werden nicht dupliziert! |
| completeProducts | int | 0 | Sollten zu einer Cometgruppe Rahmen gehören, die auf einer anderen Ebene als from< liegen,
sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden. 0 : nein 1 : ja |
Kopiere (dupliziere) den Inhalt von Ebene 2 in die aktuelle Ebene.
int main ()
{
layer::copy_ni ("Ebene 2", -2);
return 0;
}
static int layer::copy_ii(
int from,
int to,
int exhaustive = 0,
int reconstruct = 0,
int completeProducts = 0)
Kopiere (dupliziere) den Inhalt der Ebene from auf die Ebeneto. Beide Ebenen werden über einen Index festgelegt. Sind beide Ebenen gleich, werden alle Rahmen dieser Ebene dupliziert.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | int | - | 0-basierter Index der Ebene, deren Rahmen dupliziert werden sollen. -2 : Aktuell ausgewählte Ebene |
| to | int | - | 0-basierter Index der Zielebene -2 : Aktuell ausgewählte Ebene |
| exhaustive | int | 0 | CS6 Server führt mitunter zum Absturz bei layer::copy. Setzen Sie den Parameter
auf den Wert 1, um den Absturz zu vermeiden - wir haben dann um den Fehler herum-programmiert. 0 : "normales" Verhalten 1 : CS6 Server-sicher |
| reconstruct | int | 0 | Cometgruppen wiederherstellen, Comet-Notizen anpassen und wiederholende Elemente neu zuordnen? 0 : nein 1 : ja Unsichtbare Comet-Notizen werden nicht dupliziert! |
| completeProducts | int | 0 | Sollten zu einer Cometgruppe Rahmen gehören, die auf einer anderen Ebene als from< liegen,
sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden. 0 : nein 1 : ja |
Kopiere (dupliziere) den Inhalt der obersten Ebene in die aktuelle Ebene.
int main ()
{
layer::copy_ii (layer::count () -1, -2);
return 0;
}
static int layer::copy_in(
int from,
char* to,
int exhaustive = 0,
int reconstruct = 0,
int completeProducts = 0)
Kopiere (dupliziere) den Inhalt der Ebene from auf die Ebeneto. Die erste Ebene wird über einen Index festgelegt, die zweite über ihren Namen. Sind beide Ebenen gleich, werden alle Rahmen dieser Ebene dupliziert.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| from | int | - | 0-basierter Index der Ebene, deren Rahmen dupliziert werden sollen.. -2 : Aktuell ausgewählte Ebene |
| to | String oder char* | - | Name der Zielebene |
| exhaustive | int | 0 | CS6 Server führt mitunter zum Absturz bei layer::copy. Setzen Sie den Parameter
auf den Wert 1, um den Absturz zu vermeiden - wir haben dann um den Fehler herum-programmiert. 0 : "normales" Verhalten 1 : CS6 Server-sicher |
| reconstruct | int | 0 | Cometgruppen wiederherstellen, Comet-Notizen anpassen und wiederholende Elemente neu zuordnen? 0 : nein 1 : ja Unsichtbare Comet-Notizen werden nicht dupliziert! |
| completeProducts | int | 0 | Sollten zu einer Cometgruppe Rahmen gehören, die auf einer anderen Ebene als from< liegen,
sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden. 0 : nein 1 : ja |
Kopiere (dupliziere) den Inhalt der aktuellen Ebene in Ebene 1.
int main ()
{
layer::copy_in (-2, "Ebene 1");
return 0;
}
static int layer::move(char* mv, char* behind)
Verschieben einer Ebene. Die Ebene mv wird unter (hinter) die Ebene behind verschoben. Die Rahmen der Ebene mv können damit von den Rahmen der Ebene behind verdeckt werden. Beide Ebenen werden über ihre Namen definiert.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| mv | String oder char* | - | Name der Ebene, die verschoben werden soll |
| behind | String oder char* | - | Name der Ebene, hinter der die Ebene liegen soll. "" oder Ebene existiert nicht : mv wird neue oberste Ebene |
Verschiebe Ebene 1 ganz nach oben.
int main ()
{
layer::move ("Ebene 1", "");
return 0;
}
static int layer::move_ni(char* mv, int behind)
Verschieben einer Ebene. Die Ebene mv wird hinter die Ebene behind verschoben. Die Rahmen der Ebene mv können damit von den Rahmen der Ebene behind verdeckt werden. Die erste Ebene wird über ihren Namen definiert, die zweite über einen Index.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| mv | String oder char* | - | Name der Ebene, die verschoben werden soll |
| behind | int | - | Index der Ebene, unter der die Ebene mv liegen soll. -2 : Hinter aktuelle Ebene -1 oder ≥ Anzahl der Ebenen : Neue Vordergrundebene |
Mache Ebene 2 zur neuen obersten Ebene.
int main ()
{
layer::move_ni ("Ebene 2", -1);
return 0;
}
static int layer::move_ii(int mv, int behind)
Verschieben einer Ebene. Die Ebene mv wird hinter die Ebene behind verschoben. Die Rahmen der Ebene mv können damit von den Rahmen der Ebene behind verdeckt werden. Beide Ebenen werden über einen Index definiert.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| mv | int | - | Index der Ebene, die verschoben werden soll. -2 : Aktuelle Ebene |
| behind | int | - | Index der Ebene, unter der die Ebene liegen soll. -2 : Hinter aktuelle Ebene -1 oder ≥ Anzahl der Ebenen : Neue Vordergrundebene |
Verschiebe die aktuelle Ebene ganz nach obem.
int main ()
{
layer::move_ii (-2, -1);
return 0;
}
static int layer::move_in(int mv, char* behind)
Verschieben einer Ebene. Die Ebene mv wird hinter die Ebene behind verschoben. Die Rahmen der Ebene mv können damit von den Rahmen der Ebene behind verdeckt werden. Die erste Ebene wird über einen Inded festgelegt, die zweite über ihren Namen.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| mv | int | - | Index der Ebene, die verschoben werden soll. -2 : Aktuelle Ebene |
| behind | String oder char* | - | Name der Ebene, unter der die Ebene liegen soll. "" oder Ebene existiert nicht : mv wird neue oberste Ebene |
Mache die aktuelle Ebene zur neuen obersten Ebene.
int main ()
{
layer::move_in (-2, "");
return 0;
}
static int layer::rename(char* oldName, char* newName)
Ändere den Namen eines Layers.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| oldName | String oder char* | - | Name der Ebene, deren Name geändert werden soll |
| newName | String oder char* | - | Neuer Ebenenname |
Umbenennden der Ebene 1 in E1.
int main ()
{
layer::rename ("Ebene 1", "E1");
return 0;
}
static int layer::rename_i(int index, char* newName)
Ändere den Namen einer über einer Index definerten Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| index | int | - | 0-basierter Index der Ebene, deren Name geändert werden soll. -2 : Aktuell ausgewählte Ebene |
| newName | String oder char* | - | Neuer Ebenenname |
Ändere den Namen der obersten Ebene.
int main ()
{
layer::rename_i (layer::count () - 1, "Topmost Layer");
return 0;
}
Ändere den Namen der untersten Ebene.
int main ()
{
layer::rename_i (0, "Bottommost Layer");
return 0;
}
static int layer::rename_prefixed(
char* oldName,
char* prefix,
int useGap = 1)
Ändere den Namen eines Layers gemäß einem gegebenen Präfix. Ist als Präfix beispielsweise 'Paul' gegeben und es existiert eine Ebene 'Paul 3' wird als neuer Name 'Paul 4' verwendet.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| oldName | String oder char* | - | Name der Ebene, deren Name geändert werden soll |
| prefix | String oder char* | - | Präfix des neuen Ebenennamens "" : Verwende den Namen, der auch beim manuellen Anlegen einer Ebene verwendet werden würde. |
| useGaps | int | 1 | Verfahren zur Berechnung des neuen Namens. Der Parameter wird nur ausgewertet, wenn prefix nicht leer ist. Angenommen, ihr Dokument hat die Ebenen E1 und E3, dann erhält man in Abhängigkeit von useGaps folgende unterschiedlichen Ergebnisse: 0 : E4 1 : E2 |
Umbennen der Ebene fff in Ebene N. Der Wert von N wird automatisch aus den existierenden Ebenen berechnet.
int main ()
{
layer::rename_prefixed ("fff", "", 0);
return 0;
}
static int layer::rename_prefixed_i(
int index,
char* prefix,
int useGap = 1)
Ändere den Namen eines Layers gemäß einem gegebenen Präfix. Ist als Präfix beispielsweise 'Paul' gegeben und es existiert eine Ebene 'Paul 3' wird als neuer Name 'Paul 4' verwendet. Die Ebene wird über einen Index festgelegt.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| index | int | - | 0-basierter Index der Ebene, deren Name geändert werden soll -2 : Aktuell ausgewählte Ebene |
| prefix | String oder char* | - | Präfix des neuen Ebenennamens 0 oder "" : Verwende den Namen, der auch beim manuellen Anlegen einer Ebene verwendet werden würde. |
| useGaps | int | 1 | Verfahren zur Berechnung des neuen Namens. Der Parameter wird nur ausgewertet, wenn prefix nicht leer ist. Angenommen, ihr Dokument hat die Ebenen E1 und E3, dann erhält man in Abhängigkeit von useGaps folgende unterschiedlichen Ergebnisse: 0 : E4 1 : E2 |
Umbennen der aktuellen Ebene in 'Ebene N'. Der Wert von N wird automatisch aus den existierenden Ebenen berechnet.
int main ()
{
layer::rename_prefixed_i (-2, "Ebene", 0);
return 0;
}
static int layer::add(
char* newName,
char* behind,
int doSelect = 0,
char* outName = 0)
Anlegen einer neuen Dokument-Ebene hinter einer gegebenen Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| newName | String oder char* | - | Name der neuen Ebene. Existiert mit dem angegebenen Namen
bereits eine Ebene, wird keine neue Ebene angelegt und die Position der existierenden Ebene bleibt unverändert. 0 oder "" : Verwende den Namen, der auch beim manuellen Anlegen einer Ebene verwendet werden würde. |
| behind | String oder char* | - | Name der Ebene, hinter der die neue Ebene liegen soll. Wird diese Ebene nicht gefunden, wird der neue Layer als oberste Ebene angelegt. |
| doSelect | int | 0 | Soll die Ebene sofort aktiviert werden? 0 : nein 1 : ja Von Illustrator® wird der Parameter ignoriert. |
| outName | String oder char* | 0 | Allokierter Speicher für den Namen der neu angelegten Ebene. 0 : Rückgabe ignorieren |
Um das Skript auszuführen, benötigen Sie ein Testdokument mit mindestens 3 Ebenen von denen eine den Namen "Ebene 6" tragen muss. Das Dokument sollte außerdem vier Rahmen enthalten, deren UIDs Sie in den Aufrufen der Funktion mv noch eintragen müssen.
int mv (int uid, char* l, char * bkname, int bkindex)
{
ItemRef fr = item::alloc ();
int result = 0;
String lname = string::alloc ();
String lname2 = string::alloc ();
item::define (fr, 0, uid);
if (strlen (bkname)) result = layer::add (l, bkname, 0, lname);
else result = layer::add_i (l, bkindex, 0, lname);
printf ("# Frame %d : (%s)\n", uid, lname);
if (result == 0)
{
result = frame::move_to_layer (fr, lname, 0, 0);
if (result != 0)
{
printf ("# Layoutrule 'Move to layer' : Ignoring error %d (%s)\n", result, serror (result));
}
else
{
printf ("LAYER of %d : (%s)\n", uid, frame::get_layer (fr, lname2));
}
}
printf ("\n");
string::release (lname);
string::release (lname2);
item::release (fr);
return 1;
}
int main ()
{
mv (262, "", "Ebene 6", 0);
mv (305, "YY", "Ebene 6", 0);
mv (464, "", 0, 2);
mv (466, "ZZ", 0, 2);
return 0;
}
static int layer::add_i(
char* newName,
int index,
int doSelect = 0,
char* outName = 0)
Anlegen einer neuen Dokument-Ebene hinter einer mit ihrem Index gegebenen Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| newName | String oder char* | - | Name der neuen Ebene. Existiert mit dem angegebenen Namen
bereits eine Ebene, wird keine neue Ebene angelegt und die Position der existierenden Ebene bleibt unverändert. 0 oder "" : Verwende den Namen, der auch beim manuellen Anlegen einer Ebene verwendet werden würde. |
| behind | int | - | 0-basierter Index, hinter der die neue Ebene liegen soll.
Wird diese Ebene nicht gefunden, wird der neue Layer als oberste Ebene angelegt. -2 : Aktuelle Ebene |
| doSelect | int | 0 | Soll die Ebene sofort aktiviert werden? 0 : nein 1 : ja Von Illustrator® wird der Parameter ignoriert. |
| outName | String oder char* | 0 | Allokierter Speicher für den Namen der neu angelegten Ebene. 0 : Rückgabe ignorieren |
Um das Skript auszuführen, benötigen Sie ein Testdokument mit mindestens 3 Ebenen von denen eine den Namen "Ebene 6" tragen muss. Das Dokument sollte außerdem vier Rahmen enthalten, deren UIDs Sie in den Aufrufen der Funktion mv noch eintragen müssen.
int mv (int uid, char* l, char * bkname, int bkindex)
{
ItemRef fr = item::alloc ();
int result = 0;
String lname = string::alloc ();
String lname2 = string::alloc ();
item::define (fr, 0, uid);
if (strlen (bkname)) result = layer::add (l, bkname, 0, lname);
else result = layer::add_i (l, bkindex, 0, lname);
printf ("# Frame %d : (%s)\n", uid, lname);
if (result == 0)
{
result = frame::move_to_layer (fr, lname, 0, 0);
if (result != 0)
{
printf ("# Layoutrule 'Move to layer' : Ignoring error %d (%s)\n", result, serror (result));
}
else
{
printf ("LAYER of %d : (%s)\n", uid, frame::get_layer (fr, lname2));
}
}
printf ("\n");
string::release (lname);
string::release (lname2);
item::release (fr);
return 1;
}
int main ()
{
mv (262, "", "Ebene 6", 0);
mv (305, "YY", "Ebene 6", 0);
mv (464, "", 0, 2);
mv (466, "ZZ", 0, 2);
return 0;
}
static int layer::add_prefixed(
char* prefix,
char* behind,
int doSelect = 0,
char* outName = 0,
int useGap = 1)
Anlegen einer neuen benannten Dokument-Ebene hinter einer gegebenen Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| prefix | String oder char* | - | Name/Präfix der neuen Ebene. 0 oder "" : Verwende den Namen, der auch beim manuellen Anlegen einer Ebene verwendet werden würde. |
| behind | String oder char* | - | Name der Ebene, hinter der die neue Ebene liegen soll. Wird diese Ebene nicht gefunden, wird der neue Layer als unterste Ebene angelegt. |
| doSelect | int | 0 | Soll die Ebene sofort aktiviert werden? 0 : nein 1 : ja |
| outName | String oder char* | 0 | Allokierter Speicher für den Namen der neu angelegten Ebene. 0 : Rückgabe ignorieren |
| useGaps | int | 1 | Verfahren zur Berechnung des neuen Namens. Der Parameter wird nur ausgewertet, wenn prefix nicht leer ist. Angenommen, ihr Dokument hat die Ebenen E1 und E3, dann erhält man in Abhängigkeit von useGaps folgende unterschiedlichen Ergebnisse: 0 : E4 1 : E2 |
static int layer::add_prefixed_i(
char* prefix,
int behind,
int doSelect = 0,
char* outName = 0,
int useGap = 1)
Anlegen einer neuen benannten Dokument-Ebene hinter einer über ihren Index gegebenen Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| prefix | String oder char* | - | Name/Präfix der neuen Ebene. Existiert mit dem angegebenen Präfix
bereits eine Ebene, wird eine neue Ebene mit der nächsten Zählnummer agelegt.
(Ist also z.B.der Präfix Lala angegeben und die Ebenen Lala, Lala 1 und und Lala 30 existieren, wird die Ebene Lala 31 erzeugt.) 0 oder "" : Ist kein Name angegeben, wird ein neuer Defaultname ermittelt. |
| behind | int | - | 0-basierter Index, hinter der die neue Ebene liegen soll. Wird diese Ebene nicht gefunden, wird der neue Layer als unterste Ebene angelegt. |
| doSelect | int | 0 | Soll die Ebene sofort aktiviert werden? 0 : nein 1 : ja |
| outName | String oder char* | 0 | Allokierter Speicher für den Namen der neu angelegten Ebene. 0 : Rückgabe ignorieren |
| useGaps | int | 1 | Verfahren zur Berechnung des neuen Namens. Der Parameter wird nur ausgewertet, wenn prefix nicht leer ist. Angenommen, ihr Dokument hat die Ebenen E1 und E3, dann erhält man in Abhängigkeit von useGaps folgende unterschiedlichen Ergebnisse: 0 : E4 1 : E2 |
static char* layer::default_name(
char* prefix,
char* newName,
int useGaps = 1)
Ermittle den nächsten gültigen Defaultnamen, der für eine neue Ebene verwendet werden kann.
| Name | Typ | Default | Beschreibung |
| Return | Parameter newName. Ist newName == 0 wird ein statischer char* mit dem Ergebnis zurückgegeben. | ||
| prefix | String oder char* | - | Präfix für den neuen Namen "" : newName bekommt den Namen, der auch beim manuellen Anlegen einer Ebene verwendet werden würde |
| newName | String oder char* | 0 | Reservierter Speicher für den neuen Ebenennamen 0 : [ab v5.0 R37080] Die Variable darf 0 sein oder fehlen, dann gilt: 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. |
| useGaps | int | 1 | Verfahren zur Berechnung des neuen Namens. Der Parameter wird nur ausgewertet, wenn prefix nicht leer ist. Angenommen, ihr Dokument hat die Ebenen E1 und E3, dann erhält man in Abhängigkeit von useGaps folgende unterschiedlichen Ergebnisse: 0 : E4 1 : E2 |
Zeige den nächsten freien Ebenennamen.
int main ()
{
showmessage ("%s", layer::default_name ("Ebene", 0, 0));
return 0;
}
static int layer::get_visible_i(int index)
Ist die Ebene sichtbar oder nicht?
| Name | Typ | Default | Beschreibung |
| Return | int | 1 : sichtbar 0 : unsichtbar |
|
| index | int | - | 0-basierter Index der Ebene. 0 ist die unterste Ebene. -2 : Aktuelle Ebene ≥ layer::count : Oberste Ebene |
Ist die aktuelle Ebene sicxhtbar?
int main ()
{
showmessage ("%d", layer::get_visible_i (-2));
return 0;
}
static int layer::get_visible(char* name)
Ist die Ebene sichtbar oder nicht?
| Name | Typ | Default | Beschreibung |
| Return | int | 1 : sichtbar 0 : unsichtbar |
|
| name | String oder char* | - | Ebenenname |
static int layer::get_lock_i(int index)
Ist die Ebene gesperrt oder nicht?
| Name | Typ | Default | Beschreibung |
| Return | int | 1 : gesperrt 0 : editierbar |
|
| index | int | - | 0-basierter Index der Ebene. 0 ist die unterste Ebene. -2 : Aktuelle Ebene ≥ layer::count : Oberste Ebene |
static int layer::get_lock(char* name)
Ist die Ebene gesperrt oder nicht?
| Name | Typ | Default | Beschreibung |
| Return | int | 1 : gesperrt 0 : editierbar |
|
| name | String oder char* | - | Ebenenname |
static int layer::lock_i(int index)
Sperre eine Ebene über ihren Index.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| index | int | - | 0-basierter Index der Ebene. 0 ist die unterste Ebene. -2 : Aktuelle Ebene ≥ layer::count : Oberste Ebene |
static int layer::lock(char* name)
Sperre eine benannte Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode 0 : editierbar | |
| name | String oder char* | - | Ebenenname |
static int layer::unlock_i(int index)
Entsperre eine Ebene über ihren Index.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| index | int | - | 0-basierter Index der Ebene. 0 ist die unterste Ebene. -2 : Aktuelle Ebene ≥ layer::count : Oberste Ebene |
static int layer::unlock(char* name)
Entsperre eine benannte Ebene.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| name | String oder char* | - | Ebenenname |
static char* layer::get_name(ItemRef frameRef)
Ermittle den Namen der Ebene, auf der ein Dokumentrahmen liegt.
| Name | Typ | Default | Beschreibung |
| Return | char* | Name der Ebene
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. |
|
| frameRef | ItemRef | - | Gültiger Dokumentrahmen |
Zeige den Ebenennamen des Skriptrahmens.
int main ()
{
showmessage (layer::get_name (gFrame));
return 0;
}
static int layer::get_index(ItemRef frameRef)
Ermittle den Index der Ebene, auf der ein Dokumentrahmen liegt. Die oberste Ebene hat den Index 0 - in der Ebenenpalette ist das der unterste Eintrag.
| Name | Typ | Default | Beschreibung |
| Return | int | 0-basierter Ebenenindex des gegebenen Rahmens. 0 ist die unterste Ebene. | |
| frameRef | ItemRef | - | Gültiger Dokumentrahmen |
Zeige den Ebenenindex des Skriptrahmens
showmessage ("%d", layer::get_index (gFrame));
static int layer::get_printable(char* lname)
Ist eine Ebene druckbar?
| Name | Typ | Default | Beschreibung |
| Return | int | 1 : Ebene wird gedruckt 0 : Fehler oder Ebene wird nicht gedruckt |
|
| lname | String oder char* | - | Name der Ebene |
int main ()
{
char * lname = "Ebene 2";
int state = layer::get_printable (lname);
wlog ("", "%s : %d\n", lname, state);
layer::set_printable (lname, !state);
wlog ("", "%s : %d\n", lname, layer::get_printable (lname));
return 0;
}
static int layer::set_printable(char* lnamem, int state = 1)
Ebene (nicht) druckbar machen.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| lname | String oder char* | - | Name der Ebene |
| state | int | 1 | Druckbarkeit 0 : Ebene kann nicht gedruckt werden 1 : Ebene kann gedruckt werden |
int main ()
{
char * lname = "Ebene 2";
int state = layer::get_printable (lname);
wlog ("", "%s : %d\n", lname, state);
layer::set_printable (lname, !state);
wlog ("", "%s : %d\n", lname, layer::get_printable (lname));
return 0;
}
static int layer::get_ui_color()
Hole den Namen der Farbe einer Ebene des Frontdocumentes. Die Farbnamen sind die fest in InDesign® integrierten sog. Stock-Colors wie sie im Dialog 'Ebenenoptionen' angezeigt werden. Benutzerdefinierte Farben werden im Format "RGB r g b" mit r, g, b ∈ [0-255] zurückgegeben.
Benutzerdefinierte Farben werden von comet_pdf nicht unterstützt!
Die Funktion ist nur für den internen Gebrauch implementiert worden. Es gibt momentan noch keine Set-Funktion.
| Name | Typ | Default | Beschreibung |
| Return | int | 0 oder Fehlercode | |
| lname | String oder char* | - | Name der Ebene |
Alphabetic index HTML hierarchy of classes or Java