Seiten und Seitennummern eines Dokumentes
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]);
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) |
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]]]]);
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);
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; }
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 |
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);
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 |
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; }
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; }
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; }
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 |
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 |
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! |
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 |
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 |
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; }
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 ()));
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 |
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 |
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. |
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! |
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; }
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; }
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. |
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 |
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. |
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. |
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; }
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; }
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. |
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. |
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. |
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. |
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. |
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. |
Alphabetic index HTML hierarchy of classes or Java