Seiten und Seitennummern eines Dokumentes

Letzte Änderung :
30.07.2025, 07:35 Uhr

Seiten und Seitennummern eines Dokumentes

static int page::get(ItemRef itemRef = 0, int queryNearest = 0)

Ermittle den (1-basierten) Index der Seite eines eines Dokumentobjektes oder den Index der aktuellen der aktuellen Dokumentseite. Als aktuelle Seiten des Dokumentes wird die Seite bezeichnet, die im Dokumentfenster die linke obere Ecke belegt. InDesign® Server arbeitet ohne sichtbare Dokumentfenster, hier gibt die Funktion immer 1 zurück! Seitennummern beginnen bei 1, unabhänging von der im Dokument eingestellten Startseitennummer.

Achtung: Seitennummern von Inlines hängen von der aktuellen Ankerposition ab. Unter comet_pdf kann diese Position nur durch Zwischen-Rendern des Textes bestimmt werden. Der Aufruf ist hier also sehr zeitaufwendig! Liegen über dem Text Rahmen mit aktivierter Textverdrängung, kann die Seite von Inlines unter comet_pdf zur Zeit nicht fehlerfrei berechnet werden.

Name Typ Default Beschreibung
Return int   Seitennummer (1-basiert)

0 : keine Seite gefunden (Der Rahmen liegt mglw. ganz im Arbeitsbereich)
itemRef ItemRef 0 Hole die aktuelle Seitenzahl oder die, auf der das angegebene Element liegt

0 : Aktuelle Seitenzahl

Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert.

Sonst : Seite des Objektes itemRef
queryNearest int 0 Welche Seite soll ermittelt werden, wenn der Rahmen ganz im Übersatz (also auf keiner Seite) liegt?

0 : keine Seite
1 : nächstliegende Seite
int pg = page::get ([itemRef]);

Parameter queryNearest seit v3.3 R3116, 10. Aug. 2012

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

page::get_str
item
comet.CFrame.getPage

static int page::get_uid(
  ItemRef docRef,
  int pnum,
  ItemRef resultRef = 0)

Hole die UID einer Dokumentseite.

Name Typ Default Beschreibung
Return int   UID der gesuchten Seite

0 : Fehler oder Seite nicht gefunden
docRef ItemRef - Dokumentreferenz

0 : Aktuelles Dokument
pnum int - 1-basierte Seitennummer im Dokument
resultRef ItemRef 0 Allokierter ItemRef für das Ergebnis. Die UID des Ergebnisses (item::getint) ist gleich dem Rückgabewert der Funktion.

0 : Nicht benötigt (Aber der Returnwert enthält trotzdem die gesuchte UID)

v4.1.5, 28. Sep 2019

priint:comet InDesign® Plug-Ins, comet_pdf

page::get
page::get_str
item
comet.CPage.getUID

static char* page::get_str(
  char* str,
  ItemRef itemRef,
  int inclSection = 1,
  int useIntStyle = 1,
  int pgNumType = 0,
  int abbrev = 1)

Ermittle den Namen der Seite eines Dokumentobjektes oder den Namen der aktuellen Seite des Dokumentes. Als aktuelle Seiten des Dokumentes wird die Seite bezeichnet, die im Dokumentfenster die linke obere Ecke belegt. In InDesign ® Server liefert die Funktion einen Leerstring.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter str)   Seitenname - entspricht str
str String oder char* - Speicher für das Ergebnis
itemRef ItemRef - Rahmenreferenz oder 0, 0 = aktuelle Seitenzahl des Script-Textmodells oder -Rahmen.
inclSection int 1 Soll der Abschnittsname enthalten sein ?
Von Illustrator wird der Parameter ignoriert.
useIntStyle int 1 1 : Arabische Zahlen verwenden
0 : Stil der Absatznummerierung verwenden
Von Illustrator wird der Parameter ignoriert.
pgNumType int 0 Welche Seiteneinstellung soll verwendet werden?

0 : InDesign®-Einstellung
1 : Dokumenteinstellung
2 : Seiten von 1 beginnend gezählt
Von Illustrator wird der Parameter ignoriert.
abbrev int 1 Abkürzung verwenden?
Von Illustrator wird der Parameter ignoriert.
str = page::get_str (str, itemref
 	[, inclSectName
 	[, useIntStyle
 	[, pgNumType [, abbrev]]]]);


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

page::get
get_str_by_index
item
comet.CPage.getName

static char* page::get_str_by_index(
  char* str,
  ItemRef docRef,
  int pageNum,
  int inclSection = 1,
  int useIntStyle = 1,
  int pgNumType = 0,
  int abbrev = 1)

Ermittle den Seitennamen einer Seite. Die Seite wird durch ihren 1-basierten Index gegeben.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter str)   Seitenname, entspricht str
str String oder char* - Speicher für das Ergebnis
docRef ItemRef - Dokument
0 : aktuelles Dokument
pageNum int - 1-basierter Seitenindex
inclSection int 1 Soll der Abschnittsname enthalten sein ?
Von Illustrator wird der Parameter ignoriert.
useIntStyle int 1 1 : Arabische Zahlen verwenden
0 : Stil der Absatznummerierung verwenden
Von Illustrator wird der Parameter ignoriert.
pgNumType int 0 Welche Seiteneinstellung soll verwendet werden?

0 : InDesign®-Einstellung
1 : Dokumenteinstellung
2 : Seiten von 1 beginnend gezählt
Von Illustrator wird der Parameter ignoriert.
abbrev int 1 Abkürzung verwenden?
Von Illustrator wird der Parameter ignoriert.

Der Aufruf ist ein wenig sinnlos. index enhält nach dem Aufruf den übergebenen Seitenindex 10 als String ("10").

char		index [256];
:
page::get_str_by_index (index, 0, 10, 0, 1, 2, 1);

Version 2.1 R1789, 2. March 2010

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

page::get_str

static int page::set_number(
  ItemRef docRef,
  int pageNum,
  int startNum = -1,
  char* name = "--ignore--",
  char* marker = "--ignore--",
  int style = -1,
  int continuePrevious = -1,
  int includeSectionPrefix = -1)

Setze die Seitennummer einer Seite. Durch den Aufruf kann sich der Seitentyp von Seiten ändern.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
docRef ItemRef - Zieldokument
0 : aktuelles Frontdokument
pageNum int - 1-basierte Seitennummer im Dokument
startNum int -1 Neue Seitennummer
-1 : unverändert lassen
-2 : Abschnittsnummerierung der Seite entfernen. Der erste Abschnitt des Dokumentes kann nicht entfernt werden, pageNum muß also in diesem Fall >=2 sein.
name String oder char* "--ignore--" Präfix des Absatzes. Adobe hat diesen Namen auf 8 Zeichen Länge beschränkt, wenn Sie mehr Zeichen angeben, wird dieser Präfix aber ebenfalls verwendet. Die Präfixname müssen dokumentweit eindeutig sein.
"--ignore--" : unverändert lassen
marker String oder char* "--ignore--" Marker für den Absatz
"--ignore--" : unverändert lassen
style int 0 Nummerierungstyp

-1 : unverändert lassen
0 : 1, 2, 3, 4, ...
1 : I, II, III, IV, ...
2 : i, ii, iii, iv, ...
3 : A, B, C, D, ...
4 : a, b, c, d, ...

5 : 01, 02, 03, ...
6 : 001, 002, 003, ...
7 : 0001, 0002, 0003, ...
8 : Fullwidth (?)
9 : Kanji
continuePrevious int -1 Zählung des vorangegangenen Abschnitte weiterführen

-1 : unverändert lassen
0 : Neue Zählung beginnen
1 : Zählung fortführen
includeSectionPrefix int -1 Abschnittsnamen in den Seitennamen einfügen?

-1 : unverändert lassen
0 : Nein
1 : Ja

Lege einige neue Abschnitte mit verschiedenen Seitennummern und Darstellungen an.

int main ()
{
    int			i;
    char		str [256];
    char		number [256];
    char		index [256];
page::set_number (0, 1, 12, "Anton ", "Anton markiert", 2); page::set_number (0, 4, -1, "Blümchen ", "Blümchen markiert", 1, 1, 1); page::set_number (0, 8, 6, "", "", 0, 0, 0);
/*   Expected result
  Anton xii   Anton xiii   Anton xiv   Blümchen XV   Blümchen XVI   Blümchen XVII   Blümchen XVIII   6 !page types changing!   7   8
*/
for (i = 1; i <= document::pages (0); i++) { page::get_str_by_index (str, 0, i, 1, 0, 1, 0); page::get_str_by_index (number, 0, i, 0, 1, 1, 1); page::get_str_by_index (index, 0, i, 0, 1, 2, 1); wlog ("", "# Page %d : '%s' (Number %s, Index %s)\n", i, str, number, index); }
return 0; }

Lösche alle Abschnitte des Dokumentes und setze die Zeitenzählung auf den Standard zurück.

int main ()
{	
    int			i;
    char		str [256];
    char		nummer [256];
    char		index [256];
for (i = 2; i <= document::pages (0); i++) { page::set_number (0, i, -2); }
page::set_number (0, 1, 1, "", "", 0, 0, 0); for (i = 1; i <= document::pages (0); i++) { page::get_str_by_index (str, 0, i, 1, 0, 1, 0); page::get_str_by_index (nummer, 0, i, 0, 1, 1, 1); page::get_str_by_index (index, 0, i, 0, 1, 2, 1); wlog ("", "# Page %d : '%s' (Nummer %s, Index %s)\n", i, str, nummer, index); }
return 0; }

Version 2.1 R1789, 2. März 2010

priint:comet InDesign® Plug-Ins, comet_pdf

document::set_startpage

static int page::get_type(int pg = -1)

Ermittle den Typ (linke, unisex, rechte Seite) einer gegebenen Seite. Die Seite wird über ihre dokumentbezogene 1-basierte Seitenzahl angegeben. Fehlt die Angabe, wird der Typ der aktuell in InDesign® angezeigten Seite ermittelt. Die Funktion benötigt den Import

#include "internal/types.h"

Name Typ Default Beschreibung
Return int   Seitentyp
kUndefPage (-1) Seite nicht gefunden
kLeftPage (0) linke Seite
kUnisexPage (1) innere Seite oder Seite eines Spreads mit nur einer Seite
kRightPage (2) rechte Seite
pg int - Seite, deren Typ ermittelt werden soll. Als Seitenzahlen werden die internen, bei 1 beginnenden Seitenzahlen verwendet.
-1 : Seitentyp der im obersten Fenster von InDesign® angezeigten Seite
#include "internal/types.h"

Version 1.2.1 (22. September 2005)

priint:comet InDesign® Plug-Ins, comet_pdf

grid::left
...
comet.CPage.getType

static int page::select(int pageNum)

Gehe zu einer Seite. Die Funktion ist nur für die Desktop-Version von InDesign® sinnvoll, unter InDesign® Server wird der Fehler notForServerErr (1273) zurückgegeben. Seitennummern beginnen bei 1, unabhänging von der im Dokument eingestellten Startseitennummer.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
pageNum int - Seitenzahl
err_code		= page::select (pageNum);


priint:comet InDesign® Plug-Ins

page::get

static int page::create(
  int pages = 1,
  int at = -1,
  char* masterPage = "",
  float left = 0.0,
  float top = 0.0,
  float right = 0.0,
  float bottom = 0.0,
  int localize_items = false)

Erzeuge neue Dokumentseiten. Die neuen Seiten können an beliebiger Stelle im Dokument angelegt werden und auf Musterseiten basieren. Enthalten die Musterseiten Rahmen mit Platzhaltern, können diese Rahmen entweder automatisch (localize_items != 0) oder durch einen Aufruf von masteritems_load lokalisiert werden. Hier finden Sie eine Beschreibung zur Konfiguration von Musterseiten-Rahmen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
pages int 1 Anzahl der Seiten, die erzeugt werden sollen
at int -1 An welcher Stelle sollen die neuen Seiten eingefügt werden.
-1 : Anfügen der Seiten
masterPage String oder char* "" Name der Musterseite. Ist keine Musterseite angegeben, wird die Defaultmusterseite verwendet. Musterseiten werden im Format Prefix-Name angegeben, also z.B. "A-Musterseite".
left float 0.0 Angaben zur Seitengröße. Sind left, top, right, bottom = 0.0 werden die Standardseitengrößen verwendet.
top float 0.0  
right float 0.0  
bottom float 0.0  
localize_items int 0 Sollen Musterseiten-Rahmen mit Platzhaltern lokalisiert werden?

0 - nicht lokalisieren
sonst - lokalisieren

Der Parameter localize_items ist ab Version 1.2.2 (Build 31. Oktober 2005) implementiert.

priint:comet InDesign® Plug-Ins, comet_pdf

masteritems_load
comet.Document.createPages

static int page::duplicate(
  ItemRef docRef = 0,
  int pageNum = 1,
  int reconstructCometData = 0)

Dupliziere eine Seite eines Dokumentes. Die neue Seite wird immer am Ende das Dokumentes angelegt.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
⇨ Innerhalb eines Dokumentes
docRef ItemRef 0 Zieldokument

0 : aktuelles Skriptdokument
pageNum int 1 Seite (1-basiert)
reconstructCometData int 0 Cometgruppen und Magnete neu anlegen?

0 : Nein, die neuen Rahmen haben keine Cometgruppen und keine Magneten
⇨ Anfügen einer Seite aus einem anderen Dokument, nicht unterstützt von comet_pdf
docRef ItemRef - Zieldokument

0 : aktuelles Skriptdokument
fromPath char* oder String - Vollständiger Pfad des Dokumentes, in dem sich die Oroginalseite befindet. Ist das Dokument nicht geöffnet, wird es im Hintergrund geöffnet und nach dem Duplizieren wieder geschlossen.
pageNum int 1 Seite (1-basiert)
reconstructCometData int 0 Cometgruppen und Magnete neu anlegen?

0 : Nein, die neuen Rahmen haben keine Cometgruppen und keine Magneten

Das folgende Skript legt hinter der Seite des aktuellen Rahmen eine Kopie der Seite dieses Rahmens an.

int main ()
{
    page::duplicate (0, page::get (gFrame));
    page::move (0, document::pages (), page::get (gFrame));
return 0; }

v3.4 R5125, 21.01.2014
Parameter recreateCometGroups seit v3.4 R5234, 13. März 2014
Duplizieren aus einem anderen Dokument seit v4.1.8 R27973, 19. Jan 2021

priint:comet InDesign® Plug-Ins, comet_pdf

page::move

static int page::move(
  ItemRef docRef,
  int pageNum,
  int behindPage)

Verschiebe eine Seite eines Doument hinter eine andere Seite. Die Anweisung ändert die Druckbogenanordnung.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
Return int   0 oder Fehlercode

-1199 : Diese Version der Funktion wird von comet_pdf nicht unterstützt und gibt hier den Fehler -1199 zurück.
⇨ Innerhalb eines Dokumentes
docRef ItemRef - Zieldokument

0 : aktuelles Skriptdokument
pageNum int - Seite, die verschoben werden soll (1-basiert)
behindPage int - Seite hinter diese Seite verschieben.

0 : die Seite wird die neue erste Seite
-1 : die Seite wird die neue letzte Seite
sonst : 1-basierte Seitennummer
⇨ Seite aus einem anderen Dokument entfernen und in das Zieldokument verschieben, nicht unterstützt von comet_pdf
docRef ItemRef - Zieldokument

0 : aktuelles Skriptdokument
fromPath char* oder String - Vollständiger Pfad des Dokumentes, aus dem die Seite verschoben werden soll. Ist das Dokument nicht geöffnet, wird es im Hintergrund geöffnet und nach dem Verschieben der Seite gesichert und wieder geschlossen. Ist das Dokument bereits geöffnet, wird es nicht gesichert.
pageNum int - Seite des Originaldokumentes, die verschoben werden soll (1-basiert). Die Seite wird aus dem Originaldokument entfernt und in das Zieldokument eingefügt.
behindPage int - Seite hinter diese Seite im Zieldokument verschieben.

0 : die Seite wird die neue erste Seite
-1 : die Seite wird die neue letzte Seite
sonst : 1-basierte Seitennummer

Das folgende Skript legt hinter der Seite des aktuellen Rahmen eine Kopie der Seite dieses Rahmens an.

int main ()
{
    page::duplicate (0, page::get (gFrame));
    page::move (0, document::pages (), page::get (gFrame));
return 0; }

v3.4 R5125, 21.01.2014
Verschieben aus einem anderen Dokument seit v4.1.8 R27973, 19. Jan 2021

priint:comet InDesign® Plug-Ins

@see comet.CPage.setIndex

static int page::remove(int pgNum = 1, int reshuffle = 1)

Löschen einer Dokumentseite. Die Funktion löscht die angegebene Seiten des aktuellen Dokumentes. Seiten werden bei 1 beginnend gezählt. Mindestens eine Seite muß im Dokument verbleiben.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
pgNum int 1 Seitennummer der zu löschenden Seite (1-basiert)
reshuffle int 1 Sollen die folgende Seiten neu sortiert werden? Linke Seiten werden dann rechte Seiten usw..

0 : Nein
1 : Ja

In comet_pdf werden die Doumentseiten immer neu sortiert!

Lösche die dritte Seite eines Dokumentes.

int main ()
{
    page::remove (3);
    return 0;
}

Version 1.3.3, P/R 60
Parameter exhaustive seit v3.3.1 R3969, 2. Jul 2013

priint:comet InDesign® Plug-Ins

comet.CPage.remove

static int page::masteritems_load(int pg = -1, int CLASSID = 0)

Lade die Platzhalter der Rahmen aus der Musterseite einer Seite.

Die von der jeweilgen Musterseite einer Dokumentseite übernommenen Rahmen werden bei der Bearbeitung der Platzhalter nicht automatisch mit bearbeitet. Damit Musterseiten-Elemente als eigenständige Seiteninhalte behandelt werden können, müssen sie zuerst lokalisiert werden. Diese Lokalisierung kann manuell im Dokument erfolgen (Command-Shift-Klick auf den Rahmen). Beim Ändern des zugehörigen (nicht lokalisierten) Rahmens der Musterseite werden dann nur die nicht überschriebenen Rahmen-Eigenschaften aus der Musterseite übernommen. Sind Rahmen einmal lokalisiert, können sie wie normale Rahmen bearbeitet und verändert werden.

Um einen Musterseitenrahmen mit masteritems_load zu lokalisieren, muß der Rahmen mit einem Platzhalter mit einer ID > 0 verknüpft sein. Eine zusätzliche Verknüpfung mit einem Produkt ist nicht nötig, der Rahmen darf also die Record-ID [0, 0, 0, ""] haben.

Wiederholte Aufrufe von masteritems_load sind erlaubt. Die Funktion erkennt selbstständig, ob ein Musterseitenrahmen bereits lokalisiert wurde. In diesem Fall werden die Platzhalter der Lokalisierung bearbeitet, ohne den Rahmen nochmal zu lokalisieren.

Achtung: Einseitige Musterseiten auf Doppelseiten und doppelseitige Musterseiten auf Einzelseiten werden unterstützt. Aber um horizontale Verschiebungen der freigestellten Rahmen zu vermeiden, müssen Spreads mit mehr als zwei Seiten Musterseiten mit mind. der gleichen Seitenzahl verwenden. Andernfalls müssen Sie den horizontalen Shift in Ihren Skripten korrigieren.

Hier finden Sie eine Beschreibung zur Konfiguration von Musterseiten-Rahmen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

-50 : Die Funktion wurd mit der Seitennummer 0 gerufen. Das ist nicht erlaubt.
pg int -1 Welche Seite soll bearbeitet werden?

-1 : Alle Seiten
sonst : 1 basierte Seitennummer

Um die Musterseitenelemente des aktuellen Skriptrahmens zu laden, verwenden Sie page::get (gFrame) zum Ermitteln der Seitennummer.
CLASSID int 0 Klassennummer der Platzhalter, die geladen werden sollen.

0 - Ignoriere die Klassennummer
sonst - Nur Platzhalter mit dieser Klassennummer laden

Version 1.2.2 (31. Oktober 2005)

priint:comet InDesign® Plug-Ins, comet_pdf

document::build_products
page::create
page::get
comet.CPage.loadMasterItems

static int page::get_size(
  int pg,
  float* l,
  float* t,
  float* r,
  float* b,
  int marginRel = 0,
  ItemRef docRef = 0)

Ermittle die Größe einer Dokumentseite. Die Angaben erfolgen in Punkten.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
pg int - 1-basierte Seitennummer
l, t, r, b float* - Rückgabevariablen. Alle Angaben erfolgen in Punkten.
marginRel int 0 Soll der Seitenrand von der Seitengröße abgezogen werden? 0 : Nein
sonst : Ja
docRef ItemRef - [Ab v4.1.6, R26111]Welches Dokument soll abgefragt werden?

0 : Aktuelles Frontdokument

Version 1.3.5, R 236
Parameter docRef seit v4.1.6, R26111

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

comet.CPage.getSize

static int page::set_size(
  ItemRef docRef,
  int page,
  float width,
  float height,
  int refPoint = 0)

Setze die Größe einer Dokumentseite.

In seitenbasierten Layouts wie sie von InDesign® und comet_pdf erzeugt werden, ist die Größe der Seiten eine fundamentale Information und geänderte Seitengrößen führen gewöhnlich zu erheblichen Unterschieden in der Ausgabe.

Die Funktion page::set_size ändert lediglich die Seitengröße! Außer eine eventuellen Neuausrichtung der Rahmen gemäß dem gegebenen Referenzpunkt werden keinerlei Neuordnungen der Seiteninhalte vorgenommen. Das bedeutet insbesondere:

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
docRef ItemRef - Dokument
0: Aktuelles Frontdokument
page int - 1-basierte Seitennummer
width float - Neue Breite in Punkten
height float - Neue Höhe in Punkten
refPoint int kRefPointTopLeft Referenzpunkt der Größenänderung

kRefPointTopLeft (0)
kRefPointTopCenter(1)
kRefPointTopRight(2)
kRefPointLeftCenter(3)
kRefPointCenter(4)
kRefPointRightCenter(5)
kRefPointBottomLeft(6)
kRefPointBottomCenter(7)
kRefPointBottomRight(8)

Nur InDesign und comet_pdf!

InDesign und comet_pdf seit v4.3 R34020, 1. Dez 2024

IllustratorInDesign® Plug-Ins, comet_pdf

comet.CPage.setSize

static int page::get_margins(
  int pg,
  float* insideLeft,
  float* top,
  float* outsideRight,
  float* bottom,
  int facingRule = 0)

Ermittle die Ränder einer Seite. Alle Angaben erfolgen in Punkten. Rechter und unterer Rand werden in Punkten von der rechten bzw. unteren Seitenkante berechnet.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
pg int - 1-basierte Seitennummer
insideLeft float - Rückgabe des inneren (bei doppelseitigen Dokumenten) oder linken Beschnitts in Punkten
top float - Rückgabe des oberen Beschnitts in Punkten
outsideRight float - Rückgabe des äußeren (bei doppelseitigen Dokumenten) oder rechten Beschnitts in Punkten
bottom float - Rückgabe des unteren Beschnitts in Punkten
facingRule int 0 Welche Werte sollen bei doppelseitigen Dokumenten zurückgegeben werden?

0 : innen, oben, außen, unten
1 : links, oben, rechts, unten

Version 1.3.5, R 236
Parameter facingRule seit v3.3 R3021, 29.05.2012

priint:comet InDesign® Plug-Ins, comet_pdf

comet.CPage.getMargins

static int page::set_margins(
  int pg,
  float insideLeft,
  float top,
  float outsideRight,
  float bottom)

Setze die Ränder einer Seite

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
pg int - 1-basierte Seitennummer
insideLeft float - Neuer innerer (bei doppelseitigen Dokumenten) oder linker Beschnitt in Punkten
top float - Neuer oberer Beschnitt in Punkten
outsideRight float - Neuer äußerer (bei doppelseitigen Dokumenten) oder rechter Beschnitt in Punkten
bottom float - Neuer unterer Beschnitt in Punkten
facingRule int 0 Was enthalten die neuen Werte?

0 : innen, oben, außen, unten
1 : links, oben, rechts, unten

Version 1.3.5, R 236
Parameter facingRule seit v3.3 R3021, 29.05.2012

priint:comet InDesign® Plug-Ins, comet_pdf

comet.CPage.setMargins

static int page::count_columns(
  int pg,
  float* gutter = 0,
  int* direction = 0,
  int useMaster = 0)

Spaltenanzahl und -abstand einer Dokumentseite

Name Typ Default Beschreibung
Return int   Spaltenanzahl oder 0 im Fehlerfall
pg int - 1-basierte Seitennummer
gutter float* 0 Spaltenabstand in Punkten
direction int* 0 Richtung der Spalten

0 : horizontale Spalten
1 : vertikale Spalten
useMaster int 0 Soll die Einstellung der Musterseite geholt werden, übergeben Sie hier eine 1

DEPRECATED seit v4.0.5 R14200, 8. Dez. 2016 und InDesign® CC : Ab InDesign® CC können die Werte der Musterseite nicht mehr erfragt werden und der Parameter useMaster wird ignoriert. Es werden immer die Einstellungen der Seite, die aber mglw. von der Musterseite geerbt wurden, zurückgegeben.
int main ()
{
    int			cols;
    float		gt;
    int			dir;
cols = frame::count_columns (gFrame, >); wlog ("", "Frame : %d columns, gutter %f\n", cols, gt);
cols = page::count_columns (page::get (gFrame), >, &dir); wlog ("", "Page %d : %d columns, gutter %f, direection %d\n", page::get (gFrame), cols, gt, dir);
return 0; }

Version 3.1 R2222, 7. Dez. 2010

priint:comet InDesign® Plug-Ins, comet_pdf

comet.CPage.getColumnCount
comet.CPage.getColumnGutter

static char* page::get_masterpage(int pg)

Ermittle die Musterseite einer Seite.

Name Typ Default Beschreibung
Return char*   Musterseite der gegebenen Dokumentseite des aktuellen Dokumentes.

Der Rückgabewert darf nicht verändert werden und wird bei folgenden Aufrufen der Funktion überschrieben. Hier finden Sie Informationen zu readonly-Rückgaben von Funktionen.

pg int 1 1-basierte Seitennummer
char		m[500];
strcpy (m, page::get_masterpage (page::get ()));

Version 1.4.1 R423, 30. Jul 2007

priint:comet InDesign® Plug-Ins, comet_pdf

set_masterpage
comet.CPage.getMasterPage

static int page::set_masterpage(
  int pg,
  char* leftM,
  char* middleM = "",
  char* rightM = "",
  int resizeChoice = 1)

Setze die Musterseite für eine gegebene Seite des Frontdokumentes.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
pg int pg 1 1-basierte Seitennummer
masterL char* - Präfix und Name einer existierenden Musterseiten-Vorlage des Dokumentes (z.B. "A-Mustervorlage"). Der Wert wird für linke Dokumentseiten angewendet.
masterM char* - Präfix und Name einer existierenden Musterseiten-Vorlage des Dokumentes (z.B. "A-Mustervorlage"). Der Wert wird für innere Dokumentseiten angewendet.

"" : Verwende masterL

Ab CS5 wird der Parameter nicht mehr ausgewertet.
masterR char* - Präfix und Name einer existierenden Musterseiten-Vorlage des Dokumentes (z.B. "A-Mustervorlage"). Der Wert wird für rechte Dokumentseiten angewendet.

"" : Verwende masterL

"" : Verwende masterL

Ab CS5 wird der Parameter nicht mehr ausgewertet.
resizeChoice int 1 [Ab CS5] Seitengröße an die Größe der Musterseite anpassen?

0 : Ja, Größe der Seite wie Musterseite setzen
1 : Nein, Seitengröße unverändert lassen
2 : Benutzer fragen

Version 1.4.1 R423, 30. Jul 2007

Parameter resizeChoice seit Version 3.1 R1830, 14. April 2010

priint:comet InDesign® Plug-Ins, comet_pdf

get_masterpage
comet.CPage.setMasterPage

static int page::crop(
  ItemRef docRef,
  int page = 1,
  int keepMargins = 1)

Beschneiden von Dokumentseiten. Alle gewünschten Seiten werden in ihrer Größe jeweils an ihre Seitenrahmen angepasst und die Rahmen in die linke obere Ecke der Seite (plus Anschnitt) verschoben.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
docRef ItemRef - Dokument, 0: aktuelles Dokument
page int 1 Welche Seite soll bearbeitet werden?

Bis CS4 werden die Rahmen der angegebenen Seite (oder der ersten Seite) verwendet, um die neue Seitegröße zu ermitteln. Alle Seiten erhalten die neue Größe. Die Rahmen der angebenen (oder ersten) Seite werden danach in die linke obere Ecke (plus Anschnitt) der Seite verschoben.

Ab CS5 können Dokumente Seiten unterschiedlicher Größe beinhalten. Alle gewünschten Seiten werden in ihrer Größe jeweils an ihre Seitenrahmen angepasst und die Rahmen in die linke obere Ecke der Seite (plus Anschnitt) verschoben.

Achtung: Unter Umständen sind die Rahmen der Seite kleiner plus Anschnittbereiche kleiner als die Anschnittsbereiche der Musterseite. In diesem Fall wird automatisch der Anschnitt der Musterseite auf (0, 0, 0, 0) gesetzt. Dadurch verlieren alle Dokumentseiten, die den Anschnitt dieser Musterseite verwenden, ihren Anschnitt. Mit page::set_margins können Sie den Seitenanschnitt einer Seite musterseiten-unabhängig setzen.

Hat die Zielseite keine Rahmen, bleibt die Seitengröße unverändert.

-1 : bis CS4 : erste Seite
-1 : ab CS5 : alle Seiten
>= 1 : bis CS4 : Diese Seite als Grundlage verwenden (1-basiert)
>= 1 : ab CS5 : nur diese Seite anpassen (1-basiert)
keepMargins int 1 Anschnittbereiche erhalten?

0 : Anschnitt der bearbeiteten Seiten auf (0, 0, 0, 0) setzen
1 : Lokalen Seitenanschnitt erhalten

Version 2.1 R1089, 18.12.2008
page und keepMargins seit v3.3 R3021, 30. Mai 2012

priint:comet InDesign® Plug-Ins, comet_pdf

static int page::get_info(
  ItemRef docRef,
  int pg,
  char* attribute,
  int* value)

Die Funktion ermittelt Informationen über das mit der Seite verknüpfte Seitentemplate.

Beachten Sie bitte, dass die Ergebnisse der Funktion aus der aktuellen Dokumentseite ermittelt werden. Um die Definition eines Seitentemplates im Datenpool zu erfragen, verwenden Sie die Funktion page::templates::get_info. Um die Elemente eines Seitentemplates zu ermittlen, verwenden Sie die Funktionen page::templates::count_elements und page::templates::get_element_info_by~.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
docRef ItemRef - Gültige Dokumentreferenz
0 : aktuelles Frontdokument
pg int - Seitennummer (1-basiert)
-1 : Aktuelle Seite im Frontdokument, docRef bleibt in diesem Fall unberücksichtigt

Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert.

attribute String oder char* - Welche Information wollen Sie ändern? Siehe Tabelle Seiteninformationen. Die Angabe ist case-sensitive!
value int* | String oder char* | float* - Variable für das Ergebnis. Der Typ der Variable muß dem gegebenen Attribute entsprechen, char*-Variablen müssen genügend groß allokiert sein.

Version 3.0 R911, 15. August 2008

priint:comet InDesign® Plug-Ins, comet_pdf

set_info
page::templates::get_info

static int page::set_info(
  ItemRef docRef,
  int pg,
  char* attribute,
  int value,
  int applyMaster = 0)

[Ab Comet 3.0]. Die Funktion ändert in der Seite hinterlegte Informationen.

Achten Sie in Funktionsaufrufen bitte darauf, dass der Datentyp des Wertes immer zum Attribut paßt.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
docRef ItemRef - Gültige Dokumentreferenz
0 : aktuelles Frontdokument
pg int - Seitennummer (1-basiert)
-1 : Aktuelle Seite im Frontdokument, docRef bleibt in diesem Fall unberücksichtigt

Unter InDesign® Server und comet_pdf ist die aktuelle Seite nicht definiert.

attribute String oder char* - Welche Information wollen Sie ändern? Siehe Tabelle Seiteninformationen. "id" und "ids" ändern alle Seitentemplate-Informationen gemäß den Definitionen des aktuellen Datenpools.

Elementeigenschaften können mit dieser Funktion nicht geändert werden!
value int | String oder char* | float - Neuer Wert
applyMaster int 0 Nur für die Attribute "id"  und "ids" ! Soll automatisch eine der im Seitentemplate festgelegten Musterseiten angewendet werden?

0 : Nein, Musterseite unverändert lassen
1 : Ja, wenn eine Im Seitentemplate definierte Musterseite existiert

Von anderen Attributen werden keine weiteren indirekten Dokumentänderungen gemacht!

Version 3.0 R911, 15. August 2008
Parameter applyMaster seit v4.2 R32161, 19. Jan 2023

priint:comet InDesign® Plug-Ins, comet_pdf

get_info

static int page::get_spread(
  ItemRef docRef,
  int pg,
  int* indexInSpread = 0)

Spreadindex einer Seite ermitteln.

Name Typ Default Beschreibung
Return int   Spreadindex oder -1 bei Fehler
docRef ItemRef - Dokument
0 : aktuelles Skriptdokument
pg int - 1-basierter Seitenindex
indexInSpread int* 0 (Rückgabe) 0-basierter Index der Seite innerhalb des Spreads

0 : Angabe ignorieren
int main ()
{
    int        pg            = page::get (gFrame);
    int        indexInSpread;
    int        spread        = page::get_spread (0, pg, &indexInSpread);
    ItemRef    pageRef       = item::alloc ();
    ItemRef    spreadRef     = item::alloc ();
document::get_pageref (pageRef, 0, pg); document::get_spreadref (spreadRef, 0, spread);
wlog ("", "Spread %d (%d), Seite %d (%d), %d. page in Spread\n",   spread, item::getint (spreadRef),   pg, item::getint (pageRef), indexInSpread);
return 0; }

v3.3 R3500, 08.03.2012

Verfügbarkeit:
priint:comet InDesign® Plug-Ins, comet_pdf

page::get_spread
comet.CPage.getIndexInSpread

static int page::get_free_rects(
  RectList R,
  ItemRef docRef,
  int pg,
  int flags = 0,
  float treshold = 1.2,
  Rect outsets = 0,
  int fn_best_rect = 0)

Ermittle eine Liste von Rechtecken, mit denen die freie Fläche einer Seite vollständig bedeckt werden kann.

Zur Ermittlung der freien Rechtecke werden in einem ersten Schritt die freien Teile der Seite in sogenannte Kacheln (Tiles) aufgeteilt. Das Gitternetz für die Kacheln wird dabei duch die Außenkanten aller Rahmen gebildet und durch die Seitenränder bregrenzt. Im Screenshot sehen Sie einen ziemlich einfachen Fall mit zwei Rahmen (hier mit blauem Rand) und dessen freien Kacheln (hier in grün):

Aus den freien Kacheln werden in einem zweiten Schritt alle größt-möglichen rechteckigen Kandidaten ermittelt. Die Kandidaten können sich dabei teilweise überdecken (aber niemals bereits belegte Kacheln). Hier ein Screenshot des ersten Durchlaufs des obigen Beispiels. Dunklere grüne Flächen sind überdeckungen möglicher Kanditaten:

Aus der Liste der Kandidaten wird im dritten Schritt das 'beste' Rechteck ausgewählt. Dieser Rahmen wird der Ergebnisliste hinzugefügt und die beteiligten Kacheln werden als belegt markiert. Die Schritte Zwei und Drei werden solange wiederholt, bis keine Fläche der Seite mehr unbelegt ist.

Beachten Sie bitte, dass das Ergebnis (bis auf die leere Seite) natürlich nicht eindeutig ist. Sie können das Ergebnis aber mit dem Parameter treshold und/oder einer eigenen Funktion fn_best_rect zum Flächenvergleich beeinflussen.

Mit den Schwellwerten 1.2 (Standard), 1.5 und 2.0 erhält man folgende unterschiedlichen Ergebnisse:

Die Vergleichsfunktion bestRect aus dem unten folgenden Beispiel prüft lediglich die Seitenverhältnisse. Hier die beiden Lösungen, wenn dabei immer der breiteste bzw. der höchste Rahmen bevorzugt wird:

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
R RectList - Allokierte RectList für die Ergebnisse
docRef ItemRef - Gültige Dokumentreferenz
0 : aktuelles Frontdokument
pg int - Seitennummer (1-basiert)
flags int 0 Zusatzinformationen

1 : Seite auf Seitenränder (Margins) beschränken
2 : Liste der einzelnen Teilflächen (Tiles) berechnen
4 : Liste der 'Kandidaten' berechnen
8 : Text und Tabellen als Einzelflächen auswerten
16 : Nur belegte Flächen berechnen
outsets Rect 0 Größenanpassung der belegten Einzelflächen
0 : Keine Größenanpassung
treshold float 1.2 Grenzwert ≥ 1.0. Bei Werten kleiner 1.0 wird das Seitenverhältnis ignoriert.

Bei der Ermittlung des nächsten besten Rechteckes aus den möglichen Kandidaten werden Größe und Seitenverhältnis der Rechtecke verglichen: Bis zu einem Größenverhältnis 1 : treshold wird das größere Rechteck bevorzugt. Ist das Größenverhältnis kleiner, wird das Recheck mit dem besseren Seitenverhältnis (näher an 1.0) verwendet. Je größer Sie also den treshold machen, um so schmaler (oder flacher) werden ihre Ergebnisse tendenziell.
fn_best_rect int 0 Im Skript definierte Funktion vom Typ
int fn (RectList candidates)}
zur Bestimmung des besten Rechteckes aus der Liste der möglichen Kandidaten. Die Liste candidates ist vorsortiert und enthält als erstes Element das intern berechnete beste Rechteck. Soll ein davon abweichendes Rechteck verwendet werden, gibt die Funktion den (0-basierten) Listenindex des bevorzugten Recheckes zurück.

Wird eine solche Funktion verwendet, muß das gesamte Skript in cScript implementiert sein und in der Funktion dürfen keine globalen Variablen des Skripte verwendet werden.

#pragma plain
#include "internal/types.h" #include "internal/text.h"
// *****************************************************************************
float kMinHeight = 65.0; float kMinWidth = 40.0; float kShrinkTop = 3.0; float kShrinkLeft = 3.0;
// *****************************************************************************
// This function decides which is the best rectangle in the current step. // The function is optional. // Unlike the default always take the largest rectangle (and ignore the proportions). // int bestRect (RectList R) { int result = 0; Rect r; float area, area1; int i;
// Init // r = rectlist::first (R); area = rect::width (r) * rect::height (r);
// Walk through the remaining rects and look for // a bigger one. // for (i = 1; i < rectlist::length (R); i++) { r = rectlist::get (R, i); area1 = rect::width (r) * rect::height (r); if (area1 > area) result = i; }
// We have to return the INDEX of the biggest rect // return result; }
// *****************************************************************************
// Main Function // int main () { RectList R = rectlist::alloc (); ItemRef fr = item::alloc (); String str = string::alloc (); int PG = document::pages (); float marginL, marginT, left, top; int pg; Rect r; int result; int i, flags;
if (gRun > 1) return 0;
flags = 1 + 8; // Margin relative + Text aware if (system::shiftkey ()) flags += 2; // Tiles only else if (system::cmdkey ()) flags += 4; // Candidates only else if (system::controlkey ()) flags += 16; // Occupied areas only
if (PG > 3) progress::start ("Find Free Places on Document Pages", PG);
for (pg = 1; pg <= document::pages (); pg++) { if (PG > 3) { string::set (str, "Page %d / %d", pg, PG); progress::step (str); progress::unit ("Calculating ..."); } result = page::get_free_rects (   R,   0, // docref   pg, // 1-based page   flags,   0, // text tresholds   1.0, // treshold   bestRect); // Optional : Chose the biggest rect always if (result != 0) { showmessage ("Error %d", result); return 0; }
// From the results I create document frames here. Small frames are ignored. // Of course, this step is not necessary. It serves only for visualization. // if (PG > 3) { progress::unit ("Creating Frames ..."); } layer::add ("RRR", ""); // Use an own layer for the new frames if (flags & 0x0010) // Do not shrink the frames in case of 'occupied' only { kShrinkTop = 0.0; kShrinkLeft = 0.0; }
page::get_margins (pg, &marginL, &marginT, 0, 0);
i = 0; // It's a counter for the frames only for (r = rectlist::first (R); r; r = rectlist::next (R)) { if ((flags & 0x0010) || rect::width (r) >= kMinWidth && rect::height (r) >= kMinHeight) { // Create and configure the frame // left = rect::left (r); top = rect::top (r); if (left > marginL + 10.0) left += kShrinkLeft; if (top > marginT + 10.0) top += kShrinkTop;
frame::create2 (fr, kRectangle, left, top, rect::right (r), rect::bottom (r), pg); frame::color_rgb (fr, 0, 128, 255); frame::set_corner (fr, 0, 1, 11.0); frame::set_blending (fr, kBlendingFill, 25.0); frame::move_to_layer (fr, "RRR");
// Set a counter and the frame size into the frame // string::set (str, "%%!TT<cSize:32.0>%d<cSize:8.0.0> : %.0f pt<cPosition:Superscript>2<cPosition:>", ++i, rect::width (r) * rect::height (r)); frame::replace (fr, str); } }
rectlist::clear (R); }
if (PG > 3) progress::stop (); item::release (fr); rectlist::release (R);
return 0; }

v4.2 R31175, 11. Jul 2022

priint:comet InDesign® Plug-Ins, comet_pdf

static int page::templates::get_info(
  int id,
  char* attribute,
  int* value)

Ermittle die im aktuellen Datenpool festgelegten Eigenschaften eines Seitentemplates.

Beachten Sie bitte, dass die Ergebnisse der Funktion aus der Definition des Seitentemplates im Datenpool ermittelt werden. Um die Eigenschaften des mit einer Dokumentseite verknüpften Seitentemplates zu ermitteln, verwenden Sie die Funktion page::get_info.

Seiten und Seitentemplates können folgende Informationen enthalten. Die Attributnamen sind case sensitiv. Achten Sie in Funktionsaufrufen bitte darauf, dass der Datentyp des Wertes immer zum Attribut passt.
Attribut Typ Gültigkeit Beschreibung
active int page::get_info
page::set_info
page::templates::get_info
0 | 1
id int Beim Ändern des Templates für eine Seite wird automatisch der richtige Seitentyp des Templates verwendet.
ids int Beim Ändern des Templates für eine Seite werden alle Folgeseiten des Dokumentes gemäß den Einstellungen im Template geändert. Sonst wie id
name char*
pagetype int 0 : Beliebig, 1 : Links, 2 : Rechts
barrier int 0 : ID des Skriptes, das nach dem Anwenden des Seitentemplates ausgeführt werden soll
successor int Nachfolger oder 0
masterpages char* Komma-getrennte Liste von Musterseiten
autooposite int 0 | 1
autosuccessor int 0 | 1
oposite int Gegenüber oder 0
origin int [Ab v4.1.6 R26001] UID der Seite im Musterdokument. Die Information wird nur in Master-Variant-Syncs benötigt.
label char* page::templates::get_info
docname char*
owner int ID der Templatedatei, die diese Information enthält

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
id int - id des Seitentemplates
attribute String oder char* - Welche Information wollen Sie erhalten? Siehe Tabelle Seiteninformationen. Die Angabe ist case-sensitive!
value int* | String oder char* | float* - Variable für das Ergebnis. Der Typ der Variable muß der Information entsprechen, char*-Variablen müssen genügend groß allokiert sein.

Version 3.0 R911, 15. August 2008

priint:comet InDesign® Plug-Ins, comet_pdf

get_info
set_info
comet.pagetemplate.getInfo

static int page::templates::count_elements(int id)

Anzahl der Elemente (Rahmen) in einem Seitentemplate des Datenpools.

Name Typ Default Beschreibung
Return int   Anzahl der Elemente in einem Seitentemplate des Datenpools

0 : Fehler oder Template nicht gefunden
id int - ID des Seitentemplates

Version 3.0 R911, 15. August 2008

priint:comet InDesign® Plug-Ins, comet_pdf

comet.pagetemplate.getElementCount

static int page::templates::get_element_info_by_sequ(
  int id,
  int sequ,
  char* attribute,
  int* value)

Ermittle die Eigenschaften eines über seine Sequenznummer definierten Seitenelementes eines Seitentemplates.

Beachten Sie bitte, dass Informationen über die Elemente eines Seitentemplates nicht im Dokument gespeichert werden. Diese Informationen können ausschließlich aus dem Datenpool ermittelt werden. Das mit einer Dokumentseite verknüpfte Seitentemplate erhalten Sie mit Hilfe der Funktion page::get_info und dem Attribut "id".

Folgende (case-senitiven) Attribute werden unterstützt:
Attribut Typ Beschreibung
Name char*
UID int UID des Elementes im zugehörigen InDesign®-Dokument
Active int 0 | 1
Sequ int Sequenznummer (1-basiert)
Type int
AutoLink int
VerticalJust int
MinimumVJ int
StylesVJ int
MinimumVJEnabled int
StylesVJEnabled int
HasMoreObjects int
BuildDirection int
MinDistX float Bei 1:N-Elementen minimaler X-Abstand in Punkten
MinDistY float Bei 1:N-Elementen minimaler Y-Abstand in Punkten
JustificationEnabled int
Justification int
JustificationScript int
BBox.Left float
BBox.Top float
BBox.Right float
BBox.Bottom float

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
id int - ID des Seitentemplates
sequ int - Sequenznummer des Elementes (1-basiert)
attribute String oder char* - Welche Information wollen Sie erhalten? Siehe Tabelle Element-Informationen. Die Angabe ist case-sensitive!
value int | String oder char* | float - Variable für das Ergebnis, siehe Tabelle Element-Informationen.

Version 3.0 R911, 15. August 2008

priint:comet InDesign® Plug-Ins, comet_pdf

get_element_info_by_index
comet.pagetemplate.getElementInfo

static int page::templates::get_element_info_by_index(
  int id,
  int idx,
  char* attribute,
  int* value)

Ermittle die Eigenschaften eines über seinen Index definierten Seitenelementes eines Seitentemplates.

Beachten Sie bitte, dass Informationen über die Elemente eines Seitentemplates nicht im Dokument gespeichert werden. Diese Informationen können ausschließlich aus dem Datenpool ermittelt werden. Das mit einer Dokumentseite verknüpfte Seitentemplate erhalten Sie mit Hilfe der Funktion page::get_info und dem Attribut "id".

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
id int - id des Seitentemplates
idx int - Index des Elementes (0-basiert)
attribute String oder char* - Welche Information wollen Sie erhalten? Siehe Tabelle Element-Informationen. Die Angabe ist case-sensitive!
value int | String oder char* | float - Variable für das Ergebnis, siehe Tabelle Element-Informationen.

Version 3.0 R911, 15. August 2008

priint:comet InDesign® Plug-Ins, comet_pdf

get_element_info_by_index
comet.pagetemplate.getElementInfo

static int page::guides::add(
  ItemRef docRef,
  int pageNum,
  int is_horizontal,
  float position,
  int for_spread = 0,
  int color_index = 6,
  float threshold = 0.05)

Anlegen oder Ändern einer Hilfslinie.

Existiert an der gegebenen Position bereits eine Hilfslinie mit gleicher Richtung (vertikal oder horizontal, siehe guides::get_direction) und gleichem Geltungsbereich (Seite oder Spread, siehe guides::get_owner), werden lediglich die Farbe (color_index) und der Schwellwert der Sichtbarkeit (threshold) geändert. Sonst wird eine neue Hilfslinie mit den gegebenen Einstellungen erstellt.

Beachten Sie bitte, dass Richtung, Geltungsbereich und Position einer Hilfslinie nicht geändert werden können. In diesen Fällen legen Sie eine neue Hilfslinie mit den gewünschten Einstellungen an und löschen die alte Hilfslinie.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
docRef ItemRef - Zieldokument
0 : aktuelles Frontdokument
pageNum int - 1-basierte Seitennummer im Dokument

Die Seitenummer wird verwendet, um den Spread zu ermitteln, auf dem die Seite liegt. Von diesem Spread werden alle Hilfslinien überprüft, ob nur Farbe (color_index) und Schwellwert der Sichtbarkeit (threshold) geändert werden müssen (siehe oben), oder ob eine neue Hilfslinie angelegt werden muß.
is_horizontal int - 0 : vertikal (waagerecht)
1 : horizontal (senkrecht)
position float - Angabe der Position der Hilfslinie in Punkten relativ zur linken oberen Ecke der gegebenen Seite
for_spread int 0 0 : Seite
1 : Spread
color_index int 6 Index einer in InDesign® fest definierten GUI-Farbe (stock color). Wir verzichten hier auf eine vollständige Liste der verfügbaren Farben und ihrer Indexe. Um den gewünschten Index zu ermitteln, erstellen Sie einmal manuell eine Hilfslinie und öffnen dann mit Rechtsklick die Einstellungen zur Hilflinie. In der Farbeinstellung können Sie den gewünschten Index leicht durch Zählen ermittlen. Die erste Farbe hat den Index 0.
threshold float 0.05 Hilfslinien können bei genügend kleinem Zoomfaktor der Seitendarstellung automatisch ausgeblendet werden. Geben Sie hier den Prozentwert des Zoomfaktors an, ab dem die Hilfslinie sichtbar werden soll, 1.0 entspricht dabei 100% (0.05 also 5%).

Erzeuge zwei Hilfslinien auf der ersten Dokumentseite.

int main ()
{
    page::guides::add (0, 1, 0, 120.0, 0, 30); // vertical
    page::guides::add (0, 1, 1, 120.0, 0, 25); // horiz
return 0; }

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

guides::get
guides::remove

static int page::guides::get(
  ItemRef docRef,
  int pageNum,
  ItemList result_list)

Hole einer Liste aller Hilfslinien des Spreads einer gegebenen Seite.

In comet_pdf und Illustrator® ist die Funktion leer definiert und -1199.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
docRef ItemRef - Zieldokument
0 : aktuelles Frontdokument
pageNum int - 1-basierte Seitennummer im Dokument

Die Seitenummer wird verwendet, um den Spread zu ermitteln, auf dem die Seite liegt. Von diesem Spread werden alle Hilfslinien ermittelt.
result_list ItemList - Allokierte ItemList für die Ergebnisse, siehe itemlist::alloc. Nach erfolgreichem Aufruf der Funktion enthält die Liste alle Hilfslinien des Spreads, in dem die gegebene Seite liegt.

Ändere die horizontale Hilfslinie bei 100pt der aktuellen Seite in eine vertikale Hilfslinie.

int main ()
{
    int 		pg 			= page::get (gFrame);
    ItemList	li 			= itemlist::alloc ();
    int 		i;
    ItemRef 	guideRef 	= item::alloc ();
    ItemRef 	ownerRef 	= item::alloc ();
page::guides::get (0, pg, li);
for (i = 0; i < itemlist::length (li); i++) { itemlist::get (li, guideRef, i);
wlog ("", "Guide %d :\n\tUID\n", i+1, item::getint (guideRef)); wlog ("", "\thorizontal\t%d\n", page::guides::get_direction (guideRef)); wlog ("", "\towner\t\t%d (UID %d)\n", page::guides::get_owner (guideRef, ownerRef), item::getint (ownerRef)); wlog ("", "\tposition\t\t%f\n", page::guides::get_position (guideRef)); wlog ("", "\tthreshold\t%f\n", page::guides::get_threshold (guideRef)); wlog ("", "\tcolor\t\t%d\n", page::guides::get_colorindex (guideRef));
if ( page::guides::get_owner (guideRef, 0) == pg   && page::guides::get_direction (guideRef) == 1   && page::guides::get_position (guideRef) == 100.0) { wlog ("", "\tCHANGED!!!\n"); page::guides::add (0, pg, 0, 100.0, 0,   page::guides::get_colorindex (guideRef),   page::guides::get_threshold (guideRef)); page::guides::remove (guideRef); } }
return 0; }

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

static int page::guides::remove(ItemRef guideRef)

Lösche eine Hilfslinie.

In comet_pdf und Illustrator® ist die Funktion leer definiert und gibt den Wert -1199 zurück.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
guideRef ItemRef - Gültige Referenz einer Hilfslinie. Referenzen auf Hilfslinien erhalten Sie mit Hilfe der Funktion guides::get.

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

guides::get

static int page::guides::get_direction(ItemRef guideRef)

Ist die Hilfslinie vertikal oder horizontal?

In comet_pdf und Illustrator® ist die Funktion leer definiert und gibt den Wert -1 zurück.

Name Typ Default Beschreibung
Return int   0 : vertikal (senkrecht)
1 : horizontal (waagerecht)
-1 : Fehler
guideRef ItemRef - Gültige Referenz einer Hilfslinie. Referenzen auf Hilfslinien erhalten Sie mit Hilfe der Funktion guides::get.

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

guides::get

static int page::guides::get_owner(ItemRef guideRef, ItemRef* resultRef = 0)

Ermittle den Typ einer Hilflinie. Hilfslinien können für eine einzelne Seite oder für den gesamten Spread definiert sein.

In comet_pdf und Illustrator® ist die Funktion leer definiert und gibt den Wert -1 zurück.

Name Typ Default Beschreibung
Return int   Typ der Hilfslinie

0 : Spread
> 0 1-basierte Seitennummer
< 0 : Fehler
guideRef ItemRef - Gültige Referenz einer Hilfslinie. Referenzen auf Hilfslinien erhalten Sie mit Hilfe der Funktion guides::get.
resultRef ItemRef 0 Fehlt die Angabe oder ist 0, wird sie ignoriert.

Sonst muß der Parameter eine allokierte ItemRef enthalten (siehe item::alloc) und enthält bei erfolgreicher Ausführung der Funktion eine Referenz auf die Seite bzw. den Spread.

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

guides::get

static float page::guides::get_position(ItemRef guideRef)

Ermittle die Position einer Hilflinie.

In comet_pdf und Illustrator® ist die Funktion leer definiert und gibt den Wert -1000001.0 zurück.

Name Typ Default Beschreibung
Return float   Position einer Hilfslinie in Punkten relativ zur linken oberen Ecke der Seite bzw. des Spreads

< -1000000.0 : Fehler bei der Emittlung der Position
guideRef ItemRef - Gültige Referenz einer Hilfslinie. Referenzen auf Hilfslinien erhalten Sie mit Hilfe der Funktion guides::get.

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

guides::get

static float page::guides::get_threshold(ItemRef guideRef)

Ermittle den Schwellwert der Seitenskalierung, ab dem eine Hilflinie gezeigt werden soll. Die Linie wird erst ab einem Zoomfaktor der angegebenen Größe gezeigt. Bei kleineren Zoomfaktoren wird sie automatisch ausgeblendet.

In comet_pdf und Illustrator® ist die Funktion leer definiert und gibt den Wert -1.0 zurück.

Name Typ Default Beschreibung
Return float   Zoomfaktor der Seitendarstellung, ab dem die Linie sichtbar werden soll. 1.0 entspricht 100%.

< 0.0 : Fehler bei der Emittlung des Schwellwertes
guideRef ItemRef - Gültige Referenz einer Hilfslinie. Referenzen auf Hilfslinien erhalten Sie mit Hilfe der Funktion guides::get.

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

guides::get

static int page::guides::get_colorindex(ItemRef guideRef)

Ermittle den Farbindex einer Hilflinie. Der Farbindex ist der Index einer in InDesign® fest eingebauten Liste von Farben für Ebenen, Rahmenkanten, XML-Elementen, Hilflinien und andere GUI-Objkete.

In comet_pdf und Illustrator® ist die Funktion leer definiert und gibt den Wert -1 zurück.

Name Typ Default Beschreibung
Return int   0-basierter Farbindex der GUI-Farben von InDesign®

-1 : Fehler bei der Ermittlung der Farbe
guideRef ItemRef - Gültige Referenz einer Hilfslinie. Referenzen auf Hilfslinien erhalten Sie mit Hilfe der Funktion guides::get.

Version 4.1.6 R24346, 20. Jun 2019

priint:comet InDesign® Plug-Ins

guides::get

Letzte Änderung
30.07.2025, 07:35 Uhr
Autor
Paul Seidel
Siehe auch
document::pages
item

Alphabetic index HTML hierarchy of classes or Java