Ebenen eines InDesign®-Dokumentes

Letzte Änderung :
30.07.2025, 07:35 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
i = layer::count ();


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* (Abhängig von Parameter s)   Die Eingabevariable s wird zur einfacheren Verwendung der Funktion als Rückgabewert verwendet. (Aufrufe der Form s = layer::front_name (s); machen also keinen Sinn.)
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.

char	s[256]
s = layer::front_name (s);

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 Layer. Dabei wird der übergebene Präfix als Basis der Ebenennamen verwendet :

Ist der Präfix leer, wird der Standardname für Ebenen verwendet.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
prefix String oder char* "" Namensbasis. Ist der Name leer, wird der Standardname für Ebenen ('Ebene') verwendet.
err_code = layer::rename ([s_prefix]);


priint:comet InDesign® Plug-Ins, comet_pdf

comet.CLayer.setName

static int layer::sort()

Sortiere die Layerliste absteigend.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
layer::sort ();


priint:comet InDesign® Plug-Ins, comet_pdf

static int layer::index(char* n)

An welcher Position steht ein Layer? Positionen werden bei 0 beginnend von unten gezählt. Wurde ein Layer nicht gefunden, wird -1 zurückgegeben.

Name Typ Default Beschreibung
Return int   Ebenenposition oder -1.
n String oder char* - Ebenenname
i = layer::index (s);


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

comet.CDocument.getLayers
comet.CLayer.getIndex

static char* layer::name(int index, char* res)

Name der i-ten Ebene. Positionen werden bei 0 beginnend von unten gezählt. Gibt es keinen Layer mit dem angegebenen Index, wird - na was wohl? - der Leerstring zurückgegeben.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter res)   Name der i-ten Ebene. Entspricht parameter res.
index int - Ebenennummer
res String oder char* - Reservierter Speicher für den Ebenennamen
char s[256];
s = layer::name (i, s);


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 - Bei 0 beginnende Ebenennummer. 0 ist die oberste Ebene.
err_code = layer::select_i (i);


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 - Bei 0 beginnende Ebenennummer. 0 ist die oberste Ebene.
vis int - != 0 sichtbar, 0 verstecken
err_code = layer::set_visible_i (index, nam);


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 - != 0 sichtbar, 0 verstecken
err_code = layer::set_visible (nam);


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 auf dieser Ebene befindlichen Objekte gelöscht.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
index int - Bei 0 beginnende Ebenennummer. 0 ist die oberste Ebene.
layer::remove_i (ix);


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 auf dieser Ebene befindlichen Objekte gelöscht.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
nname String oder char* - Name einer Ebene
layer::remove (str);


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

layer::remove_i
comet.CFrame.remove

static int layer::merge(char* from, char* to)

Kopiere den Inhalt des Layers from in den Layer to. Danach wird der Layer from gelöscht. Soll der Inhalt des Layers from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from String oder char* - Name der Ebene, deren Objekte verschoben werden sollen
to String oder char* - Name der Zielebene
err_code = layer::merge (from, to);


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)

Kopiere den Inhalt des Layers from in den Layer to. Danach wird der Layer from gelöscht. Soll der Inhalt des Layers from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy_ni.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from String oder char* - Name der Ebene, deren Objekte verschoben werden sollen
to int - Index der Zielebene
err_code = layer::merge_ni (from, to);


priint:comet InDesign® Plug-Ins, comet_pdf

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

static int layer::merge_ii(int from, int to)

Kopiere den Inhalt des Layers from in den Layer to. Danach wird der Layer from gelöscht. Soll der Inhalt des Layers from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy_ii.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from int - Index der Ebene, deren Objekte verschoben werden sollen
to int - Index der Zielebene
err_code = layer::merge_ii (from, to);


priint:comet InDesign® Plug-Ins, comet_pdf

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

static int layer::merge_in(int from, char* to)

Kopiere den Inhalt des Layers from in den Layer to. Danach wird der Layer from gelöscht. Soll der Inhalt des Layers from erhalten bleiben, verwenden Sie bitte die Funktion layer::copy_in.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from int - Index der Ebene, deren Objekte verschoben werden sollen
to String oder char* - Name der Zielebene
err_code = layer::merge_in (from, to);


priint:comet InDesign® Plug-Ins, comet_pdf

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

static int layer::copy(
  char* from,
  char* to,
  int exhaustive = 0,
  int reconstruct = 0,
  int completeProducts = 0)

Kopiere den Inhalt des Layers from in den Layer to.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from String oder char* - Name der Ebene, deren Objekte verschoben 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, Wiederholende Elemente neu zuordnen?

0 : nein
1 : ja

Unsichtbare Comet-Notizen werden nicht dupliziert!

completeProducts int 0 Sollten zu einer Cometgruppe PageItems gehören, die auf einer anderen Ebene als from abgelegt sind, sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden.

0 : nein
1 : ja

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 den Inhalt des Layers from in den Layer to.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from String oder char* - Name der Ebene, deren Objekte verschoben werden sollen
to int - Index 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, Wiederholende Elemente neu zuordnen?

0 : nein
1 : ja

Unsichtbare Comet-Notizen werden nicht dupliziert!

completeProducts int 0 Sollten zu einer Cometgruppe PageItems gehören, die auf einer anderen Ebene als from abgelegt sind, sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden.

0 : nein
1 : ja

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 den Inhalt des Layers from in den Layer to.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from int - Index der Ebene, deren Objekte verschoben werden sollen
to int - Index 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, Wiederholende Elemente neu zuordnen?

0 : nein
1 : ja

Unsichtbare Comet-Notizen werden nicht dupliziert!

completeProducts int 0 Sollten zu einer Cometgruppe PageItems gehören, die auf einer anderen Ebene als from abgelegt sind, sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden.

0 : nein
1 : ja

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 den Inhalt des Layers from in den Layer to.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
from int - Index der Ebene, deren Objekte verschoben 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?

0 : nein
1 : ja

Unsichtbare Comet-Notizen werden nicht dupliziert!

completeProducts int 0 Sollten zu einer Cometgruppe PageItems gehören, die auf einer anderen Ebene als from abgelegt sind, sollen diese ebenfalls auf die Ebene to kopiert und in die neue Cometgruppe aufgenommen werden.

0 : nein
1 : ja

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::move(char* mv, char* behind)

Ändere die Reihenfolge der Layer. Der Layer mv wird unter den Layer behind geschoben.

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, unter der die Ebene liegen soll. Existiert keine Ebene des gebenene Namens, wird die Ebene die neue oberste Ebene.
err_code = layer::move (mv, behind);


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)

Ändere die Reihenfolge der Layer. Der Layer mv wird unter den Layer behind.

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 liegen soll.

-1 oder > Anzahl der Ebenen : Die Ebene wird neue Vordergrundebene
err_code = layer::move (mv, behind);


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)

Ändere die Reihenfolge der Layer. Der Layer mv wird unter den Layer behind.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
mv int - Index der Ebene, die verschoben werden soll
behind int - Index der Ebene, unter der die Ebene liegen soll

-1 oder > Anzahl der Ebenen : Die Ebene wird neue Vordergrundebene
err_code = layer::move (mv, behind);


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)

Ändere die Reihenfolge der Layer. Der Layer mv wird unter den Layer behind.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
mv int - Index der Ebene, die verschoben werden soll
behind String oder char* - Name der Ebene, unter der die Ebene liegen soll. Existiert keine Ebene des gebenene Namens, wird die Ebene die neue oberste Ebene.
err_code = layer::move (mv, behind);


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
err_code = layer::rename (oldName, newName);


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 eines Layers

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
index int - Index der Ebene, deren Name geändert werden soll
newName String oder char* - Neuer Ebenenname
err_code = layer::rename_i (ix, newName);


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

layer::rename
comet.CLayer.setName

static int layer::rename_prefixed(char* oldName, char* prefix)

Ä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
err_code = layer::rename_prefixed (oldName, prefix);


priint:comet InDesign® Plug-Ins, comet_pdf

layer::rename_prefixed_1
comet.CLayer.setName

static int layer::rename_prefixed_i(int index, char* prefix)

Ä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
index int - Index der Ebene, deren Name geändert werden soll
prefix String oder char* - Präfix des neuen Ebenennamens
err_code = layer::rename_prefixed_i (index, prefix);


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 "" : Ist kein Name angegeben, wird ein neuer Defaultname ermittelt.
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

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 "" : 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

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)

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. 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 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

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

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)

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

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

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)

Ermittle einen nächsten gültigen Defaultnamen, der für einen neuen Layer verwendet werden kann. Ist der Präfix leer, bestimmt InDesign® den Namen. Ist ein Präfix gegeben, wird eine Nummer an den Präfix angehangen. Hat das Dokument schon 999 Ebenen, gibt die Methode auf.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter newName)   Ermittelter Defaultname. Entspricht Parameter newName.
prefix String or char* - Präfix zur Bestimmung des Ebenennamens. Als Erweiterung wird die erste freie Nummer verwendet, die noch nicht verwendet wird. Bei 999 gibt die Methode auf.
newName String or char* - Reservierter Speicher für die Rückgabe
newName = layer::default_name (prefix, newName);


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 - Bei 0 beginnende Ebenennummer. 0 ist die oberste Ebene.

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 - Bei 0 beginnende Ebenennummer. 0 ist die 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 - Bei 0 beginnende Ebenennummer. 0 ist die 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 - Bei 0 beginnende Ebenennummer. 0 ist die 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

showmessage (layer::get_name (gFrame));		

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. Die oberste Ebene hat den Index 0 - in der Ebenenpalette ist das der unterste Eintrag.
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
30.07.2025, 07:35 Uhr
Autor
Paul Seidel

Alphabetic index HTML hierarchy of classes or Java