Systeminformationen
Ein allgemeines Beispiel zur Verwendung der Klasse system finden sie hier.
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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. |
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; }
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 |
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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 |
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; }
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 |
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; }
static int system::altkey()
Ist die Alt-Taste gedrückt?
Name | Typ | Default | Beschreibung |
Return | int | 0 nein 1 ja |
static int system::cmdkey()
Ist die Command-Taste gedrückt?
Name | Typ | Default | Beschreibung |
Return | int | 0 nein 1 ja |
static int system::controlkey()
Ist die Control-Taste gedrückt?
Name | Typ | Default | Beschreibung |
Return | int | 0 nein 1 ja |
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:
Formatstring | Mac | Windows |
kShortDate | 04.09.2009 | 4.9.2009 |
kLongDate | 4. September 2009 | 4.9.2009 |
kAbbrevDate | 04.09.2009 | 4.9.2009 |
kShortTime | 08:02 | 08:02:54 |
kLongTime | 08:02:54 | 08:02:54 |
kShortDateTime | 04.09.2009 08:02 | 4.9.2009 08:02:54 |
kLongDateTime | 4. September 2009 08:02 | 4.9.2009 08:02:54 |
kAbbrevDateTime | 04.09.2009 08:02 | 4.9.2009 08:02:54 |
kShortDateLongTime | 04.09.2009 08:02:54 | 4.9.2009 08:02:54 |
kLongDateLongTime | 4. September 2009 08:02:54 | 4.9.2009 08:02:54 |
kAbbrevDateLongTime | 04.09.2009 08:02:54 | 4.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 |
|
|
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. |
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; }
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) |
int main() { if (system::os() == 1) showmessage("Sie benutzen einen Macintosh."); else showmessage("Sie benutzen Windows.");
return 0; }
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; }
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; }
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; }
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; }
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. |
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 |
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 |
static int system::get_docwatch()
Hole den aktuellen Status der Dokumentbeobachtung.
Name | Typ | Default | Beschreibung |
Return | int | 0 : deaktiviert 1 : aktiviert |
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; }
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; }
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;
}
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; }
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; }
static int system::sleep(long time_ms)
Unterbreche InDesign®.
Name | Typ | Default | Beschreibung |
time_ms | int | - | Anzahl Millisekunden, die gewartet werden soll |
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.
|
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.
|
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 |
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. |
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; }
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 |
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!
Öffnen Sie das Programm Terminal und gehen Sie in den Ordner /etc/postfix:
cd /etc/postfix
Ö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.
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
Starten Sie den Postfix-Mail-Dienst neu:
sudo Postfix stop sudo Postfix start
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 |
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!");
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; }
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; }
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. |
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);
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; }
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 |
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. |
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. |
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. |
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; }
int main ()
{
char s2 [256];
char s3 [256];
showmessage ("%s@%s",
system::login (s2),
system::host (s3));
}
Alphabetic index HTML hierarchy of classes or Java