Systeminformationen

Ein allgemeines Beispiel zur Verwendung der Klasse system finden sie hier.

Letzte Änderung :
30.07.2025, 07:35 Uhr

SysteminformationenDas Modul wird verwendet, um Informationen über aktuelle Systemeinstellungen wie Datumsformat, Währung, etc. ermitteln zu können.

static char* system::login(char* s)

Loginname des Benutzers. Der Loginname ist der Name, unter dem sich ein Benutzer am Rechner angemeldet hat, nicht der Name, mit dem sich ein Benutzer eventuell auf einer Datenbank angemeldet hat.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Benutzername, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::login(s));
release(s);
return 0; }


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

static char* system::host(char* s)

Hostname des Rechners.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Hostname, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::host(s));
release(s);
return 0; }


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

static char* system::getenv(char* s, char* vname)

Ermittle den Wert von globalen Systemvariablen.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Aktueller Wert der gesuchten Systemvariable, entsprich Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
vname String oder char* - Name der gesuchten Variable
int main()
{
    char	*s = alloc(1000);
showmessage(system::getenv(s, "PATH"));
release(s);
return 0; }


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

static char* system::currency(char* s)

Nur für Mac OS X Währungssymbol. Die Währung wird unter Mac OS X in
Systemeinstellungen:Landeseinstellungen:Formate:Zahlen
eingestellt.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Währungssymbol, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::currency(s));
release(s);
return 0; }


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

static char* system::AM(char* s)

Uhrzeitsymbol für die erste Tageshälfte. Diese Einstellung wird unter Mac OS X in
Systemeinstellungen:Landeseinstellungen:Formate:Uhr:Erste Tageshälfte
gemacht.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Uhrzeitsymbol für die erste Tageshälfte, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::AM(s));
release(s);
return 0; }


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

static char* system::PM(char* s)

Uhrzeitsymbol für die zweite Tageshälfte. Diese Einstellung wird unter Mac OS X in
Systemeinstellungen:Landeseinstellungen:Formate:Uhr:Zweite Tageshälfte
gemacht.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Uhrzeitsymbol für die zweite Tageshälfte, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::PM(s));
release(s);
return 0; }


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

static char* system::decimal_sep(char* s)

Dezimaltrenner (Kommazeichen). Diese Einstellung wird unter Mac OS X in
Systemeinstellungen:Landeseinstellungen:Formate:Zahlen
gemacht.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Dezimaltrenner, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(10);
showmessage(system::decimal_sep(s));
release(s);
return 0; }


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

static char* system::thousand_sep(char* s)

Trennzeichen zwischen den Tausendern, also etwa 100.000. Diese Einstellung wird unter Mac OS X in
Systemeinstellungen:Landeseinstellungen:Formate:Zahlen
gemacht.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Uhrzeitangabe, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(10);
showmessage(system::thousand_sep(s));
release(s);
return 0; }


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

static char* system::date_sep(char* s)

Nur für Mac OS X Trennzeichen zwischen Tag, Monat und Jahr in der Datumskurzform. Diese Einstellung wird unter Mac OS X in
Systemeinstellungen:Landeseinstellungen:Formate:Datum
gemacht.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Datumstrennzeichen, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(10);
showmessage(system::date_sep(s));
release(s);
return 0; }


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

static char* system::time_sep(char* s)

Nur für Mac OS X Trennzeichen Stunde, Minute und Sekunden. Diese Einstellung wird unter Mac OS X in
Systemeinstellungen:Landeseinstellungen:Formate:Uhrzeit
gemacht.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   Zeittrennzeichen, entspricht Parameter s
s String oder char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(10);
showmessage(system::time_sep(s));
release(s);
return 0; }


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

static int system::time_diff(
  char* dt1,
  char* dt2,
  int fmt)

Zeitdifferenz in Sekunden. Die Zeitangaben können in den in system::now beschriebenen Formaten angegeben werden und dürfen Datumsangaben enthalten.

Name Typ Default Beschreibung
Return int   Zeitdifferenz in Sekunden
dt1, dt2 String oder char*, String oder char* - Zeitangaben, deren Differenz berechnet werden soll.
fmt int - In welchem Format sind die beiden Zeiten gegeben? Als Formate sind alle systemunabhängigen Darstellungen aus system::now erlaubt.
#include "internal/types.h"

Der Status eines Multistates wird über einen Timer geändert. Die vergangene Zeit seit dem Timerstart wird dabei mit time_diff berechnet.

#include "internal/types.h"
#include "internal/text.h"
int gMaxLen = 1140;
int main () { char dt [512]; char now [512]; char str [512]; int sec = 0; int states = multistate::count_states (gFrame); int state = multistate::get_active_state (gFrame);
system::now (now, ddmmyyyy_hhmmss); timer::get_start (gFrame, "green-red", dt); sec = (system::time_diff (now, dt, ddmmyyyy_hhmmss));
if (sec >=>= gMaxLen) { multistate::set_active_state (gFrame, states-1); timer::stop (gFrame, "green-red"); return 0; }
state = (states * sec) / gMaxLen; multistate::set_active_state (gFrame, state);
return 0; }

v3.3 R2670, 17.10.2011
Parameter fmt seit v4.1.6 R26621

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

now

static int system::time_scan(
  char* dt1,
  int fmt,
  int* year = 0,
  int* month = 0,
  int* day = 0,
  int* hour = 0,
  int* minutes = 0,
  int* seconds = 0,
  int* milliseconds = 0)

Ermittle die Teilwerte eines Datum-Zeit-Strings.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dt1 String oder char* - Gültiger Datum-Zeit-String
fmt int - In welchem Format ist das Datum gegeben? Als Formate sind alle systemunabhängigen Darstellungen aus system::now erlaubt.
year int* 0 Jahreszahl

0 : Angabe ignorieren
month int* 0 Monat (1-12)

0 : Angabe ignorieren
day int* 0 Tag

0 : Angabe ignorieren
hours int* 0 Stunden

0 : Angabe ignorieren
minutes int* 0 Minuten

0 : Angabe ignorieren
seconds int* 0 Sekunden

0 : Angabe ignorieren
millisecoonds int* 0 Millisekunden

0 : Angabe ignorieren
#include "internal/types.h"

v4.1.7 R26836, 21. Apr 2020

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

static char* (char* s)

DEPRECATED! Standard-EMail Adresse des Benutzers. Diese Einstellung wird unter Mac OS X gewöhnlich im Standard-EMail-Programm gemacht.

Name Typ Default Beschreibung
Return char*   Email-Adresse des Benutzers
s char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::email(s));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static char* (char* s)

DEPRECATED! Standard-EMail Account des Benutzers. Diese Einstellung wird unter Mac OS X gewöhnlich im Standard-EMail-Programm gemacht.

Name Typ Default Beschreibung
Return char*   Standard-EMail Acount des Benutzers
s char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::account(s));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static char* (char* s)

DEPRECATED! Standard-Firmenangabe des Benutzers. Diese Einstellung wird unter Mac OS X gewöhnlich im Standard-EMail-Programm gemacht.

Name Typ Default Beschreibung
Return char*   Standard-Firmenangabe des Benutzers
s char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::organization(s));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static char* (char* s)

DEPRECATED! Wirklicher Name des Benutzers wie er in der Benutzerverwaltung angegeben ist.

Name Typ Default Beschreibung
Return char*   Richtiger Benutzername
s char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::realname(s));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static char* (char* s)

DEPRECATED! Benutzerunterschrift. Diese Einstellung wird unter Mac OS X gewöhnlich im Standard-EMail-Programm gemacht.

Name Typ Default Beschreibung
Return char*   Benutzerunterschrift
s char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::signature(s));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static char* (char* s)

DEPRECATED! Standard-Homepage des Benutzers

Name Typ Default Beschreibung
Return char*   Homepage des Benutzers
s char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::homepage(s));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static char* (char* s)

DEPRECATED! Standard-Downloadziel des Benutzers

Name Typ Default Beschreibung
Return char*   Downloadziel des Benutzers
s char* - Reservierter Speicher für das Ergebnis
int main()
{
    char	*s = alloc(1000);
showmessage(system::download(s));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static char* system::tcpip(char* s, int ix = 0)

Aktuelle TCP/IP Adresse des Rechners

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   TCP/IP Adresse, entsprich Parameter s
0.0.0.0 im Fehlerfall
s String oder char* - Reservierter Speicher für das Ergebnis
ix int 0 0-basierter Index der IP-Adresse, die ermittelt werden soll. Der Parameter wird nur unter Windows ausgewertet.
int main()
{
    char	*s = alloc(1000);
showmessage(system::tcpip(s, 0));
release(s);
return 0; }


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

static char* system::macid(char* s, int ix = 0)

Ermitteln der MacIDs des Rechners.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   MacID, entspricht Parameter s
"" im Fehlerfall
s String oder char* - Reservierter Speicher für das Ergebnis
ix int 0 0-basierter Index des MacID-Gerätes, dessen ID ermittelt werden soll.
int main()
{
    char	*s = alloc(1000);
showmessage(system::macid(s, 0));
release(s);
return 0; }

v3.4 R5322, 20. Mai 2014

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

static char* system::session_id(char* s)

SessionID der aktuellen PubServer-Verbindung.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter s)   SessionID der aktuellen PubServer-Verbindung
"" : Keine aktive PubServer-Verbindung
s String oder char* - Reservierter Speicher für das Ergebnis

v4.1.8 R27723, 16. Nov 2020

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

<sessionId>
comet.datapool.getSessionID

static char* (char* s)

DEPRECATED! Aktuelle TCP/IP Maske des Rechners

Name Typ Default Beschreibung
Return char*   TCP/IP Maske
0.0.0.0 im Fehlerfall
s char* - Reservierter Speicher für das Ergebnis
ix int 0 0-basierter Index der IP-Maske, die ermittelt werden soll. Der Parameter wird nur unter Windows ausgewertet.
int main()
{
    char	*s = alloc(1000);
showmessage(system::mask(s, 0));
release(s);
return 0; }


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

Die Funktion wird nicht mehr unterstützt!

static int system::pid()

Ermittle die systemweit eindeutige ProzessID des ausführenden Programmes (InDesign®, InDesign® Server, comet_pdf).

Name Typ Default Beschreibung
Return int   PID des ausführenden Programmes

v4.0.5 R19555, 12. Jul 2017

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

static int system::shiftkey()

Ist die Shift-Taste gedrückt?

Name Typ Default Beschreibung
Return int   0 nein
1 ja

Lassen sie doch einfach mal los!

int main()
{
    while (system::shiftkey ()) {}
    showmessage("aaaaah!");
return 0; }


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

altkey
cmdkey
controlkey
comet.isShiftKeyPressed

static int system::altkey()

Ist die Alt-Taste gedrückt?

Name Typ Default Beschreibung
Return int   0 nein
1 ja

Version 2.1 R1830, 1. April 2010

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

shiftkey
cmdkey
controlkey
comet.isAltKeyPressed

static int system::cmdkey()

Ist die Command-Taste gedrückt?

Name Typ Default Beschreibung
Return int   0 nein
1 ja

Version 2.1 R1830, 1. April 2010

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

shiftkey
altkey
controlkey

static int system::controlkey()

Ist die Control-Taste gedrückt?

Name Typ Default Beschreibung
Return int   0 nein
1 ja

Version 2.1 R1830, 1. April 2010

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

shiftkey
altkey
cmdkey
comet.isCtrlKeyPressed

static char* system::now(char* resultStr, int td = kShortDateTime)

Ermittle die aktuelle Systemzeit.

Die Tabelle enthält eine vollständige Liste alle verfügbaren Formatierungen für die Ausgabe:
FormatstringMacWindows
kShortDate 04.09.20094.9.2009
kLongDate 4. September 20094.9.2009
kAbbrevDate 04.09.20094.9.2009
kShortTime 08:0208:02:54
kLongTime 08:02:5408:02:54
kShortDateTime 04.09.2009 08:024.9.2009 08:02:54
kLongDateTime 4. September 2009 08:024.9.2009 08:02:54
kAbbrevDateTime 04.09.2009 08:024.9.2009 08:02:54
kShortDateLongTime 04.09.2009 08:02:544.9.2009 08:02:54
kLongDateLongTime 4. September 2009 08:02:544.9.2009 08:02:54
kAbbrevDateLongTime 04.09.2009 08:02:544.9.2009 08:02:54
Systemunabhängige Darstellungen
ddmmyyyy 04.09.2009
ddmmyyyy_hhmm 04.09.2009 08:02
ddmmyyyy_hhmmss 04.09.2009 08:02:54
dmyy 4.9.09
hhmm 08:02
hhmmss 08:02:54
hmm 8:02
hmmss 8:02:54
ab v4.1 R23901
yyyymmddhhmmss 20181022114501
xmldatetime 2018-10-22T11:45:01
iso_time_colon 11:45:01
iso_time_hyphen 11-45-01
iso_date 2018-10-22
iso_date_time_colon 2018-10-22 11:45:01
iso_date_time_hyphen 2018-10-22 11-45-01

Name Typ Default Beschreibung
Return String, char* oder int  
  • td == 111 : int, Anzahl der Mikrosekunden seit 1. Jan. 1970 in Weltzeit (UTC), also unabhängig von der aktuellen Zeitzone des Betriebssystemes
  • td == 112 : int, Anzahl der Mikrosekunden Programmstart
  • td == 113 : int, Anzahl der Millisekunden seit 1. Jan. 1970 in Weltzeit (UTC), also unabhängig von der aktuellen Zeitzone des Betriebssystemes
  • sonst : Der Eingabestring resultStr wird als Ergebnis zurückgeliefert und enthält die gewünschte Angabe
resultStr String oder char* - Reservierter Speicher für das Ergebnis

Bei td == 111 und td == 112 wird der Parameter ignoriert und darf 0 sein.
tp int kShortDateTime Formatangabe

Systemabhängige Darstellung
kShortDate (= 0)
kLongDate (= 1)
kAbbrevDate (= 2)
kShortTime (= 20)
kLongTime (= 36)
kShortDateTime (= 16)
kLongDateTime (= 17)
kAbbrevDateTime (= 18)
kShortDateLongTime (= 32)
kLongDateLongTime (= 33)
kAbbrevDateLongTime (= 34)

Systemunabhängige Darstellung
ddmmyyyy (= 96)
ddmmyyyy_hhmm (= 97)
ddmmyyyy_hhmmss (= 98)
dmyy (= 99)
hhmm (= 100)
hhmmss (= 101)
hmm (= 102)
hmmss (= 103)

ab v4.1 R23901
yyyymmddhhmmss (= 104)
xmldatetime (= 105)
iso_time_colon (= 106)
iso_time_hyphen (= 107)
iso_date (= 108)
iso_date_time_colon (= 109)
iso_date_time_hyphen (= 110)

111: [Seit v4.1.6 R25678] Anzahl der Mikrosekunden seit 1. Jan. 1970 in Weltzeit (UTC), also unabhängig von der aktuellen Zeitzone des Betriebssystemes, Rückgabe ist int. Der Parameter resultStr wird in diesem Fall ignoriert und kann mit 0 angegeben werden.

112: [Seit v4.1.6 R25678] Anzahl der Mikrosekunden Programmstart, Rückgabe ist int. Der Parameter resultStr wird in diesem Fall ignoriert und kann mit 0 angegeben werden.

113: [Seit v5.0, R36820] Anzahl der Millisekunden seit 1. Jan. 1970 in Weltzeit (UTC), also unabhängig von der aktuellen Zeitzone des Betriebssystemes, Rückgabe ist int. Der Parameter resultStr wird in diesem Fall ignoriert und kann mit 0 angegeben werden.
#include "internal/types.h"

Scriptbeispiel

#include "internal/types.h"
int main() { char dt [256]
showmessage ("%s", system::now(dt, ddmmyyyy_hhmm)); showmessage ("%d μsec", system::now(0, 112));
return 0; }

Test von system::now und system::time_diff. Achten Sie darauf, dass time_diff Strings (char* oder String) als Eingabe erwartet, system::now mit den Formaten 111 und 112 aber int-Zahlen liefert und Sie die Funktion time_diff hier gar nicht benötigen. Die Ausgabe sollte 2000NNN und 2 sein.

#include "internal/types.h"
int main() { int sec; int startTime, endTime; char startTimeStr [256], endTimeStr [256];
startTime = system::now(0, 111); system::now(startTimeStr, yyyymmddhhmmss);
system::sleep (2000); // 2 seconds
endTime = system::now(0, 111); system::now(endTimeStr, yyyymmddhhmmss);
showmessage("Mikroseconds\t: %d\nSeconds\t: %d",   endTime - startTime,   system::time_diff (endTimeStr, startTimeStr, yyyymmddhhmmss));
return 0; }

Version 1.1.6
Formate 111 und 112 seit v4.1.6 R25678 Format 113 seit v5.0, R36820

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

static int system::os()

Unter welchem Betriebssystem wird ein Skript momentan ausgeführt. Die Funktion benötigt den Include #include "internal/types.h".

Name Typ Default Beschreibung
Return int   kMacOS (= 1)
kWindows (= 2)
kLinux (= 3)
#include "internal/types.h"
int main()
{
    if (system::os() == 1)	showmessage("Sie benutzen einen Macintosh.");
    else					showmessage("Sie benutzen Windows.");
return 0; }

Version 1.1.6

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

static int system::is_server()

Wird mit InDesign® Server oder mit einem "normalen" InDesign® gearbeitet?

Name Typ Default Beschreibung
Return int   1 : InDesign® Server
0 : InDesign®
int main()
{
    if (system::is_server() == 1)	showmessage("Sie arbeiten mit InDesign® Server.");
    else							showmessage("Sie arbeiten mit InDesign® (Desktop).");
return 0; }

Version 3.0, 8. April 2009

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

static char* system::app_path(char* path)

Ermittle den aktuellen Pfad von InDesign®.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter path)   Pfad zum Programm InDesign®, entspricht Parameter path.
path String oder char* - Reservierter Speicher für das Ergebnis.
int main()
{
    char	*path = alloc(4068);
showmessage(system::app_path(path));
release(path);
return 0; }

Version 1.1.7, Januar 2005

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

xmlquery::app_path

static char* system::plugin_path(char* path)

Ermittle den aktuellen Plugin-Ordner.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter path)   Plugin-Ordner, entspricht Parameter path.
path String oder char* - Reservierter Speicher für das Ergebnis.
int main()
{
    char	*path = alloc(4068);
showmessage(system::plugin_path(path));
release(path);
return 0; }

Version 1.1.7, Januar 2005

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

static char* system::crypt(char* str, char* crpt)

Verschlüsseln eines Textes. Der Befehl ist nur für Mitarbeiter und Partner von WERK II implementiert.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter crpt)   Verschlüsselter String, entspricht Parameter crpt
str String oder char* - String der verschlüsselt werden soll.
crpt String oder char* - Reservierter Speicher für das Ergebnis. Im Fall vom Parametertyp char* muss der Ergebnisstring mindestens 256 Bytes größer sein als das Ergebnis.

Das Beispiel zeigt die Ver- und Entschlüsselung eines Strings.

int main()
{
    char	*str	= alloc(1000);
    char	*crpt	= alloc(1000);
    char	*dcrpt	= alloc(1000);
strcpy (str, "abc-äöü-ß"); system::crypt(str, crpt); system::decrypt(crpt, dcrpt); showmessage("Ursprung\t%sVerschlüsselt\t%s\nEntschlüsselt\t%s", str, crpt, dcrpt);
release(str); release(crpt); release(dcrpt);
return 0; }

Version 1.1.7, Januar 2005

priint:comet InDesign® Plug-Ins, comet_pdf

system::decrypt
xml::export_placeholder
xml::export_action

static char* system::decrypt(char* crpt, char* str)

Entschlüsseln eines geschützten Strings. Der Befehl ist nur für Mitarbeiter und Partner von WERK II implementiert.

Name Typ Default Beschreibung
Return String oder char* (Abhängig von Parameter str)   Unverschlüsselter String, entspricht Parameter str
crpt String oder char* - Verschlüsselter String.
str String oder char* - Reservierter Speicher für das Ergebnis.

Version 1.1.7, Januar 2005

priint:comet InDesign® Plug-Ins, comet_pdf

system::crypt
xml::export_placeholder
xml::export_action

static int system::oem(char* type, char* label)

Anpassen der Beschriftungen der About-Dialoge.

Zum Anpassen der Firmenlogos wenden Sie sich bitte an unseren Support.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
type String oder char* - Welcher Text soll geändert werden?

"address" : Ändere die Adressangabe im Bestell- und in den Aboutdialogen.
"company" : Ändere den Firmennamen, der in den Dialogen der Testphase gezeigt wird, (seit R 250).
"contacts" : Ändere die Kontakdaten der Dialoge der Testphase, (seit R 250).
label String oder char* - Einzeiliger neuer Text

Version 1.2, February 2005

priint:comet InDesign® Plug-Ins, comet_pdf

static int system::set_docwatch(int state = 1)

Aktiviere/Deaktiviere die Dokumentbeobachtung. Bei aktivierter Dokumentbeobachtung wird versucht, die Panelstatements der Dokumentbeobachtung zu laden und auszuführen.

Die Dokumentbeobachtung wird beim Trennen der Datenverbindung (Datenbank-Logout, SOAP-Logout, XML-Ordner ändern) automatisch deaktiviert. Die Anweisung sollte im Login-Skript der Datenverbindung gemacht werden.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
state int 1 0 : Aus
1 : An

Revision 117 (18. Jan. 2006)

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

get_docwatch
comet.prefs.setDocWatch

static int system::get_docwatch()

Hole den aktuellen Status der Dokumentbeobachtung.

Name Typ Default Beschreibung
Return int   0 : deaktiviert
1 : aktiviert

Revision 117 (18. Jan. 2006)

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

set_docwatch
comet.prefs.getDocWatch

static char* system::revision()

Ermittle die aktuelle Revision der Plugins. Der Ergebnisstring darf nicht verändert werden.

Name Typ Default Beschreibung
Return char*   Revision der aktuellen Plugins.

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

Zeige die aktuelle Revision.

int main ()
{
    showmessage (system::revision ());
    return 0;
}

Bestimme die aktuelle Revisionsnummer.

int gRev = 0;
int main () { gRev = val (system::revision ()); showmessage ("%d", gRev);
return 0; }

Revision 166 (25. Aug. 2006)

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

comet.getRevision

static char* system::comet_version()

Ermittle die aktuelle Version der Plugins. Der Ergebnisstring darf nicht verändert werden.

Name Typ Default Beschreibung
Return char*   Version der aktuellen Plugins.

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.

Beispiel für die Anzeige der aktuellen Umgebung.

int main ()
{
    showmessage ("Comet %s R%s, InDesign® CS%d",
     	system::comet_version (),
     	system::revision (),
     	system::version ()-2); // Versionsnummer von ID ist CS-Version+2
return 0; }

Die Funktion kann auch verwendet werden, um sicherzustellen, dass eine Funktion, die erst in einer höheren Comet-Version implementiert wurde, nicht aufgerufen wird. Hintergrund ist, dass cscript eine sog. Interpreter-Sprache ist und Funktionen erst zur Laufzeit benötigt werden. Nicht besuchte Zweige von if-Anweisungen können dabei durchaus Aufrufe enthalten, die gar nicht implementiert sind. Hier ein Beispiel. Die Funktion erst_in_R1234_Comet_32_implementiert haben Sie erst für R1881, Comet 3.2 implementiert, wollen das Skript aber auch mit anderen Plugins verwenden:

int  gMinRevision = 1881;
int main () { if (val (system::revision ()) >= gMinRevision) { if (fval (system::comet_version ()) > 3.1) { erst_in_R1881_Comet_32_implementiert ("aaa"); } }
showmessage ("Wir sind vorbereitet!"); return 0; }

Comet 2.1, R1946, 16. Juni 2010

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

comet.getVersion

static int system::placeholderversion(ItemRef docRef = 0)

Ermittle die Version der Platzhalter eines Dokumentes oder der Plugins.

Name Typ Default Beschreibung
Return int   Platzhalterversion.
docRef ItemRef 0 Welche Platzhalterversion soll ermittelt werden?
-1 : Platzhalterversion der Plugins
0 : aktuelles Dokument
sonst : Gültiger Dokumentverweis, dessen Platzhalterversion erfragt wird

Zeige die aktuelle Revisionnummer.

int main ()
{
    showmessage ("Plugins : %d\nDokument : %d",
    system::placeholderversion (-1),
    system::placeholderversion ());
    return 0;
}

Revision 166 (25. Aug. 2006)

priint:comet InDesign® Plug-Ins, comet_pdf

static int system::version(int* hostApp = 0)

Ermittle den Typ und die Versionsnummer des Programmes, das das Skript ausführt.

Name Typ Default Beschreibung
Return int   InDesign® (Major)-Version

12 : InDesign® CC 2017
13 : InDesign® CC 2018
14 : InDesign® CC 2019
15 : InDesign® 2020
16 : InDesign® 2021
17 : InDesign® 2022
18 : InDesign® 2023
...

24 : Illustrator® 2020
25 : Illustrator® 2021
26 : Illustrator® 2022
27 : Illustrator® 2023
...

-1 : comet_pdf
hostApp int* 0 Ist der Parameter != 0, bekommt er folgenden Wert für den ausführenden Programmtyp:

0 = InDesign®
1 = InDesign® Server
2 = comet_pdf
3 = Illustrator®
int main ()
{
    int 	app;
    int 	version	= system::version (&app);
    char	cc		[10];
if (app == 3) { showmessage ("Illustrator %d", 1996 + version); } else if (app == 2) { showmessage ("comet_pdf"); } else { if (version < 15) strcpy (cc, " CC"); else strcpy (cc, "");
if (app == 1) showmessage ("InDesign%s Server %d", cc, 2005 + version); else showmessage ("InDesign%s %d", cc, 2005 + version); }
return 0; }

Version 1.4.2, R 526, 14. Dez. 2007
Werte 2 und 3 für hostApp seit v4.2 R32023

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

language

static int system::language()

Sprachversion des aktuellen InDesigns®.

Name Typ Default Beschreibung
Return int   Sprach-Schlüssel

0 : Englisch (US)
1 : Englisch (UK)
2 : Deutsch
3: Französisch
4 : Japanisch
5 : Spanisch
6 : Portugiesisch
7 : Schwedisch
8 . Dänisch
9 : Holländisch
10 : Italienisch
11 : Norwegisch
12 : Finnisch
13 : Griechisch
14 : Tschechisch
15 : Polnisch
16 : Kroatisch
17 : Ungarisch
18 : Russisch
19 : Slowakisch
20 : Türkisch
21 : Rumänisch
22 : Bulgarisch
23 : Belorussisch
24 : Estnisch
25 : Lettisch
25 : Litauisch
27 : Slowenisch
28 : Ukrainisch
29 : Hebräisch
30 : Arabisch
31 : Koreanisch
32 : Chinesisch
33 : Chinesisch (Taiwan)
34 : Tamil
35 : Thai
36 : Vietnamesisch
37 : Albanisch (nur Windows)
int main ()
{
    int isServer;
showmessage ("IDVersion : %d\rServer : %d\rSprache : %d",   system::version (&isServer),   isServer,   system::language ());
return 0; }

Version 1.4.2, R 526, 14. Dec. 2007

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

static int system::sleep(long time_ms)

Unterbreche InDesign®.

Name Typ Default Beschreibung
time_ms int - Anzahl Millisekunden, die gewartet werden soll

Version 1.4.2, R 603

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

static int system::suppress_layout_rules(int what = 0)

Unterdrücke die Ausführung von Gestaltungsregeln für festgelegte Situationen. Die Anweisung gilt global und bis zur Freigabe durch wakeup_layoutrules oder bis zum Trennen der aktuellen Datenverbindung. Sie sollten streng darauf achten, Regeln, die Sie abgeschaltet haben, auch wieder einzuschalten. Aufbau und Aktualisierung ihrer Dokumente können sonst unter Umständen nicht mehr richtig ausgeführt werden.

Bitte beachten Sie, diese Funktion legt fest, in welchen Situationen Gestaltungsregeln unterdrückt werden sollen und gilt für alle Gestaltungsregeln. Um einzelne Gestaltungsregeln abzuschalten oder nur exclusiv zu erlauben verwenden Sie die Funktionen suppress_layout_rule (ohne s am Ende) bzw. exclusive_layout_rule.

Name Typ Default Beschreibung
Return int   Bisher aktivierte Situationen für Gestaltungsregeln
what int 0 Welche Art Gestaltungregeln wollen Sie nicht ausführen? Bilden Sie eine Summe aus den den folgenden Werten.

Icon Wert Situation
0 Alle
2 nach Laden
1 nach Neuanlage
32 nach Aufbau
4 Seitenreorganisation
8 nach Größen- und Positionsänderungen

Version 3.1, R1550, 18. Sept. 2009

priint:comet InDesign® Plug-Ins, comet_pdf

wakeup_layout_rules
frame::apply_layout_rules
itemlist::apply_layout_rules
comet.prefs.getLayoutRulesState
comet.prefs.setLayoutRulesState

static int system::wakeup_layout_rules(int what = 0xFFFFFFFF)

Erlaube die Ausführung von Gestaltungsregeln für festgelegte Situationen (wieder). Sie sollten damit extrem vorsichtig sein! Schalten Sie nach Möglichkeit nicht mehr ein, als Ihnen von suppress_layout_rules angegeben wurde. Die Plugins schalten z.B. beim Produktaufbau die Größen-und Positionsregeln ab. Schalten Sie diese Regeln ein, wird der Aufbau möglicherweise sehr langsam und kann schnell zum Speicherüberlauf führen.

Bitte beachten Sie, dass diese Funktion Sperren festgelegter Ausführsituationen wieder aufhebt. Auf individuelle Sperrungen oder Freigaben von Gestaltungsregeln mit Hilfe der Funktionen suppress_layout_rule (ohne s am Ende) bzw. exclusive_layout_rule hat sie keinen Einfluß.

Name Typ Default Beschreibung
Return int   Aktivierte Gestaltungsregeln
what int 0 Welche Art Gestaltungregeln wollen Sie wieder ausführen lassen? Bilden Sie eine Summe aus den den folgenden Werten.

Icon Wert Situation
0 alle
2 nach Laden
1 nach Neuanlage
32 nach Aufbau
4 Seitenreorganisation
8 nach Größen- und Positionsänderungen

Version 3.1, R1550, 18. Sept. 2009

priint:comet InDesign® Plug-Ins, comet_pdf

frame::apply_layout_rules
itemlist::apply_layout_rules
comet.prefs.getLayoutRulesState
comet.prefs.setLayoutRulesState

static int system::suppress_layout_rule(int ruleID = 0, int doSuppress = 0)

Unterdrücken/Reaktivieren spezifischer Gestaltungsregeln. Das Abschalten einer Gestaltungsregel gilt global und bis zur erneuten Freigabe oder bis zum Trennen der aktuellen Datenverbindung. Die IDs der Standardregeln finden Sie hier.

Bedingungen können nicht deaktiviert werden.

Gestaltungsregeln können mit suppress_layout_rules (mit s am Ende) zusätzlich für festegelegte Situationen gesperrt werden. Die erneute Freigabe einer Gestaltungsregel mit doSuppress = 0 hat auf die generelle Sperre der Situation keinen Einfluß!

Beachten Sie bitte auch, dass durch das Reaktvieren einer Regel die Regel nicht sofort ausgeführt wird. Der Aufruf bewirkt lediglich, dass die Regel beim nächsten Ausführen der Gestaltungsregeln wieder ausgeführt werden darf.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
ruleID int 0 ID der Gestaltungsregel

0 : Alle stillgelegten Regeln wieder aktivieren, der Parameter doSuppress wird dabei ignoriert.
doSuppress int 0 0 : Regel wieder aktivieren
1 : Ausführung der Gestaltugsregel unterdrücken

v4.1.8, R28514, 4. Mai 2021

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

suppress_layout_rules
wakeup_layout_rules
frame::apply_layout_rules
itemlist::apply_layout_rules
comet.prefs.getLayoutRuleState
comet.prefs.setLayoutRuleState

static int system::exclusive_layout_rule(int ruleID = 0, int doSuppress = 1)

Einschränken der Gestaltungsregeln auf festgelegte exklusive Regeln. Ist mind. eine Gestaltungregel als exklusiv markiert, werden ausschließlich als exklusiv markierte Regeln ausgeführt, alle anderen Regeln werden ignoriert. Die Exklusivität einer Gestaltungsregel gilt global und bis zum Entzug der Exklusivität oder bis zum Trennen der aktuellen Datenverbindung. Die IDs der Standardregeln finden Sie hier.

Bedingungen können nicht als exklusiv werden.

Gestaltungsregeln können mit suppress_layout_rules (mit s am Ende) für festegelegte Situationen gesperrt werden. Die Sperrung der Situation gilt auch für exklusive Regeln und der Entzug der Exklusivität hat keinen Einfluß auf die Sperrung der Situation!

Beachten Sie bitte auch, dass durch das Erteilen der Exklusivität die Regel nicht sofort ausgeführt wird. Der Aufruf bewirkt lediglich, dass beim nächsten Ausführen von Gestaltungsregeln alle nicht-exklusiven Regeln unterdrückt werden werden.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
ruleID int 0 ID der Gestaltungsregel

0 : Alle Exklusivrechte entziehen, der Parameter doInclude wird dabei ignoriert. Durch den Entzug sämtlicher Exklusivrechte werden alle mit suppress_layout_rule unterdrückte Regeln weiter ignoriert!
doInclude int 0 0 : Exklusivität wieder entziehen. Hat danach keine Regel mehr Exklusivrechte, werden alle mit suppress_layout_rule unterdrückten Regeln weiter ignoriert!

1 : Regel als exklusiv markieren.

v4.2 R31360, 12. Aug 2022

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

suppress_layout_rules
wakeup_layout_rules
suppress_layout_rule
frame::apply_layout_rules
itemlist::apply_layout_rules
comet.prefs.getLayoutRuleState
comet.prefs.setLayoutRuleState

static int system::commit_global(char* name = 0)

Schreibe den Wert einer globalen Variable zurück in den Datenpool.

Globale Variablen können über die Palette Einstellungen angelegt, geändert und gelöscht werden.

Von PubServer-Verbindungen werden globale Varirablen nicht unterstützt.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
name String oder char* - Schreibe den aktuellen Wert dieser Variablen zurück in den Datenpool. Sie geben an dieser Stelle den Namen der Variablen an, nicht die Variable selbst. Wenn Sie also eine definierte Variable gCounter haben, geben Sie hier "gCounter" an.

leer oder "" : Sichere die Werte aller globalen Variablen

Ändere den Wert von gInt auf 123.

int main ()
{
    gInt = 123;
    system::commit_global ("gInt");
return 0; }

Version 3.1, R1555, 22. Sept. 2009

priint:comet InDesign® Plug-Ins, comet_pdf

static int system::reload_globals()

Neuladen aller globalen Variablen. Aktuelle Änderungen an globalen Variablen gehen dadurch verloren! Zum Sichern lokaler Änderungen globaler Variablen verwenden Sie system::commit_global.

Globale Variablen können über die Palette Einstellungen angelegt, geändert und gelöscht werden.

Von PubServer-Verbindungen werden globale Varirablen nicht unterstützt.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

Version 3.1, R1760, 23. Feb. 2010

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

static int system::send_mail(
  char* to,
  char* subject,
  ...)

Senden einer eMail.

Die Funktion ist ein nice to have: Bei Problemen helfen wir Ihnen gerne, die Funktion ist aber kein Supportbestandteil.

Am Mac wird das Versenden der Nachrichten mit dem Standard-Dienst Postfix gemacht. Dazu sind einige Konfigurationen nötig. Für die Konfiguration sind admin-Rechte nötig!

  1. Öffnen Sie das Programm Terminal und gehen Sie in den Ordner /etc/postfix:

    cd /etc/postfix

  2. Öffnen Sie die Datei /etc/postfix/main.cf. Fügen Sie an das Ende der Datei die fogenden Zeilen an und ersetzen Sie dabei your_smtp durch Ihren Mail-Ausgangsserver, z.B. smpt.casagrande.de. Die eckigen Klammern bleiben stehen!

    Die Absenderadresse der Nachrichten wird zusammengesetzt aus Ihrem Loginnamen und der Angabe in myorigin: Mein Benutzername ist paul. Mit myorigin = your_side.de werden meine Mails also mit dem Absender paul@your_side.de verschickt.

    Wenn Sie in Erfahrung bringen, wie man auch den Namen (oben paul) ändern kann, freuen wir uns über einen Hinweis!

    relayhost = [your_smtp]
    myorigin = your_mail_domain
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/smtp_sasl_passwords
    smtp_sasl_security_options = noanonymous
    smtp_use_tls = yes
    

    Die eckigen Klammern um den Ausgangsserver relayhost sind wichtig.

  3. Erzeugen Sie die Datei /etc/postfix/smtp_sasl_passwords mit folgendem Inhalt. Ersetzen Sie dabei wieder \span[src]{your_smtp durch Ihren Mail-Ausgangsserver, z.B. smpt.casagrande.de. your_mail_address und your_password werden durch Ihre Mailadresse und das Passwort für den angegebenen Ausgangsserver ersetzt, z.B.paul@casagrande.de:verrat_ich_N1cht.

    [your_smtp] your_mail_address:your_password

    Setzen Sie Eigentümer und Rechte für die Datei und initialisieren Sie die Postfix lookup table:

    sudo chown root smtp_sasl_passwords
    sudo chmod 411 smtp_sasl_passwords
    sudo postmap smtp_sasl_passwords
    
  4. Starten Sie den Postfix-Mail-Dienst neu:

    sudo Postfix stop
    sudo Postfix start
    
  5. Senden Sie sich zum Test jetzt selbst eine Nachricht.your_mail_address ersetzen Sie wieder durch Ihre Mailadresse.

    date | sendmail -f your_mail_address your_mail_address

    In Ihrem Mail-Eingangsordner sollte nach kurzer Zeit eine Nachricht mit der aktuellen Zeitangabe von Ihnen selbst ankommen.

Unter Windows ist die Konfiguration wesentlich einfacher : Sie müssen gar nichts tun. Die nötigen Angaben zum Account werden der Funktion als Parameter mitgegeben. Die Angaben zum Mail-Account können aber auch lokal in den Logins Ihrer Comet-Plugins gespeichert sein:

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
to String oder char* - Vollständige Adresse des Empfängers
subject String oder char* - Betreff der Nachricht, darf 0 oder "" sein.
type, content int, String oder char* -,- Liste von (Typ, Inhalt)-Paaren, aus denen die Nachricht zusammengesetzt wird. Die Inhalte werden dabei direkt aneinandergefügt. Die Angaben zum Mail-Account (kSMTPServer, ...) werden am Mac ignoriert.

kBody Text als Plaintext oder HTML

kInline : Vollständiger Pfad einer Datei. Unter Mac wird die Datei in den laufenden Text der Nachricht eingefügt. Unter Windows wird die Datei als normales Attachment an die Nachricht angehangen.

kAttachment Vollständiger Pfad einer Anlage

kSMTPServer nur Windows SMTP-Ausgangsserver
kLoginName nur Windows Benutzername am SMTP
kPassword nur Windows Passwort
kSenderName nur Windows Name des Senders. Der Name wird nur zur Anzeige im Mail-Programm verwendet.
kReplyTo nur Windows Absender- und Antwortadresse

kMailAccount nur Windows Benutze diesen Mail-Account, siehe oben
#include "internal/types.h"

Hier ein Beispiel:

system::send_mail (
 			"paul@priint.com",
 			"Hier die Dokumente",
 			kMailAccount, "emile",
 			kBody, "Hallo Paul!\nHier die gewünschten Dateien",
 			kInline, "$DESKTOP/Bilder/buffer.jpg",
 			kInline, "$DESKTOP/Bilder/docu.pdf",
 			kBody, "\n\nEs war mir eine Freude!");

v3.3.1 R3121, 8. Okt. 2012
Windows support seit v4.0.5 R15678, 13. Feb 2017

priint:comet InDesign® Plug-Ins, comet_pdf

static int system::font_info(
  char* platform_name,
  int style,
  char* postscript_name,
  float* asc,
  float* desc)

Informationen zu einer gegebenen Schrift ermitteln. Der Aufruf wird zum Ermitteln von Schrifteigenschaften für comet_pdf benötigt. Die Funktion findet zu einem gegebenen Schriftnamen den Namen der zugehörigen Postscript-Schrift und umgekehrt.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
platform_name String oder char* - Name einer in InDesign® verwendeten Schrift. Der Zusatz "Regular" muß weggelassen werden. Andere Stil-Zusätze werden durch Blank getrennt an den Namen angefügt. Ist der Name leer, enthält die Variable nach dem erfolgreichen Ausführen der Funktion den InDesign®-Namen der Postscriptschrift aus postscript_name.
style int - Schriftstil

0 : normal
1 : italic
2 : bold
3 : bold italic
4 : small caps
4 : caps (Ja, dieser Fehler ist so in der InDesign®-API enthalten.)

Sie können hier in den meisten Fällen 0 angeben und den Schriftschnitt im Namen mitgeben.
postscript_name String oder char* - Postscript-Name eines Fonts. Ist die Angabe leer, enthält der Parameter nach erfolgreicher Ausführung den Postscriptnamen der in platform_name gegebenen Schrift. Ist die Angabe nicht leer, wird platform_name mit dem InDesign®-Schriftnamen gefüllt von postscript_name gefüllt.
asc float* 0 Ascender der Schrift bei Größe 10 Pt.
desc float* 0 Descender der Schrift bei Größe 10 Pt.

Ermittle die Schrift an der aktuellen Textauswahl und von dieser Schrift den Postscriptnamen, Ascender und Descender. Die erhaltenen Daten werden in fontnames.xml-Syntax in einem Dialog gezeigt und können von dort kopiert werden.

int main ()
{
    int				start;
    ItemRef			fr		= item::alloc ();
    char			fname	[512];
    char			font	[512];
    char			style	[512];
    char			idname	[512];
    char			psname	[512];
    float			asc		= 0.0;
    float			desc	= 0.0;
    char			s		[4096];
    char			s1		[4096];
    char			s2		[4096];
if (gRun > 1) return 0;
strcpy (font, ""); if (textmodel::selection (&start, 0, fr) == 0 && start >= 0) { textmodel::get_font (fr, start, font, style); } if (strlen (font) == 0) { beep (); return 0; }
strcpy (fname, font); if (strcmp (style, "Regular")) { strcat (fname, " "); strcat (fname, style); } asc = 0.0; system::font_info (fname, 0, psname, &asc, &desc);
sprintf (s, "<fontname id=\"%s %s\" ps=\"%s\"/>", font, style, psname); strcpy (s1, s); strcat (s1, "n"); sprintf (s, "<fontname id=\"%s %s\" ps=\"%s\" asc=\"%f\" desc=\"%f\"/>", font, style, psname, asc, desc); strcat (s1, s); sprintf (s2, "InDesign®-Name\t: %s\nPostscript-Name\t: %s\nAscend\t\t: %f\nDescend\t\t: %f", fname, psname, asc, desc); askstring2 (   s1, "XML", 1,   s2, "Font", 1,   0, "", "",   0, "", 0,   "fontnames.xml");
return 0; }

v3.4 R7740, 31. Mar 2015

priint:comet InDesign® Plug-Ins, comet_pdf

static int system::cmd(char* cmd_string, int createProcess = 0)

Ausführen eines Shell-Kommandos.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
cmd_string String oder char* - Gültige Anweisung für Terminal (Mac) bzw. Eingabeaufforderung (Windows). Beachten Sie bitte, dass in diesen Aufrufen Environment-Variablen der Shell nicht notwendigerweise definiert sein müssen.
createProcess int 0 Der Parameter hat nur unter Windows eine Bedeutung.

Zur Ausführung der Anweisungen wird unter Windows eine neue Konsole gestartet, deren Fenster kurz sichtbar ist. Setzen Sie createProcess auf den Wert 1, um dieses Fenster zu unterdrücken.

1 : Starte einen neuen Prozess. Dadurch wird keine Konsole geöffnet. Achtung: Zusammengesetzte Anweiungen mit Redirects (>, <) und/oder Pipes (|) können hier nicht ausgeführt werden und erzeugen den Fehler 1290 (cannotCreateProcessErr).

sonst : Anweisung in einer eigenen Konsole ausführen

Kopiere die ID1 des aktuellen Platzhalters in die Zwischenablage.

int main ()
{
    int 			sel;
    int 			id;
    char 			cmd [5000];
textmodel::selection (&sel); if (sel >= 0) { id = placeholder::get_value (gFrame, "ID", sel); if (system::os () == 1) sprintf (cmd, "echo \"%d\\c \" | pbcopy", id); else sprintf (cmd, "echo | set /P=\"%d\" | clip", id); } system::cmd (cmd);
return 0; }

Parameter createProcess since v4.0.5 R14550, 18. Jan 2017
v4.0.5, 1. Dez 2015

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

static char* system::key_value(
  char* key,
  ItemRef frameRef = 0,
  int startPos = 0,
  int len = -1)

Erfrage den Wert eines Schlüsselwortes. In Platzhalterskripten mit direkten Anweisungen und in Panelstatements sind eine Reihe von <Tags> definiert, die vor der Ausführung der Anweisung durch ihre aktuellen Werte ersetzt werden. Eine vollständige Liste dieser Tags finden Sie hier. . In Skripten können Sie diese Werte auf verschiedene Weise direkt erfragen. Zur Vereinfachung bieten wir hier eine Funktion an, mit der die Werte einheitlich ermittelt werden können.

Name Typ Default Beschreibung
Return char*   Zugehöriger Wert.

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.

key String oder char* - Name des Schlüssels, siehe hier

Die Schüsselnamen werden ohne spitze Klammern angegeben.
frameRef ItemRef 0 Zugehöriger Rahmen. Für rahmen-unabhängige Schlüssel wie "now" oder "user" wird die Angabe nicht benötigt.

0 : aktueller Rahmen
startPos int 0 Erstes Zeichen (nicht Byte) im Text. Die Angabe wird nur für textbezogene Schlüssel wie "text" benötigt.
len int kLen Textlänge in Zeichen (nicht in Bytes). Die Angabe wird nur für textbezogene Schlüssel wie "text" benötigt.
#include "internal/text.h"

v4.0.5, 14. Dez 2016

priint:comet InDesign® Plug-Ins, comet_pdf

static int system::used_memory()

Aktuell verwendeter physikalischer Speicher des Programmes.

Internal use only  Die Funktion ist nur für den internen Gebrauch bei WERK 2 bestimmt.

Name Typ Default Beschreibung
Return int   Benutzter Speicher in Bytes von InDesign® resp. comet_pdf.
showmessage ("RAM : %2.f MB", ((float)system::used_memory ()/1024.0)/10.24.0);

v4.0.5, 10. Apr 2017

priint:comet InDesign® Plug-Ins, comet_pdf

static int system::fontdb_count()

Anzahl der Einträge in der internen Font-Datenbank. Die Font-DB wird wird zur korrekten Auflösung von Bold und Italic bei der Konvertierung von HTML in TaggedText benötigt. Weitere Informationen zur Font-DB finden Sie hier.

Name Typ Default Beschreibung
Return int   Anzahl der in Einträge der Font-DB

Das Skript schreibt alle Einträge der Font-DB ins aktuelle Logfile. Wahlweise können dabei nur die explizit definierten Einträge oder auch alle daraus ermittelten automatischen Zuordungen ausgegeben werden.

int w_stretch (int s, char* fontname, int * done)
{
    if (!(*done))
    {
        if (fontname)	wlog ("", "#   Stretch %d '%s'\n", s, fontname);
        else			wlog ("", "#   Stretch %d\n", s);
    }
    *done = 1;
}
int main () { int fcount = system::fontdb_count (); int f, w, s; // font, weight, stretch int pr, pi; // priority (explicitly defined or 'autofill') char fontname[512], regular[255], italic[255]; int shift = system::shiftkey (); int stretch_wrote;
wlog ("", "# Font DB : %d fonts registered (%d mappings!).\n", fcount, fcount*81*2);
for (f = 0; f < fcount; f++) { // Get the font family name strcpy (fontname, system::fontdb_get_fontname (f)); wlog ("", "# %d. Font '%s'\n", f, fontname);
// for all stretches for (s = -4; s <= 4; s++) { stretch_wrote = 0;
// for all weights for (w = 0; w <= 8; w++) { strcpy (regular, system::fontdb_by_index (f, w, s, 0, &pr)); strcpy (italic, system::fontdb_by_index (f, w, s, 1, &pi));
if (!shift) { // Write explicitly defined entries only if (pr) { w_stretch (s, 0, &stretch_wrote); wlog ("", "# %d N '%s'\n", (w+1)*100, regular); } if (pi) { w_stretch (s, fontname, &stretch_wrote); wlog ("", "# %d I '%s'\n", (w+1)*100, italic); } } else { // Write auto-filled entries too w_stretch (s, fontname, &stretch_wrote); if (pr) wlog ("", "# %d N+ '%s'\n", (w+1)*100, regular); else wlog ("", "# %d N- '%s'\n", (w+1)*100, regular); if (pi) wlog ("", "# %d I+ '%s'\n", (w+1)*100, italic); else wlog ("", "# %d I- '%s'\n", (w+1)*100, italic); } } } } return 0; }

v4.1 R23100, 18. Mai 2017

priint:comet InDesign® Plug-Ins, comet_pdf

fontDB
fontdb_get_fontname
fontdb_by_index
fontdb_by_name
fontdb_mark_missing

char* system::fontdb_get_fontname(int nth)

Ermittle den Fontnamen des n-ten Eintrages der Font-DB.

Name Typ Default Beschreibung
Return char*   Fontname des n-ten Eintrages der Font-DB
"" : Im Fehlerfall

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.

nth int - 0-basierter Index

v4.1 R23100, 18. Mai 2017

priint:comet InDesign® Plug-Ins, comet_pdf

fontDB
fontdb_count
fontdb_by_index
fontdb_by_name
fontdb_mark_missing

char* system::fontdb_by_index(
  int nth,
  int weight,
  int stretch,
  int italic,
  int* priority)

Ermittle den Schriftschnitt, den eine Schriftfamilie bei gegebener Schriftstärke und Laufweite für normale und geneigte (italic) Schriften verwenden kann. Die Schriftfamilie wird dabei über den Index in der Font-DB festgelegt.

Name Typ Default Beschreibung
Return char*   Schriftschnitt aus der Font-DB
"" : Im Fehlerfall

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.

nth int - 0-based index in Font-DB.
weight int - 0 ... 8

0 : font-weight:100;
1 : font-weight:200;
:
8 : font-weight:900;
stretch int - -4 ... 4

-4 : font-stretch:ultra-condensed;
-3 : font-stretch:extra-condensed;
-2 : font-stretch:condensed;
-1 : font-stretch:semi-condensed;
0 : font-stretch:normal;
1 : font-stretch:semi-expanded;
2 : font-stretch:expanded;
3 : font-stretch:extra-expanded;
4 : font-stretch:ultra-expanded;
italic int - 0 : normal
1 : italic
priority int* 0 Rückgabewert:

1 : explizit definiert
0 : automatisch ausgefüllt aus den explizit definierten Werten des Eintrages

Die Angabe darf 0 oder leer sein.

v4.1 R23100, 18. Mai 2017

priint:comet InDesign® Plug-Ins, comet_pdf

fontDB
fontdb_count
fontdb_by_name
fontdb_mark_missing

char* system::fontdb_by_name(
  char* fontname,
  int weight,
  int stretch,
  int italic,
  int* priority)

Ermittle den Schriftschnitt, den eine Schriftfamilie bei gegebener Striftstärke und Laufweite für normale und geneigte (italic) Schriften verwenden kann. Die Schriftfamilie wird ihren Namen in der Font-DB festgelegt.

Name Typ Default Beschreibung
Return char*   Schriftschnitt aus der Font-DB
"" : Im Fehlerfall

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.

fontname char* oder String - Schriftname eines Eintrages der Font-DB.
weight int - 0 ... 8

0 : font-weight:100;
1 : font-weight:200;
:
8 : font-weight:900;
stretch int - -4 ... 4

-4 : font-stretch:ultra-condensed;
-3 : font-stretch:extra-condensed;
-2 : font-stretch:condensed;
-1 : font-stretch:semi-condensed;
0 : font-stretch:normal;
1 : font-stretch:semi-expanded;
2 : font-stretch:expanded;
3 : font-stretch:extra-expanded;
4 : font-stretch:ultra-expanded;
italic int - 0 : normal
1 : italic
priority int* 0 Rückgabewert:

1 : explizit definiert
0 : automatisch ausgefüllt aus den explizit definierten Werten des Eintrages

Die Angabe darf 0 oder leer sein.

v4.1 R23100, 18. Mai 2017

priint:comet InDesign® Plug-Ins, comet_pdf

fontDB
fontdb_count
fontdb_by_name

int system::fontdb_mark_missing(
  int type,
  int red,
  int green,
  int blue,
  float tint)

Markieren von Text, für den die Font-DB keinen geeigneten Schriftstil finden kann. Wir bieten drei Möglichkeiten an, mit denen Text, zu dem kein passender Schriftschnitt gefunden werden, markiert werden kann:

Die Einstellung gilt global für alle Dokumente. Aktivierte Markierungen werden beim Trennen der Datenverbindung wieder abgeschaltet.

Achtung: Die Markierungen müssen manuell wieder entfernt werden!

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
⇨ Keine Markierung
type int - 0 : Keine Markierung
⇨ Farbton
type int - 1 : Farbton
tint int - Wert des Farbtons im Bereich 0.0 (unsichtbar) - 100.0
⇨ Farbe und Farbton
type int - 2 : Farbe und Farbton
red int - Rotanteil der Farbe (0-255)
green int - Grünanteil der Farbe (0-255)
blue int - Blauanteil der Farbe (0-255)
tint int - Wert des Farbtons im Bereich 0.0 (unsichtbar) - 100.0
⇨ Farbband
type int - 3 : Farbband


Unter comet_pdf sind die schrägen grauen Linien weggelassen.

v4.1 R23100, 18. Mai 2017

priint:comet InDesign® Plug-Ins, comet_pdf

fontDB
fontdb_count
fontdb_by_name
fontdb_by_index

char* system::fontdb_check(int what)

überprüfen der Schrift-Konfiguration. Die Funktion überprüft, ob alle aktuell auf Ihrem Rechner installierten Schriften in der Font-DB definiert sind.

Die Funktion prüft die Existenz der Einträge, nicht deren Richtigkeit.

Für die Vervollständigung einer comet_pdf Installation müssen Sie zuerst die Definition der Schriftnamen anpassen (what=2). Danach können Sie in einem weiteren Schritt die font-DB anpassen. Alternativ können Sie dabei auf diese Skript-Funktion verzichten und comet_pdf mit der Option --checkfonts N aufrufen.

Name Typ Default Beschreibung
Return char*   String mit den fehlenden Defitnionen
"" : Im Fehlerfall

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.

what int 4 Art und Format der überprüfung. Die Ergebnisse müssen vor der weiteren Verwendung unbedingt auf inhaltliche Richtigkeit überprüft werden!

1 : nur comet_pdf Fehlende Einträge für die übersetzung der InDesign-Fontnamen in PDF. Die Ausgabe erfolgt als C++-Text. Wenn Sie der Meinung sind, dass diese Schriften unbedingt in den Standard eingebaut werden sollen, senden Sie die Ausgabe mit einer kurzen Bemerkung direkt an uns.

2 : nur comet_pdf Fehlende Einträge für die übersetzung der InDesign-Fontnamen in PDF. Die Ausgabe erfolgt in XML und kann direkt in Ihre fontnames~.xml eingesetzt werden.

3 : Fehlende Definitionen der Font-DB. Die Ausgabe erfolgt als C++-Text. Wenn Sie der Meinung sind, dass diese Schriften unbedingt in den Standard eingebaut werden sollen, senden Sie die Ausgabe mit einer kurzen Bemerkung direkt an uns.

4 : Fehlende Definitionen der Font-DB. Die Ausgabe erfolgt in XML und kann direkt in Ihre font_db.xml eingesetzt werden.
int main ()
{
    wlog ("", "%s", system::fontdb_check ());
return 0; }

v4.1.7 R26700, 5. Mai 2020

priint:comet InDesign® Plug-Ins, comet_pdf

int main ()
{
    char	s2 [256];
    char	s3 [256];
    showmessage ("%s@%s",
     	system::login (s2),
     	system::host (s3));
}

Seit
Plugin Version 1.0.10
Letzte Änderung
30.07.2025, 07:35 Uhr
Autor
Paul Seidel

Alphabetic index HTML hierarchy of classes or Java