Ebenen eines InDesign®-Dokumentes

Letzte Änderung :
26.11.2025, 05:11 Uhr

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CDocument.getLayers

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


priint:comet InDesign® Plug-Ins, comet_pdf

comet.CDocument.getActiveLayer
comet.CLayer.getActive

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");
}


priint:comet InDesign® Plug-Ins, comet_pdf

comet.CLayer.setName

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf

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; }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CDocument.getLayers
comet.CLayer.getIndex

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; }


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CDocument.getLayers
comet.CLocument.getName

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::select
comet.CDocument.setActiveLayer
comet.CLayer.setActive

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')])


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::select_i
layer::front_name
comet.CDocument.setActiveLayer
comet.CLayer.setActive

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::set_visible
comet.CLayer.setVisible

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::set_visible_i
comet.CLayer.setVisible

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::remove
comet.CLayer.remove

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::remove_i
comet.CFrame.remove

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf

layer::merge_ni
layer::merge_ii
layer::merge_in

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf

layer::merge
layer::merge_ii
layer::merge_in

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf

layer::merge
layer::merge_ni
layer::merge_in

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf

layer::merge
layer::merge_ni
layer::merge_in

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; }

Parameter exhaustive seit v3.3.1 R3996, 2. Jul 2013
Parameter reconstruct seit v3.4 R7203, 12.12.2014
Parameter completeProducts seit v4.0.4 R7412, 04.Feb 2015

priint:comet InDesign® Plug-Ins, comet_pdf

layer::copy_ni
layer::copy_ii
layer::copy_in

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;
}

Parameter exhaustive seit v3.3.1 R3996, 2. Jul 2013
Parameter reconstruct seit v3.4 R7203, 12.12.2014
Parameter completeProducts seit v4.0.4 R7412, 04.Feb 2015

priint:comet InDesign® Plug-Ins, comet_pdf

layer::copy
layer::copy_ii
layer::copy_in

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;
}

Parameter exhaustive seit v3.3.1 R3996, 2. Jul 2013
Parameter reconstruct seit v3.4 R7203, 12.12.2014
Parameter completeProducts seit v4.0.4 R7412, 04.Feb 2015

priint:comet InDesign® Plug-Ins, comet_pdf

layer::copy
layer::copy_ni
layer::copy_in

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;
}

Parameter exhaustive seit v3.3.1 R3996, 2. Jul 2013
Parameter reconstruct seit v3.4 R7203, 12.12.2014
Parameter completeProducts seit v4.0.4 R7412, 04.Feb 2015

priint:comet InDesign® Plug-Ins, comet_pdf

layer::copy
layer::copy_ni
layer::copy_in

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::move_ni
layer::move_ii
layer::move_in
comet.CLayer.set_index

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::move
layer::move_ii
layer::move_in
comet.CLayer.set_index

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::move
layer::move_ni
layer::move_in
comet.CLayer.set_index

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::move
layer::move_ii
layer::move_in
comet.CLayer.set_index

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::rename_i
comet.CLayer.setName

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;
}


priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::rename
comet.CLayer.setName

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;
}

Parameter useGap seit v5.0 R37080, 15. Aug 2025

priint:comet InDesign® Plug-Ins, comet_pdf

layer::rename_prefixed_i
comet.CLayer.setName

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;
}

Parameter useGap seit v5.0 R37080, 15. Aug 2025

priint:comet InDesign® Plug-Ins, comet_pdf

layer::rename_prefixed
comet.CLayer.setName

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; }

Parameter outName seit v4.2 R33470, 15. Sep 2024

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::add_i
comet.CDocument.addLayer

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; }

Parameter outName seit v4.2 R33470, 15. Sep 2024

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

layer::add
comet.CDocument.addLayer

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

Parameter outName seit v4.2 R33470, 15. Sep 2024
Parameter useGap seit v5.0 R37080, 15. Aug 2025

priint:comet InDesign® Plug-Ins, comet_pdf

layer::add
layer::add_i
layer::add_prefixed_i
comet.CDocument.addLayer

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

Parameter outName seit v4.2 R33470, 15. Sep 2024
Parameter useGap seit v5.0 R37080, 15. Aug 2025

priint:comet InDesign® Plug-Ins, comet_pdf

layer::add
layer::add_i
layer::add_prefixed
comet.CDocument.addLayer

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;
}

Parameter useGaps seit v5.0 R37080
Parameter useGap seit v5.0 R37080, 15. Aug 2025

priint:comet InDesign® Plug-Ins, comet_pdf

comet.CDocument.getDefaultLayerName

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;
}

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.getVisible

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

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.getVisible

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

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.getLocked

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

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.getLocked

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

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.setLocked

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

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.setLocked

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

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.setLocked

static int layer::unlock(char* name)

Entsperre eine benannte Ebene.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
name String oder char* - Ebenenname

Version 1.4 R310, 8. Feb. 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CLayer.setLocked

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;
}

Version 1.4 R339, 3. Mai 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CFrame.getNane

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));		

Version 1.4 R339, 3. Mai 2007

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CFrame.getNane

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;
}

Version 3.1 R2178, 22. Okt. 2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CFrame.getPrintable

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;
}

Version 3.1 R2178, 22. Okt. 2010

priint:comet InDesign® Plug-Ins, comet_pdf, Illustrator®

comet.CFrame.setPrintable

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

v4.1.6 R25778, 23. Sep 2019

priint:comet InDesign® Plug-Ins, comet_pdf

Seit
Plugin Version 1.0.8
Letzte Änderung
26.11.2025, 05:11 Uhr
Autor
Paul Seidel

Alphabetic index HTML hierarchy of classes or Java