Funktionen zum Export und Import von Benutzerprofilen und der Programmeinstellungen.

Funktionen zum Export und Import von Benutzerprofilen und der Programmeinstellungen.

static int prefs::export_pdfstyles(char* destPath, StringList onlyThose = 0)

Exportieren von PDF-Profilen in eine XML-Datei. PDF-Profile sind global in den InDesign®-Einstellungen definiert, deshalb werden hier keine weiteren Angaben zum Dokument benötigt.

Die in eckige Klammern eingeschlossenen [InDesign®-Standardprofile] werden zwar exportiert, können aber nicht importiert werden. Sie können die Exportdaten dazu verwenden, aus diesen Einstellungen eigene Profile zu erstellen. Vergessen Sie in diesem Fall nicht, die Klammern um den Profilnamen zu entfernen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
destPath String oder char* - Zielpfad für die XML-Datei. Existiert die Datei bereits, wird sie überschrieben.
onlyThose StringList 0 Welche Profile sollen exportiert werden?

0 oder leer : Alle Profile
sonst : nur die Profile der Liste

Export aller PDF-Profile.

int main ()
{
    prefs::import_pdfstyles ("$DESKTOP/pfd_profiles_all.xml");
return 0; }

Export einiger PDF-Profile

int main ()
{
    StringList		profiles = stringlist::alloc ();
stringlist::append (profiles, "Pauls PDF Profile"); stringlist::append (profiles, "Christophs PDF Profile");
prefs::import_pdfstyles ("$DESKTOP/pfd_profiles1.xml", profiles);
return 0; }

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

import_pdfstyles
list_pdfstyles

static int prefs::import_pdfstyles(
  char* destPath,
  StringList onlyThose = 0,
  int mode = 0)

Importieren von PDF-Profilen aus einer XML-Datei. PDF-Profile sind global in den InDesign®-Einstellungen definiert, deshalb werden hier keine weiteren Angaben zum Dokument benötigt.

Die in eckige Klammern eingeschlossenen [InDesign®-Standardprofile] werden zwar exportiert, können aber nicht importiert werden. Sie können die Exportdaten dazu verwenden, aus diesen Einstellungen eigene Profile zu erstellen. Vergessen Sie in diesem Fall nicht, die Klammern um den Profilnamen zu entfernen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
srcPath String or char* - Vollständiger Pfad der XML-Datei im Format von export_pdfstyles
onlyThose StringList 0 Welche Profile sollen importiert werden?

0 oder leer : Alle Profile
sonst : nur die Profile der Liste
mode int 0 Was soll getan werden, wenn ein Profil bereits existiert?

0 : überschreiben
1 : überspringen
2 : abbrechen

Importiere der PDF Profile einer Datei. Das Skript schreibt vor und nach dem Import alle verfügbaren Profile ins Logfile. Beachten Sie, dass die Liste profile vor der zweiten Verwendung gelöscht werden muss!

int main ()
{
    StringList		profiles;
    char		*	str;
wlog ("", "# Before import\n"); profiles = prefs::list_pdfstyles (""); for (str = stringlist::first (profiles); str; str = stringlist::next (profiles)) { wlog ("", "#\t'%s'\n", str); }
prefs::import_pdfstyles ("$DESKTOP/pfd_profiles1.xml", 0);
wlog ("", "# After import\n"); stringlist::release (profiles); // Delete list before! profiles = prefs::list_pdfstyles (""); for (str = stringlist::first (profiles); str; str = stringlist::next (profiles)) { wlog ("", "#\t'%s'\n", str); }
return 0; }

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

export_pdfstyles
list_pdfstyles
list_pdfstyles

static StringList prefs::list_pdfstyles(char* source = 0, StringList listToFill = 0)

Welche PDF-Profile habe ich eigentlich?

Name Typ Default Beschreibung
Return StringList   Liste der verfügbaren Profile

Ist der Parameter listToFill leer, wird eine neue Liste erzeugt, die mit stringlist::release wieder gelöscht werden muss.
source String or char* 0 Wo sollen die Profile gesucht werden?

0 oder "" : In den InDesign®-Einstellungen
sonst : Pfad zu einer XML-Datei im Format von export_pdfstyles
listToFill StringList 0 Liste für die Ergebnisse. Ist der Parameter leer, wird eine neue Liste erzeugt, die mit stringlist::release wieder gelöscht werden muss. Sonst wird die übergebene Liste mit den erhaltenen Profilnamen gefüllt.

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

export_pdfstyles
import_pdfstyles

static int prefs::export_printstyles(char* destPath, StringList onlyThose = 0)

Exportieren von Drucker-Profilen in eine XML-Datei. Drucker-Profile sind global in den InDesign®-Einstellungen definiert, deshalb werden hier keine weiteren Angaben zum Dokument benötigt.

Die in eckige Klammern eingeschlossenen [InDesign®-Standardprofile] werden zwar exportiert, können aber nicht importiert werden. Um ein neues Profile mit neuem Namen zu erhalten, genügt es hier - im Gegensatz zu den PDF-Profilen - nicht, einfach einen Eintrag der XML-Datei zu kopieren und dort den Namen zu ändern. Der Profil-Name ist in den Binärdaten des CDATA-Teils nochmals versteckt und die Kopie hat dann nicht den neuen Namen sondern Alter Name Kopie 1. Sie müssen hier tatsächlich ein neues Profil in InDesign® erstellen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
destPath String oder char* - Zielpfad für die XML-Datei. Existiert die Datei bereits, wird sie überschrieben.
onlyThose StringList 0 Welche Profile sollen exportiert werden?

0 oder leer : Alle Profile
sonst : nur die Profile der Liste

Export aller Drucker-Presets.

int main ()
{
    prefs::export_printstyles ("$DESKTOP/pfd_profiles_all.xml");
return 0; }

Export einiger Drucker-Presets.

int main ()
{
    StringList		profiles = stringlist::alloc ();
stringlist::append (profiles, "Pauls PDF Profile"); stringlist::append (profiles, "Christophs PDF Profile");
prefs::export_printstyles ("$DESKTOP/pfd_profiles1.xml", profiles); return 0; }

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

import_printstyles
list_printstyles

static int prefs::import_printstyles(
  char* srcPath,
  StringList onlyThose = 0,
  int mode = 0)

Importieren von Drucker-Profilen aus einer XML-Datei. Drucker-Profile sind global in den InDesign®-Einstellungen definiert, deshalb werden hier keine weiteren Angaben zum Dokument benötigt.

Die in eckige Klammern eingeschlossenen [InDesign®-Standardprofile] werden zwar exportiert, können aber nicht importiert werden. Um ein neues Profile mit neuem Namen zu erhalten, genügt es hier - im Gegensatz zu den PDF-Profilen - nicht, einfach einen Eintrag der XML-Datei zu kopieren und dort den Namen zu ändern. Der Profil-Name ist in den Binärdaten des CDATA-Teils nochmals versteckt und die Kopie hat dann nicht den neuen Namen sondern Alter Name Kopie 1. Sie müssen hier tatsächlich ein neues Profil in InDesign® erstellen.

Wenn Sie den Befehl nach Programmstart zu ersten Mal anwenden, kann er eine Weile dauern. InDesign® braucht einen Moment Zeit, alle aktuellen Drucker zu finden.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
srcPath String oder char* - Vollständiger Pfad der XML-Datei im Format von export_printstyles
onlyThose StringList 0 Welche Profile sollen importiert werden?

0 oder leer : Alle Profile
sonst : nur die Profile der Liste
mode int 0 Was soll getan werden, wenn ei Profil bereits existiert?

0 : überschreiben
1 : überspringen
2 : abbrechen

Import aller Drucker-Presets einer XML-Datei.

int main ()
{
    StringList		profiles;
    char		*	str;
    int				res;
wlog ("", "# Before import\n"); profiles = prefs::list_printstyles (""); for (str = stringlist::first (profiles); str; str = stringlist::next (profiles)) { wlog ("", "#\t'%s'\n", str); }
res = prefs::import_printstyles ("$DESKTOP/print_profiles1.xml", 0); wlog ("", "# Import result %d\n", res);
wlog ("", "# After import\n"); stringlist::release (profiles); // Delete list before! profiles = prefs::list_printstyles (""); for (str = stringlist::first (profiles); str; str = stringlist::next (profiles)) { wlog ("", "#\t'%s'\n", str); }
return 0; }

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

export_printstyles
list_printstyles
list_printstyles

static StringList prefs::list_printstyles(char* source = 0, StringList listToFill = 0)

Welche Drucker-Profile habe ich eigentlich?

Name Typ Default Beschreibung
Return StringList   Liste der verfügbaren Profile

Ist der Parameter listToFill leer, wird eine neue Liste erzeugt, die mit stringlist::release wieder gelöscht werden muss.
source String oder char* 0 Wo sollen die Profile gesucht werden?

0 oder "" : In den InDesign®-Einstellungen
sonst : Pfad zu einer XML-Datei im Format von export_printstyles
listToFill StringList 0 Liste für die Ergebnisse. Ist der Parameter leer, wird eine neue Liste erzeugt, die mit stringlist::release wieder gelöscht werden muss. Sonst wird die übergebene Liste mit den erhaltenen Profilnamen gefüllt.

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

export_printstyles
import_printstyles

static int prefs::export_flattenerstyles(char* destPath, StringList onlyThose = 0)

Exportieren von Transparenzreduzierungsvorgaben in eine XML-Datei. Drucker-Profile sind global in den InDesign®-Einstellungen definiert, deshalb werden hier keine weiteren Angaben zum Dokument benötigt.

Die in eckige Klammern eingeschlossenen [InDesign®-Standardprofile] werden zwar exportiert, können aber nicht importiert werden. Sie können die Exportdaten dazu verwenden, aus diesen Einstellungen eigene Profile zu erstellen. Vergessen Sie in diesem Fall nicht, die Klammern um den Profilnamen zu entfernen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
destPath String oder char* - Zielpfad für die XML-Datei. Existiert die Datei bereits, wird sie überschrieben.
onlyThose StringList 0 Welche Profile sollen exportiert werden?

0 oder leer : Alle Profile
sonst : nur die Profile der Liste

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

import_flattenerstyles
list_flattenerstyles

static int prefs::import_flattenerstyles(
  char* destPath,
  StringList onlyThose = 0,
  int mode = 0)

Importieren von Transparenzreduzierungsvorgaben aus einer XML-Datei. Drucker-Profile sind global in den InDesign®-Einstellungen definiert, deshalb werden hier keine weiteren Angaben zum Dokument benötigt.

Die in eckige Klammern eingeschlossenen [InDesign®-Standardprofile] werden zwar exportiert, können aber nicht importiert werden. Sie können die Exportdaten dazu verwenden, aus diesen Einstellungen eigene Profile zu erstellen. Vergessen Sie in diesem Fall nicht, die Klammern um den Profilnamen zu entfernen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
srcPath String oder char* - Vollständiger Pfad der XML-Datei im Format von export_flattenerstyles
onlyThose StringList 0 Welche Profile sollen importiert werden?

0 oder leer : Alle Profile
sonst : nur die Profile der Liste
mode int 0 Was soll getan werden, wenn ei Profil bereits existiert?

0 : überschreiben
1 : überspringen
2 : abbrechen

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

export_flattenerstyles
list_flattenerstyles
list_flattenerstyles

static StringList prefs::list_flattenerstyles(char* source = 0, StringList listToFill = 0)

Welche Transparenzreduzierungsprofile habe ich eigentlich?

Name Typ Default Beschreibung
Return StringList   Liste der verfügbaren Profile

Ist der Parameter listToFill leer, wird eine neue Liste erzeugt, die mit stringlist::release wieder gelöscht werden muss.
source String oder char* 0 Wo sollen die Profile gesucht werden?

0 oder "" : In den InDesign®-Einstellungen
sonst : Pfad zu einer XML-Datei im Format von export_flattenerstyles
listToFill StringList 0 Liste für die Ergebnisse. Ist der Parameter leer, wird eine neue Liste erzeugt, die mit stringlist::release wieder gelöscht werden muss. Sonst wird die übergebene Liste mit den erhaltenen Profilnamen gefüllt.

Version 3.1 R1760, 25. Feb. 2010

priint:comet InDesign® Plug-Ins

export_flattenerstyles
import_flattenerstyles

static int prefs::get_script_buffer()

Aktuelle Größe des Skript-Speichers.

Name Typ Default Beschreibung
Return int   Größe des Skriptpuffers in kB

Version 3.1 R2021, 20. Juli 2010

priint:comet InDesign® Plug-Ins, comet_pdf

set_script_buffer
comet.prefs.getCScriptBuffer

static int prefs::set_script_buffer(int newSize)

Setze die Größe des Skript-Puffers. Die Änderungen werden erst ab dem nächsten Skript wirksam. Die Angaben erfolgen in kB und werden automatisch auf den Bereich 1024 - 16384 (also 1-16 MB) beschränkt.

Jedes Skript hat zu seiner Laufzeit einen eigenen Puffer. Ein zu kleiner Puffer kann zum Speicherüberlauf des Skriptes führen (Symbol table full, Out of heap memory). Ein zu großer Puffer kann die Verarbeitung stark verlangsamen oder zum Speicherüberlauf von InDesign® führen. Skriptspeicher können Sie sparen, indem Sie etwa statt

    char str [5000];

    char * str = alloc (5000);

schreiben. Im ersten Fall werden 5000 Bytes des Skriptbuffers (Heap) verwendet, im zweiten nur 4 - und die 5000 Bytes verwaltet InDesign® für Sie.

Die Standardgröße des Puffers beträgt 128 kB.

Um sicherzustellen, dass Ihre Skripte genügend Speicher bekommen, sollten Sie die Größe des Puffers im Loginskript Ihrer Datenverbindung setzen.

Name Typ Default Beschreibung
Return int   Neue Größe des Skriptpuffers in kB
newSize int - Neue Größe des Skriptpuffers in kB.

Die Änderungen werden erst ab dem nächsten Skript wirksam. Die Angaben erfolgen in kB und werden automatisch auf den Bereich 1024 - 16384 (also 1-16 MB) beschränkt.

Version 3.1 R2021, 20. Juli 2010
v4.1.8 R27460, 9. Sep. 2020, Bereich von 128 kB - 8 MB geändert zu 1 - 16 MB

priint:comet InDesign® Plug-Ins, comet_pdf

get_script_buffer
comet.prefs.setCScriptBuffer

static int prefs::set_script_nullify_on_release(int newState)

EXPERIMENTELL Setze bei cScript-Aufrufen von release-Funktionen automatisch alle Variablen, die auf die freigegebene Speicheradresse zeigen auf den Wert 0. Die Einstellung wird spätestens beim Trennen der aktuellen Datenverbindung wieder abgeschaltet.

Im Standard verhält sich cScript beim Freigeben von reserviertem Speicher so wie C oder C++: Der Speicher wird freigegeben und die Variable zeigt danach auf den Wert 0. Die Variable selbst behält aber ihren Wert.

Name Typ Default Beschreibung
Return int   Bisheriger Status
newState int - Verhalten von cScript beim Freigeben reservierten Speichers mit einer der release-Funktionen.

0 : Bei einem release behalten alle Variablen, die auf den gleichen freigegebenen Speicher zeigen, ihren Wert (und zeigen damit weiter auf die, inzwischen ungültige, alte Speicheradresse).
  • Vorteil : Nach release (var) führt die Verwendung von var nicht sofort zum Absturz.
  • Nachteil : *var enthält 'unsichere' Werte - je später, desto falscher. Und irgendwann in naher Zukunft wird die Verwendung dieser Daten zum Absturz führen.
1 : Bei einem release werden alle Variablen, die auf den gleichen freigegebenen Speicher zeigen, auf den Wert 0 gesetzt.
  • Vorteil : Nach release (var) hat var den sicheren Wert 0 (den Sie dann aber vor weiterer Verwendung der Variable auch mal testen sollten!).
  • Nachteil : *var führt in Funktionen, die die Variable var nicht vorher testen, zum sofortigen Absturz!

Hier ein kleines Testprogramm, das folgende Ausgabe produziert:

Auto Nullify OFF
    s1 = 32917A800, s2 = 32917A800
    s1 = 32917A800, s2 = 32917A800
Auto Nullify ON
    s1 = 32917A800, s2 = 32917A800
# Auto reset all script variables pointing to released data @ 0x2917A800 to 0
    s1 = 0, s2 = 0

int ttt (char * mess)
{
    char 	* 	s1;
    char	*	s2;
wlog ("", "%s\n", mess);
s1 = alloc (256); s2 = s1; wlog ("", " s1 = %X, s2 = %X\n", s1, s2);
release (s1); wlog ("", " s1 = %X, s2 = %X\n", s1, s2);
return 0; }
int main () { ttt ("Auto Nullify OFF"); prefs::set_script_nullify_on_release (1); ttt ("Auto Nullify ON"); return 0; }

v5.0 R35910, 9. Jan 2025

priint:comet InDesign® Plug-Ins, comet_pdf

get_script_nullify_on_release
release
string::release
productlist::release
...

static int prefs::get_script_nullify_on_release()

Wie verhält sich cScript beim Löschen reservierten Speichers mit einer der release-Funkitonen?

Name Typ Default Beschreibung
Return int   0 : Der Speicher wird freigegeben, aber die Variablen behalten ihren aktuellen Wert (entspricht dem Verhalten von C und C++).

1 : Nach dem Freigeben reservierten Arbeitsspeicher werden die entsprechende Variable und alle anderen Variablen, die auf die gleiche Speicheradresse zeigen auf 0 gesetzt.

Über Vor- und Nachteile siehe set_script_nullify_on_release.

v5.0 R35910, 9. Jan 2025

priint:comet InDesign® Plug-Ins, comet_pdf

set_script_nullify_on_release
release
string::release
productlist::release
...

static int prefs::sync_server_notes(int v = -1)

Sollen Comet-Notizen beim Öffnen eines Dokuments mit InDesignServer® synchronisiert werden?

Die Anweisung hat nur für InDesignServer® und comet_pdf Bedeutung. In InDesign (Desktop) kann die Anweisung ausgeführt werden, hat aber keine Wirkung. Im Desktop werden Notizen beim Ausbuchen &uu;ber das Publikationspanel immer synchronisiert.

Im Standard ist die Synchronisation von Notizen in InDesign Server® und comet_pdf deaktiviert. Zum Aktivieren müssen folgende Anweisungen angepasst werden

Folgen Sie dazu den Anweisungen im unten stehenden Beispiel!
Bitte beachten Sie: Der Aufruf selbst synchronisiert keine Notizen. Sie legen hier lediglich fest, dass die Notizen beim Bearbeiten auf dem Server synchronisiert werden können.
Konkret bedeutet das:
Sofern die Bearbeitung oder Verarbeitung von Notizen auf dem Server in Ihrer Anwendung keine Rolle spielt, sollten die Synchronisation deaktiviert bleiben (und die o.g. Panelstatements entsprechend unverändert), da das Anfordern von Metadaten und Import / Export von Notizen zusätzliche Verarbeitungszeit erfordert.

Name Typ Default Beschreibung
Return int   aktueller Wert der Eigenschaft

0 : Notizen werden nicht synchronisiert
1 : Notizen können synchronisiert werden
v int - Status setzen/erfragen

-1 : Status erfragen
0 : Notizen werden nicht synchronisiert
1 : Notizen können synchronisiert werden

Notwendige Anpassungen von Panelstatements

// Login / session::login (Panelstatement 92)
// Folgende Zeile einfügen:
//
prefs::sync_server_notes (1);
// After Open / document:after open (Panelstatement 44) // // Folgenden Abschnitt if (system::is_server()) { strcpy(documentId, gDocumentID); result = xml::set_document_attribute(gDocument, "documentId", documentId); } else { xml::get_document_attribute(gDocument, "documentId", documentId); }
// durch diese Zeilen ersetzen: if (system::is_server()) { if (isPublicationDocument(gDocumentID)) { char * documentPath = alloc(4096); strcpy(documentPath, gDocumentPath); priint::checkout (gDocumentID, documentPath); release (documentPath); } strcpy(documentId, gDocumentID); result = xml::set_document_attribute(gDocument, "documentId", documentId); } else { xml::get_document_attribute(gDocument, "documentId", documentId); }

v4.2 R32300, 8. Feb 2023

priint:comet InDesign® Plug-Ins, comet_pdf

static int (int state)

Farbprofilsicheres Einsetzen von Templates.

Ein InDesign®-Bug bewirkt, dass Templates das im Dokument eingestellte Farbprofil ändern können : Das Farbprofil des Quelldokumentes wird - wenn vorhanden - auch im Zieldokument gesetzt. Ist das Profil nicht vorhanden, wird das eingestellte Standardprofil (Menu "Bearbeiten:Farbeinstellungen...") gesetzt.

Nach (sehr) langer Suche wurde in einer Doku zu InDesign® 2.0 (also noch vor CS-Zeiten, das war 2003 (sic!)) die Beschreibung einer etwas geänderten Methode zum Einfügen von Rahmen gefunden - und mit der bleibt das Farbprofil erhalten. Damit nun nicht alles plötzlich ganz anders funktioniert - das Einsetzen von Templates ist immerhin ein recht zentraler Teil der Comet-Plugins, muss das Feature freigeschaltet werden. Dazu dient der Befehl set_preserve_color_profiles.

Mit state=1 wird das Feature freigeschaltet - und bleibt es bis zum nächsten Neuverbinden mit einer Datenquelle (XML-Ordner, SQL, SOAP, Oracle) oder bis zu einem Aufruf mit state=0.

Will man das Feature für eine Datenverbindung immer zur Verfügung haben, sollte man es also im Loginskript setzen.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
state int - 0 : Standardverfahren zum Einsetzen von Templates verwenden

1 : Farbprofilerhaltendes Verfahren verwenden. Die Einstellung wird beim Ändern der Datenverbindung zurückgesetzt.

Version 3.1 R2050, 5. Aug. 2010

priint:comet InDesign® Plug-Ins

Nach mehr als acht Jahren übergangszeit streichen wir die Funktion jetzt und das farbprofilerhaltende Verfahren zum Duplizieren von Rahmen wird zum Standard.

static int ()

Welches Verfahren wird beim Einsetzen von Templates verwendet?

Name Typ Default Beschreibung
Return int   0 : Standardverfahren
1 : Farbprofilsicheres Einsetzen von Templates

Version 3.1 R2050, 5. Aug. 2010

priint:comet InDesign® Plug-Ins

Nach mehr als acht Jahren übergangszeit streichen wir die Funktion jetzt und das farbprofilerhaltende Verfahren zum Duplizieren von Rahmen wird zum Standard.
set_preserve_color_profiles

static int (int v = -1)

DEPRECATED! Sollen beim Sichern von Templates automatisch auch IDML-Versionen der Templates abgelegt werden? Unter XML und SOAP werden die IDML-Dateien mit der Endung idml "neben" die InDesign®-Dateien der Templates gelegt (normalerweise also etwa pageitems/data/123.idml. Unter SQL wird das Panelstatement 121 zum Sichern des Datenblobs verwendet. Ist das Panelstatement 121 leer oeder fehlt wird die Anweisung update pageitems set dataIDML = LATIN1 ? where id = ? verwendet. LATIN1 wird dabei durch den aktuellen Wert von LATIN1 in der Tabelle keywords ersetzt.

Beim Trennen der Datenverbindung bzw. beim Neusetzen des Datenordners wird die Option automatisch (wieder) abgeschaltet.

Im Normalfall setzen Sie die Eigenschaft im Loginskript (Panelstatement 92) der Datenverbindung.

Name Typ Default Beschreibung
Return int   aktueller Wert der Eigenschaft

0 : nein, keine IDMLs schreiben
1 : Ja, IDMLs schreiben
v int - Status setzen/erfragen

-1 : Status erfragen
0 : abschalten
1 : einschalten

Version 3.2 R2155, 29.09.2010

priint:comet InDesign® Plug-Ins, comet_pdf

[Ab v4.1 R21213, 8. Dez 2017] IDML-Varianten der Templates werden an keiner Stelle des priint:priint:comet InDesign® Plug-Ins verwendet und deshalb auch nicht mehr angelegt. Die Anweisung hat keine Auswirkung mehr auf das Sichern von Templates.

static int prefs::add_w2ml_to_templates(int v = -1)

Soll beim Sichern von Templates automatisch auch eine W2ML-Variante der Templates abgelegt werden? Unter XML und SOAP werden diese Dateien mit der Endung w2ml "neben" die InDesign®-Dateien der Templates gelegt (normalerweise also etwa pageitems/data/123.w2ml). Unter SQL wird das Panelstatement 137 zum Sichern des Textblobs verwendet. Ist das Panelstatement 137 leer oder fehlt wird die Anweisung update pageitems set dataW2ML = ? where id = ? verwendet.

Beim Trennen der Datenverbindung bzw. beim Neusetzen des Datenordners wird die Option automatisch (wieder) abgeschaltet.

Im Normalfall setzen Sie die Eigenschaft im Loginskript (Panelstatement 92) der Datenverbindung.

Name Typ Default Beschreibung
Return int   aktueller Wert der Eigenschaft

0 : nein, keine W2MLs schreiben
1 : Ja, W2MLs schreiben
v int - Status setzen/erfragen

-1 : Status erfragen
0 : abschalten
1 : einschalten
2 : einschalten und ebenfalls add_metadata_to_templates aktivieren

3.3.1 R3445, 21. Feb. 2013

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.setAddW2MLToTemplates
comet.prefs.getAddW2MLToTemplates

static int prefs::add_metadata_to_templates(int v = -1)

Sollen beim Sichern von Templates automatisch Metadaten der Templates angelegt werden? Unter XML und SOAP werden die Metadaten als komprimierter Ordner mit der Endung meta.zip "neben" die InDesign®-Dateien der Templates gelegt (normalerweise also etwa pageitems/data/123.meta.zip). Unter SQL wird das Panelstatement 146 zum Sichern des Textblobs verwendet. Ist das Panelstatement 146 leer oder fehlt wird die Anweisung update pageitems set metadata = ? where id = ? verwendet. Für Seitentemplates wird das Statement update pagetemplates set metadata = where id = ? verwendet

Beim Trennen der Datenverbindung bzw. beim Neusetzen des Datenordners wird die Option automatisch (wieder) abgeschaltet.

Im Normalfall setzen Sie die Eigenschaft im Loginskript (Panelstatement 92) der Datenverbindung.

Name Typ Default Beschreibung
Return int   aktueller Wert der Eigenschaft

0 : nein, keine Metadaten schreiben
1 : Ja, Metadaten schreiben
v int - Status setzen/erfragen

-1 : Status erfragen
0 : abschalten
1 : einschalten

4.1.6 R26027

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.setAddMetaDataToTemplates
comet.prefs.getAddMetaDataToTemplates

static int prefs::add_w2ml_to_snippets(int v = -1)

Soll beim Sichern von Snippets automatisch auch eine W2ML-Variante der Snippets abgelegt werden?

Beim Trennen der Datenverbindung bzw. beim Neusetzen des Datenordners wird die Option automatisch (wieder) abgeschaltet.

Im Normalfall setzen Sie die Eigenschaft im Loginskript (Panelstatement 92) der Datenverbindung.

Name Typ Default Beschreibung
Return int   aktueller Wert der Eigenschaft

0 : nein, keine W2MLs schreiben
1 : Ja, W2MLs schreiben
v int - Status setzen/erfragen

-1 : Status erfragen
0 : abschalten
1 : einschalten

4.1.7 R26615

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.setAddW2MLToSnippets
comet.prefs.getAddW2MLToSnippets

static int prefs::snippet_match(int v = -1)

Standardeinstellungen der Snippet Such- und Verwendungskriterien

Beim Trennen der Datenverbindung bzw. beim Neusetzen des Datenordners wird der Wert automatisch (wieder) zurückgesetzt.

Im Normalfall setzen Sie die Eigenschaft im Loginskript (Panelstatement 92) der Datenverbindung.

Name Typ Default Beschreibung
Return int   aktueller Wert der Eigenschaft

v int - Status setzen/erfragen

-1 : Status erfragen
0 : Snippets nicht verwenden
> 0 : beliebige Kombinationen der Snippet Match Kriterien (siehe productlist::establish), zum Beispiel kSnippetMatchesTemplate + kSnippetMatchesProduct

4.1.7 R26615

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.getSnippetMatch
comet.prefs.setSnippetMatch

static char* prefs::snippet_filter(int fptr)

Standardfilter für Anlegen von Snippets

Beim Anlegen von Snippets kann über eine Callback-Funktion entschieden werden, ob für ein Produkt ein Snippet angelegt wird oder nicht. Diese Funktion wird auch berücksichtigt, wenn über die Oberfläche (bspw. beim Produktaufbau über Dialog oder Anlegen von Snippets mittels des '+' Buttons des Previews Panel) Snippets angelegt werden.

Name Typ Default Beschreibung
Return char *   Name der aktuell definierten Funktion

fptr int - Funktionszeiger auf die zu verwendende Funktion. 0 : deaktivieren

Snippet Filter Funktionen müssen folgendem Muster folgen:

int myFilterFunction(Product p)
{
    if (certainConditions)
    {
        return 1; 	// => create snippets
    }
    return 0; 		// => don't create snippets
}

Dieses Beispiel verhindert das Anlegen von Snippets, die auf seitenspezifischen Vorlagen basieren:

#include "internal/types.h"
int disallowTypedTemplates(Product p) { int templatePageType = product::get_pageitem_type(p);
if (templatePageType != kUndefPage) { // optionally prompt user
return 0; } return 1; }

Im Normalfall definieren Sie die Funktion im Loginskript (Panelstatement 92) der Datenverbindung bzw. binden sie über ein #include ein und legen sie als Standardfunktion für die gesamte Verbindungsdauer fest:

prefs::snippet_filter(disallowTypedTemplates);

4.1.7 R26615

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::show_url_progress(int state = -1)

Progressbalken beim Download von Web-Bildern zeigen? Für das manuelle Anlegen und Aktualisieren von Web-Bildern über die Palette Web-Bilder oder das Kontextmenü Web-Bilder hat die Einstellung keine Bedeutung.

Die Einstellung wird beim Beenden der Datenverbindung wieder auf die Standardeinstellung Kein Progressbalken zurückgesetzt.

Name Typ Default Beschreibung
Return int   Aktueller Wert der Einstellung

0 : Kein Progessbalken
1 : Progressbalken zeigen
state int -1 0 : Kein Progessbalken
1 : Progressbalken zeigen
-1 : Nur Status abfragen

v4.1 R21112, 1. Dez 2017

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

frame::link_url
frame::embed_url
comet.prefs.getShowURLProgress
comet.prefs.setShowURLProgress

static int prefs::get_tags_writeable()

Sollen die Comet-Platzhalter beim Export von TaggedText mit exportiert werden? Siehe auch Export/Import von Comet Platzhaltern.

Name Typ Default Beschreibung
Return int   0 : Comet-Platzhalter werden nicht exportiert

1 : Comet-Platzhalter werden exportiert

v3.3 R2580, 2. Aug. 2011

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.getTagsWriteable

static int prefs::set_tags_writeable()

Sollen die Comet-Platzhalter beim Standardexport von TaggedText mit exportiert werden? Hier kann der Status geändert werden. Siehe auch Export/Import von Comet Platzhaltern.

Die internen TaggedText-Exporte der priint:comet Plug-Ins in den Formaten kExportTT (Platzhalter nicht enthalten) und kExportW2 (Platzhalter immer enthalten) sind von dieser Einstellung nicht betroffen.

Name Typ Default Beschreibung
Return int   old state
newState int 1 neuer Status

0 : Comet-Platzhalter nicht schreiben
1 : Comet-Platzhalter in den TaggedText aufnehmen
#include "internal/text.h"

v3.3 R2580, 2. Aug. 2011

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.setTagsWriteable

static int prefs::get_tags_readable()

Werden Comet-Platzhalter beim Import von TaggedText gelesen und automatisch angelegt oder nicht? Siehe auch Export/Import von Comet Platzhaltern.

Name Typ Default Beschreibung
Return int   0 : Comet-Platzhalter werden nicht automatisch angelegt

1 : Comet-Platzhalter werden automatisch angelegt.

v3.3 R2580, 2. Aug. 2011

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.getTagsReadable

static int prefs::set_tags_readable(int newState)

Sollen Comet-Platzhalter beim Import von TaggedText gelesen und automatisch angelegt oder nicht? Siehe auch Export/Import von Comet Platzhaltern.

Diese Einstellung wird von den Comet-Plugins beim Import von %!TT-Texten ignoriert.

Name Typ Default Beschreibung
Return int   bisheriger Status
newState int 1 neuer Status

0 : Comet-Platzhalter ignorieren
1 : Comet-Platzhalter verarbeiten

v3.3 R2580, 2. Aug. 2011

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.setTagsReadable

static int (
  int rsrcID,
  char* path,
  char* destination = 0,
  int results [12] = 0)

Installiere ein Bild im ausführenden InDesign®. Das Bild kann über seine ID als Icon in Front Row bzw. der Produktrecherche verwendet werden.

Die Funktion stellt ein erhebliches Sicherheitsrisiko dar. Sie sollten statt der eigenen Icons eines der 1.5000 integrierten Icons verwenden.

Die Anweisung ändert die priint:comet Plugins des ausführenden InDesigns® und werden nur lokal gemacht.

Durch die Installation der Bilder verlieren die Plugins ihren Status als verfizierte Software und können beim Neustart von InDesign weitere Sicherheitsabfragen hervorrufen!

Bei Neuinstallation der priint:comet Plugins gehen die Änderungen verloren.

Für InDesign® Server und comet_pdf hat der Aufruf keine Wirkung und gibt den allgemeinen Fehler 1 zurück.

Bilder können als PNGs mit Alphakanal oder (ab InDesign® 2022) als SVGs definiert werden. Achten Sie aber bitte in jedem Fall darauf, dass die rsrcIDs über beide Bildformate eindeutig sind.

Für die Installation eines PNG-basierten Icons sind mindestens zwei Bilder nötig: Ein Bild für den dunklen Hintergrund von InDesign® und eins für den hellen Hintergrund.

Für Rollovers bzw. selektierte Icons können darüberhinaus jeweils eigene Icons definiert werden. Zusätzlich kann jedes dieser vier Icons in drei Auflösungen (Standard (72 dpi), 150% Auflösung und in High Resolution) hinterlegt werden. Ein Icon kann also aus bis zu 12 Bildern bestehen. Fehlt ein Rollover, wird das Normal-Bild verwendet. Fehlt ein Bild für die aktuelle Auflösung, wird die Standardauflösung verwendet.

Die folgende Tabelle zeigt die Namenskonvention für die Bilddateien der Varianten eines Icons. Die rot markierten Zellen bezeichnen erforderliche Dateien, allen anderen Dateien sind optional (aber für ein besseres Aussehen wünschenswert).

Namenszusatz Bildgröße in Pixel
UI Auflösung Normal Rollover Front Row Produkte
Dunkel Standard _D _DR 36 x 36 12 x 13
150% _hires150_D _hires150_DR 54 x 54 18 x 20
High _hires_D _hires_DR 72 x 72 24 x 26
Hell Standard _L _LR 36 x 36 12 x 13
150% _hires150_L _hires150_LR 54 x 54 18 x 20
High _hires_L _hires_LR 72 x 72 24 x 26

Für die grauen Zwischenstufen der InDesign®-Oberfläche werden keine speziellen Icons verwendet. Helles Grau verwendet die Icons der hellen Oberfläche, dunkles Grau verwendet die Icons der dunklen Oberfläche. Diese Einschränkung bedeutet aber leider auch, dass Sie für die Farbauswahl in den Icons ziemlich eingeschränkt sind. Orange oder Grün werden Sie zwar sowohl auf Schwarz als auch auf Weiß gut sehen können, auf Grau dagegen eher nicht, usw.. Das Beispielbild oben links in der Tabelle enthält die Farben, die wir vorzugsweise in unseren Icons verwendet haben und die auf allen Hintergrundfarben hinreichend deutlich zu erkennen sind.

SVG wird ab InDesign® 2022 unterstützt. In Versionen vor 2022 gibt die Funktion den Fehler -1199 zurück. Als Vektorformat benötigen SVG-Bilder keine eigenen Varianten für unterschiedliche Auflösungen.

Die Farbe schwarzer Bilder kann von InDesign selbstständig an die Farbe der UI angepasst werden. Verwenden Sie dazu die folgende Stildefinition (in genau dieser Schreibweise!) in Ihren SVGs.

<style type="text/css">
.fill{fill-rule:evenodd;clip-rule:evenodd;fill:#404040;}
</style>

Leider bietet InDesign außer der automatischen Schwarz-Anpassung keine Möglichkeit, eigene SVG-Bilder für die verschiedenen UIs festzulegen - Sie müssen sich hier also mit Farben begnügen, die in in allen Oberflächen gut sichtbar sind. Wir verwenden aktuell die folgenden Farben:

Für Bilder mit eigenen Farben sollten Sie keinesfalls die Stilldefintion .fill verwenden!

Insgesamt benötigen Sie damit nur maximal zwei Versionen des Icons, ein normales und ein (optionales) Rollover. Die Bildgrößen können in Abhängigkeit vom dargestellten Inhalt leicht variieren:

Namenszusatz Front Row Produkte
Normal 52-56 Pixel 24-32 Pixel
Rollover _R

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

Ein Fehler ungleich 0 bedeutet, dass die Installation mindestens eines Untericons fehlgeschlagen ist. Spezifische Fehlerangaben zu den Varianten werden im Parameter results gemacht.
rsrcID int - ID der Resource, über die das Bild angesprochen werden kann. Die ID muss ≥ 100000 sein!
path String oder char* - Bildpfad und Basisname der Bilder. Der Basisname wird ohne eine der oben angegeben Namenserweiterungen angegeben. Mit der Angabe

   "$DESKTOP/aaa.png"

wird also nach den Bildern

   "$DESKTOP/aaa_D.png"
   "$DESKTOP/aaa_DR.png"
   "$DESKTOP/aaa_hires150_D.png"
   ...

gesucht. Die Bilder ~_D~.~ und ~_L.~ müssen vorhanden sein. Alle anderen Bilder sind optional (aber wünschenswert). Beachten Sie bitte außerdem:
  • Die Bilder müssen im PNG-Format vorliegen und können Alphakanäle mit Graustufen enthalten.
  • Bilder werden beim Einsetzen nicht skaliert. Sie sollten also die in der obigen Tabellen angegebenen Bildgrößen verwenden!
  • Achten Sie bei der Farbwahl darauf, dass die Bilder sowohl auf hellem als auch auf dunklem Hintergrund gut sichtbar sind.
  • Verzichten Sie auf allzu filigrane Icons. Verwenden Sie möglichst einfache und sprechende Bilder!
destination String oder char* "frontrow" Ziel der Installation

"frontrow" : Front Row
"products" : Produktrecherche
results int[12] 0 Das int-Array muss 0 oder mindestens 12 Zahlen groß sein und enthält nach Rückkehr der Funktion die Returncodes für die einzelnen Bildvarianten in der Reihenfolge der obigen Tabelle.

Installation eines PNG-Icons. Ein Testicon finden Sie hier.

prefs::install_image (100000, "$DESKTOP/testicons/myicon.png");

Installation eines SVG-Icons. Ein Testicon finden Sie hier.

prefs::install_image (100001, "$DESKTOP/testicons/myicon.svg");

v3.3 R2580, 2. Aug. 2011
Parameter destination und results seit v4.1.6 R26630, 10. Feb 2020
SVGs seit v4.2 R32970, 22. Mai 2023 und ab InDesign 2022

priint:comet InDesign® Plug-Ins

Die Funktion stellt ein erhebliches Sicherheitsrisiko dar. Sie sollten statt der eigenen Icons eines der 1.5000 integrierten Icons verwenden.

static int prefs::eps_import_options(
  int createPreview = -1,
  int createFrame = -1,
  float resolution = -1.0,
  int readOPI = -1)

Voreinstellungen für den Import von EPS-Bildern. Beim Start von InDesign® werden die Voreinstellungen für den Import von EPS-Bildern von den Comet-Plugins wie folgt gesetzt :

Alle anderen Einstellungen bleiben unverändert.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
createPreview int -1 Preview anlegen?

-1 : Einstellung unverändert lassen
0 : Keine Previews
1 : Wenn kein Preview eingebettet ist
2 : immer
createFrame int -1 Ist im Bild ein Photoshop-Beschneidungspfad angegeben, soll dann der Bildrahmen entsprechend erzeugt werden?

-1 : Einstellung unverändert lassen
0 : nein
1 : ja
resolution float -1.0 Auflösung des Previews

<= 0.0 : unverändert lassen
sonst : dpi
readOPI int -1 Eingebettete OPI-Daten lesen. Nötig für OPI-Prozesse.

-1 : Einstellung unverändert lassen
0 : nein
1 : ja

v3.3 R2718, 18. Nov. 2011

priint:comet InDesign® Plug-Ins

static int prefs::set_fitframe_precision(float prec)

Setze die Präzision, mit der frame::fit Text-Rahmen anpassen soll. frame::fit kann seit einiger Zeit mit einer Angabe zur Präzision gesteuert werden. Fehlt diese Angabe oder ist kleiner 0.00005, wird der hier angegebene globale Wert verwendet. Ist auch dieser Wert kleiner 0.00005, wird die InDesign®-Standardmethode zum Anpassen der Text-Rahmen verwendet.

Der Wert beim Trennen der Datenverbindung auf 0.0 zurückgesetzt.

Name Typ Default Beschreibung
Return int   0
prev float 0.0 neue globale Präzsion für die Anpassung von Textrahmen an ihren Inhalt. Der Wert wird nur verwendet, wenn frame::fit ohne oder mit einer einer Präzision kleiner 0.00005 gerufen wird.

<0.00005 InDesign®-Standardverfahren verwenden

v3.3 R3860, 11. Jun 2013

priint:comet InDesign® Plug-Ins, comet_pdf

frame::fit
get_fitframe_precision

static float prefs::get_fitframe_precision()

Aktuell gesetzte Standard-Präzision für frame::fit.

Name Typ Default Beschreibung
Return float   aktuell verwendete Standardpräzision, wenn frame::fit ohne oder mit einer Präzision kleiner 0.00005 gerufen wird.

v3.3 R3860, 11. Jun 2013

priint:comet InDesign® Plug-Ins, comet_pdf

frame::fit
set_fitframe_precision

static int prefs::enable_magnets(
  int state,
  int action,
  int cometGroupID = 0)

Anpassen der Magnetabstände (de)aktivieren.Magnetabstände werden in folgenden Situationen aktualisiert:
Situation Beschreibung
kMagnetsPlaceholder Nach Laden der Platzhalter
kMagnetsCScript Aufruf der Funktion frame::apply_magnets
kMagnetsBuildProducts Produktaufbau- und Reorganisation
kMagnetsToDoList Aktualisieren mit Hilfe Aufgaben-Palette
kMagnetsChangeTemplate Template-Tausch
kMagnetsLayoutRule Gestaltungsregel "Magnetabstände aktualisieren"
Mit dem Aufruf kann das Aktualisieren der Magnetabstände für einzelne Situationen unterdrückt werden. Bei Programmstart sind alle Situationen aktiviert! Das Deaktivieren einzelner Situationen sollte immer nur kurzzeitig verwendet werden und so bald wie möglich wieder rückgängig gemacht werden.

Name Typ Default Beschreibung
Return int   aktuelle Einstellungen vor dem Aufruf
state int kMagnetsAll Welchen Status wollen Sie ändern/erfragen?

kMagnetsPlaceholder : Nach Laden der Platzhalter
kMagnetsCScript : Aufruf von frame::apply_magnets
kMagnetsBuildProducts : Produktaufbau- und Reorganisation
kMagnetsToDoList : Aktualisieren mit Hilfe Aufgaben-Palette
kMagnetsChangeTemplate : Template-Tausch
kMagnetsLayoutRule : Gestaltungsregel "Magnetabstände aktualisieren"

kMagnetsAll : Alle Situationen
kMagnetsNothing : Keine Situation
what int kMagnetsEnable Was soll mit dem Wert gemacht werden?

kMagnetsEnable : Aktivieren
kMagnetsDisable : Deaktivieren
kMagnetsToggle : Schalter jeweils ändern
kMagnetsAsk : Unverändert lassen
cometGroup int 0 In einigen seltenen Fällen kann es nötig sein, die Magnete einer Cometgruppe während des Ladens der Gruppe abzuschalten. Hier können Sie diese Comet-Gruppen-ID angeben. Der Aufruf sollte im ersten Rahmen der Comet-Gruppe erfolgen, der einen Textplatzhalter hat. Die Sperre gilt bis zur nächsten Idle-Time. Die beiden ersten Parameter werden ignoriert bei Werten ungleich 0 ignoriert.
#include "internal/types.h"

Alles aktivieren

prefs::enable_magnets (kMagnetsAll, kMagnetsEnable);

Prüfe, ob beim Laden von Platzhaltern die Magnetabstände aktualisiert werden.

if (bit_and (prefs::enable_magnets (kMagnetsAll, kMagnetsAsk), kMagnetsPlaceholder) == 0)
  wlog ("", "Suppress magnets after loading placeholders\n");
else
  wlog ("", "Apply magnets after loading placeholders\n");

v3.3.1 R4330, 28.08.2913
cometGroupID seit v3.4 R5200, 24. Feb 2014

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.getMagnetState
comet.prefs.setMagnetState

static int prefs::show_note_history(int state, int importMode)

Status der Checkbox für die Historie von Notizen setzen. In der Palette "Comet-Notizen" gibt es die Checkbox Auto-Prompt für Kommentare. Die Anweisung beeinflußt, ob diese Checkbox aktiviert ist.
Ab R7277 3.4 und 4.0.4 auch: Import-Modus setzen. Der optionale 2. Parameter importMode gibt an, wie leere Absätze in Whiteboard-Notizen interpretiert werden sollen.
Folgende Angaben sind möglich:

Zusätzlich kann mit dem Flag kNotifyAutoFitNotes erreicht werden, dass Notizrahmen beim Import bzw. Einblenden automatisch an den Text angepasst werden.

Name Typ Default Beschreibung
Return int   0
state int 2 0 : Prompt nie zeigen (Die Checkbox ist abgeschaltet und kann nicht aktiviert werden.)

1 : Prompt immer zeigen (Die Checkbox ist aktiviert, kann aber nicht deaktivert werden.)

2 : Checkbox kann geklickt werden udn zeigt die Einstellung der jeweils ausgew‰hlten Notiz
importMode int 0 Import-Verhalten bei leeren Absätzen, Beschreibung siehe oben.
importMode int 0 Import-Verhalten bei leeren Absätzen, Beschreibung siehe oben.
#include "internal/types.h"

Leere Paragraphen in Kommentare konvertieren und automatisch anpassen (z.B. im Login-Skript)

int main ()
{
    prefs::show_note_history(1, kNotifyConvertEmptyParagraphs + kNotifyAutoFitNotes);
    return 0;
}

v3.4 R5321, 8. Mai 2014

priint:comet InDesign® Plug-Ins

static int prefs::get_remove_old_masters()

Bei Musterseitenwechseln freigestellte Musterseiten-Rahmen löschen oder nicht? Der Wert entspricht der Einstellung des Menüs

Plug-ins -> Comet -> Bei Musterseitenwechsel freigestellte Rahmen löschen (Zusatzmodule statt Plug-ins in Versionen vor InDesign® 2025)

InDesign® löscht bei Musterseiten-Wechseln freigestellte Musterrahmen nicht automatisch. In den allermeisten Fällen ist das (mindestens) verwirrend. Im Produktaufbau und bei Seitenreorganisationen kann es sogar zu Fehlern führen.

Stellen Sie sich vor, Sie haben eine Seite mit dem Musterseiten-Rahmen F. Dieser Rahmen wird freigestellt. Es entsteht der Rahmen F'. Ändern Sie jetzt die Musterseite, F' bleibt auf der Seite stehen - zusätzlich zu den neuen Musterseiten-Rahmen. Jetzt ändern Sie die Musterseite noch einmal zurück auf die erste Einstellung. Oooops, jetzt haben Sie die Rahmen F und F' auf ihrer Seite. Das kann nicht richtig sein!

Die Comet-Plugins löschen daher beim Wechsel von Musterseiten automatisch alle freigestellten Musterseiten-Rahmen. Dieses Verhalten führt aber in einigen speziellen Fällen zu Fehlern und kann daher abgeschaltet werden. Fehler treten immer dann auf, wenn die Musterseiten verkettete Textrahmen haben und im Dokument der intelligente Textfluß mit automatischem Anlegen/Löschen von Seiten aktiviert ist. Beim Wechsel der Musterseite geht der Textfluß dann nicht mehr durch die geänderte Seite und der automatische Textfluß legt sofort eine neue Seite an.

Name Typ Default Beschreibung
Return int   0 : freigestellte Musterseiten-Rahmen nicht löschen
1 : freigestellte Musterseiten-Rahmen löschen
-1 : Fehler

Toggle the current state for auto-removing localized parent page frames

int main ()
{
    int			remove	= prefs::get_remove_old_masters ();
wlog ("", "BEFORE : remove parents : %d\n", remove); prefs::set_remove_old_masters (!remove); wlog ("", "AFTER : remove parents : %d\n", prefs::get_remove_old_masters ());
return 0; }

v3.4 R5678, 10. Sep 2014

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::set_remove_old_masters(int state = 1)

Sollen freigestellte Rahmen von Musterseiten beim Wechsel der Musterseiten gelöscht werden? Ändern der Einstellung des Menüs

    Plug-ins -> Comet --> Bei Musterseitenwechsel freigestellte Rahmen löschen (Zusatzmodule statt Plug-ins in Versionen vor InDesign® 2025)

InDesign® löscht bei Musterseiten-Wechseln freigestellte Musterrahmen nicht automatisch. In den allermeisten Fällen ist das (mindestens) verwirrend. Im Produktaufbau und bei Seitenreorganisationen kann es sogar zu Fehlern führen.

Stellen Sie sich vor, Sie haben eine Seite mit dem Musterseiten-Rahmen F. Dieser Rahmen wird freigestellt. Es entsteht der Rahmen F'. Ändern Sie jetzt die Musterseite, F' bleibt auf der Seite stehen - zusätzlich zu den neuen Musterseiten-Rahmen. Jetzt ändern Sie die Musterseite noch einmal zurück auf die erste Einstellung. Oooops, jetzt haben Sie die Rahmen F und F' auf ihrer Seite. Das kann nicht richtig sein!

Die Comet-Plugins löschen daher beim Wechsel von Musterseiten automatisch alle freigestellten Musterseiten-Rahmen. Dieses Verhalten führt aber in einigen speziellen Fällen zu Fehlern und kann daher abgeschaltet werden. Fehler treten immer dann auf, wenn die Musterseiten verkettete Textrahmen haben und im Dokument der intelligente Textfluß mit automatischem Anlegen/Löschen von Seiten aktiviert ist. Beim Wechsel der Musterseite geht der Textfluß dann nicht mehr durch die geänderte Seite und der automatische Textfluß legt sofort eine neue Seite an.

Name Typ Default Beschreibung
Return int   -1 : Fehler
sonst : alter Status
state int 1 freigestellte Musterseiten-Rahmen löschen oder nicht?

0 : nicht löschen
1 : löschen

Toggle the current state for auto-removing localized parent frames

int main ()
{
    int			remove	= prefs::get_remove_old_masters ();
wlog ("", "BEFORE : remove parents : %d\n", remove); prefs::set_remove_old_masters (!remove); wlog ("", "AFTER : remove parents : %d\n", prefs::get_remove_old_masters ());
return 0; }

v3.4 R5678, 10. Sep 2014

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::get_convert_quotas(int domain = 0)

Werden typografische Anführungszeichen beim Einsetzen von Text ersetzt oder nicht?

Von comet_pdf wird das automatische Einsetzen typografischer Anführungszeichen bisher noch nicht unterstützt. Der Funktionsaufruf bleibt daher ohne Folgen für den Textimport.

Name Typ Default Beschreibung
Return int   kOn (= 1) : Ja, typografische Anführungszeichen werden verwendet
kOff (= 2) : Nein
domain int kLocal kLocal : Lokale Einstellung der Comet-Plugins
kGlobal : InDesign®-Einstellung aus den Import-Optionen
#include "internal/types.h"

v3.4 R7022, 21. Nov 2014

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::set_convert_quotas(int state = 0, int domain = 0)

Sollen beim Import von TaggedText typografische Anführungszeichen ersetzt werden oder nicht? Sie können die Einstellung entweder lokal nur für die Comet-Plugins oder systemweit in InDesign® ändern. Lokale Änderungen gelten maximal bis zum Ende der aktuellen Datenverbindung. Bei der Verbindung mit einem anderen Datenpool (Login, XML-Ordner) wird die lokale Einstellung so zurückgesetzt, dass wieder die InDesign®-Einstellung des Dialoges "Importoptionen" verwendet wird.

Von comet_pdf wird das automatische Einsetzen typografischer Anführungszeichen bisher noch nicht unterstützt. Der Funktionsaufruf bleibt daher ohne Folgen für den Textimport.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
state int kSystem kSystem : InDesign®-Einstellung verwenden
kOn : in typografische Anführungszeichen umwandeln
kOff : Anführungszeichen unverändert importieren
domain int kLocal kLocal : Lokale Einstellung der Comet-Plugins ändern
kGlobal : InDesign®-Einstellung in den Import-Optionen ändern

Lokale Einstellungen gelten bis zum Login/Logout. Globale Änderungen ändern die Importoptionen dauerhaft für alle Textimporte.

#include "internal/types.h"
#include "internal/types.h"
int ttt (int doAll) { char txt [8000];
strcpy (txt, "%!TT12"); strcat (txt, ""); strcat (txt, ""); strcat (txt, ""); strcat (txt, ""); strcat (txt, "\""); strcat (txt, ""); strcat (txt, " Nagel");
textmodel::append ("\nSystem (pre)\t"); textmodel::append (txt);
if (!doAll) return 0;
prefs::set_convert_quotas (kOn); textmodel::append ("\nTypografic\t"); textmodel::append (txt);
prefs::set_convert_quotas (kOff); textmodel::append ("\nNo conversion\t"); textmodel::append (txt);
prefs::set_convert_quotas (kSystem); textmodel::append ("\nSystem (post)\t"); textmodel::append (txt);
return 0; }
int main () { int oldState= prefs::get_convert_quotas (kGlobal);
textmodel::append ("==== Local ===="); ttt (1);
textmodel::append ("\n\n==== Global no conversion ===="); prefs::set_convert_quotas (kOff, kGlobal); ttt (1);
textmodel::append ("\n\n==== Global typographic ===="); prefs::set_convert_quotas (kOn, kGlobal); ttt (1);
textmodel::append ("\n\n==== Back ===="); prefs::set_convert_quotas (oldState, kGlobal); prefs::set_convert_quotas (kSystem, kLocal); ttt (0);
return 0; }

v3.4 R7022, 21. Nov 2014

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::set_logstate(int what, int how)

Zusätzliche Log-Informationen schreiben. Die Log-Nachrichten sollen insbesondere dem Debugging dienen.

Mit dem Menübefehl Plug-ins -> Comet -> Mehr Log-Ausgaben (Zusatzmodule statt Plug-ins in Versionen vor InDesign® 2025) können alle zusätzlichen Logausgaben ein- bzw. abgeschaltet werden.

Zusätzliche Log-Nachrichten sollten nur kurze Zeit eingeschaltet werden. Das Schreiben der Nachrichten kann viel Zeit in Anspruch nehmen und die Performance deutlich senken. Es können sehr große Log-Dateien einstehen. Beim Schreiben zusätzlicher Log-Nachrichten können vertrauliche Kundendaten ins Logfile geschrieben werden! Die zusätzliche Log-Nachrichten werden nach Neustart von InDesign® automatisch wieder abgeschaltet.

Name Typ Default Beschreibung
Return int   Alter Status
what int - Welche zusätzlichen Log-Informationen sollen geändert werden?

1 : Schreibe mit textmodel::insert, textmodel::replace, ..., frame::insert, ... importierte Texte ins Logfile. Texte länger als 1.000.000 Zeichen werden gekürzt.

2 : Einzelschritte von frame::fit und frame::fit_better
how int - Nachrichten-Status

0 : Abschalten
1 : Einschalten
2 : nur what=1 Zeilentrenner als \n und \r ausschreiben

v4.0.4, 27. Okt 2015

priint:comet InDesign® Plug-Ins, comet_pdf

comet.prefs.getLogState
comet.prefs.setLogState

static int prefs::enable_panel(
  int panelID,
  int state,
  char* signature)

Sperren von Comet-Paletten. Aufrufe der Funktion sollten bevorzugt im After-Login-Skript (panelstatement 92) gemacht werden. Nach Trennen der aktuellen Datenverbindung werden alle aktiven Palettensperrungen wieder aufgehoben.

Die Sperrung von Paletten dient lediglich dem Schutz vor unbeabsichtigten Änderungen von Konfigurationsdaten. Wir verraten natürlich nicht wie, aber ein einigermaßen geschickter Anwender kann die Sperrungen jederzeit wieder aufheben.

Geperrte Paletten können weiter geöffnet werden (oder bleiben sichtbar), sind aber deaktiviert. Wichtige Menüs wie das Aktualisieren von Platzhaltern in der Platzhalter-Palette bleiben weiter aktiv. Gesperrte Paletten werden mit einem breiten Textband gekennzeichnet:



Der Aufruf benötigt den Include

#include "internal/panels.h"

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
panelID int - Klassennummer der Palette oder -1.

Folgende Paletten werden unterstützt:

kPanelProducts (3)
kPanelPreviews (6)
kPanelPageitems (8)
kPanelPageitemsBehavior (402)
kPanelPublications (9)
kPanelPublicationInfo (418)
kPanelToDoList (10)
kPanelPlaceholder (125)
kPanelPlaceholderValues (401)
kPanelPlaceholderValuesInfo (413)
kPanelPageTemplates (403)
kPanelPageElements (404)
kPanelCometAdmin (405)
kPanelTableModule (406)
kPanelTranslations (407)
kPanelLayoutRules (408)
kPanelFrameTags (409)
kPanelAreaBuild (410)
kPanelPriintAdjust (411)
kPanelPriintAdjustList (412)
kPanelFrontRow (414)
kPanelNotes (415)
kPanelPreviewDetails (416)
kPanelProductsOfDocument (417)
kPanelSettings (419)
kPanelCometTests (420)
kPanelURLLink (421)

-1 : alle o.g. Paletten
state int - Status der Palette

0 : Palette sperren
1 : Palette freigeben
signature char* - Wer hat die Palette gesperrt?

Die Angabe wird hinter dem Text Palette gesperrt von des Sperrhinweises gezeigt und darf nicht leer oder länger als 255 Zeichen sein. Sonderzeichen im Text werden in der üblichen Form <0x00FC> kodiert.
Beginnt die Angabe mit dem Zeichen '@', wird nur der angegebene Text (ohne Palette gesperrt von) angezeigt.
#include "internal/panels.h"

Den oben abgebildeten Sperrhinweis erhalten Sie mit folgender Zeile:

prefs::enable_panel (kPanelPlaceholder, 0, "admin <0x2601><0x2665>. SCH<0x00D6>NEN DANK AUCH!");

v4.1, 1. März 2018

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

comet.panel.isEnabled
comet.panel.setEnabled

static int prefs::show_panel(
  int panelID,
  int state = 1,
  int* currentState = 0)

Zeigen/Verstecken von Comet-Paletten.

Der Aufruf benötigt den Include

#include "internal/panels.h"

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

-1199 : In comet_pdf liefert die Funktion immer den Fehler -1199.}
panelID int - Klassennummer der Palette.

Folgende Paletten werden unterstützt:

kPanelProducts (3)
kPanelPreviews (6)
kPanelPageitems (8)
kPanelPageitemsBehavior (402)
kPanelPublications (9)
kPanelPublicationInfo (418)
kPanelToDoList (10)
kPanelPlaceholder (125)
kPanelPlaceholderValues (401)
kPanelPlaceholderValuesInfo (413)
kPanelPageTemplates (403)
kPanelPageElements (404)
kPanelCometAdmin (405)
kPanelTableModule (406)
kPanelTranslations (407)
kPanelLayoutRules (408)
kPanelFrameTags (409)
kPanelAreaBuild (410)
kPanelPriintAdjust (411)
kPanelPriintAdjustList (412)
kPanelFrontRow (414)
kPanelNotes (415)
kPanelPreviewDetails (416)
kPanelProductsOfDocument (417)
kPanelSettings (419)
kPanelCometTests (420)
kPanelURLLink (421)
state int - Status der Palette

-1 : Sichtbarkeit erfragen
0 : Palette verstecken
1 : Palette zeigen
currentState int* 0 Aktuelle Sichtbarkeit. Der Parameter wird nur bei state = -1 ausgewertet.
#include "internal/panels.h"

v4.2 R33044, 9. Juni 2023

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

comet.panel.isVisible
comet.panel.setVisible

static int prefs::enable_unicode_escapes(int state = -1)

Sollen Unicode-Escapes der Form \XXXX in der Eingabe von frame::replace, textmodel::replace, ... automatisch in Uncicode-Zeichen konvertiert werden?

Die Standardeinstellung ist, dass Unicode-Escapes in Unicode-Zeichen umgewandelt werden. Nach Trennen der aktuellen Datenverbindung wird die Umwandlung von Unicode-Escapes in Unicode-Zeichen wieder aktiviert.

Name Typ Default Beschreibung
Return int   Bisheriger Status

1 : Ja, Unicode-Escapes werden in Unicode-Zeichen umgewandelt
0 : Nein, Unicode-Escapes werden nicht konvertiert
state int -1 Neue Einstellung

1 : Ja, Unicode-Escapes in Unicode-Zeichen umwandeln
0 : Nein, Unicode-Escapes nicht konvertieren -1 : Nur Status erfragen
int main ()
{
    int  oldState = prefs::enable_unicode_escapes (0);
frame::replace (gFrame, "\\\\TextModule\\Text5\\de8005.xml");
prefs::enable_unicode_escapes (oldState);
return 0; }

v4.1 R22423, 25. Apr 2018

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::webimage_get_proxy(
  int fromSoapflags = 0,
  int* activated = 0,
  int* useSoapflags = 0,
  String adr = 0,
  int* port = 0,
  String user = 0,
  String pwd = 0,
  String excepts = 0)

Ermittle die aktuellen (oder die soapflags.ini) Proxy-Einstellungen für Web-Bilder.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
fromSoapflags int 0 Welche Proxy-Daten sollen ermittelt werden?

0 : Aktueller Proxy
1 : Die Angaben aus soapflags.ini. In diesem Fall sind die Ergebnisse von activated und useSoapflags undefiniert.
activated int* 0 Nach erfolgreicher Ausführung enthält die Variable die Werte 0 (nicht aktiviert) oder 1 (aktiviert).

0 : Ergebnis ignorieren
useSoapflags int* 0 Nach erfolgreicher Ausführung enthält die Variable die Werte 0 (soapflags.ini nicht verwenden) oder 1 (soapflags.ini verwenden).

0 : Ergebnis ignorieren Bitte beachten Sie, dass soapflags.ini zum Programmstart gelesen wird und spätere Änderungen an der Datei ignoriert werden!
adr char* oder String 0 Nach erfolgreicher Ausführung enthält die Variable die gesuchte Proxy-Adresse.

0 : Ergebnis ignorieren
port int* 0 Nach erfolgreicher Ausführung enthält die Variable den gesuchten Proxy-Port.

0 : Ergebnis ignorieren
user char* oder String 0 Nach erfolgreicher Ausführung enthält die Variable den gesuchten Proxy-User.

0 : Ergebnis ignorieren
pwd char* oder String 0 Nach erfolgreicher Ausführung enthält die Variable das gesuchten Proxy-Passwort im Klartext.

0 : Ergebnis ignorieren
excepts char* oder String 0 Nach erfolgreicher Ausführung enthält die Variable die Liste der Ausnahmen für den Proxy.

0 : Ergebnis ignorieren

v4.2 R31045, 28. Jun 2022

priint:comet InDesign® Plug-Ins, Illustrator

comet.prefs.getWebImageProxy

static int prefs::webimage_set_proxy(
  String adr = 0,
  int* port = 0,
  String user = 0,
  String pwd = 0,
  String excepts = 0)

Setze den Proxy für Web-Bilder. Für Ausnahmen vom Proxy siehe hier.

Proxy-Einstellungen bleiben auch nach dem Trennen der aktuellen Datenverbindung erhalten und sind neustart-resistent!

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
adr char* oder String 0 Proxy-Adresse (URL oder IP)

"default" oder "soapflags" : Verwende die Einstellungen aus soapflags.ini. Bitte beachten Sie, dass soapflags.ini zum Programmstart gelesen wird und spätere Änderungen an der Datei ignoriert werden!

"off" oder 0 : Proxy abschalten
sonst : Proxy-Adresse (URL oder IP)
port int 0 Port für den Proxy

0 | -1 : Keinen Port verwenden
user char* oder String 0 Benutzername für den Proxy

0 : Login nicht erforderlich
pwd char* oder String 0 Passwort des Proxy im Klartext.

0 : Login nicht erforderlich
excepts char* oder String 0 Kommagetrennte Liste mit Ausnahmen für den Proxy, siehe hier.

0 : keine Ausnahmen

v4.2 R31045, 28. Jun 2022

priint:comet InDesign® Plug-Ins, Illustrator

comet.prefs.setWebImageProxy

static int prefs::webimage_proxy_dialog()

Setze den Proxy für Web-Bilder mit Hilfe des Proxy-Dialoges. Der gleiche Dialog kann auch manuell mit Hilfe des Flyout-Menüs Proxy... der Palette Web Bilder geöffnet werden.

Proxy-Einstellungen bleiben auch nach dem Trennen der aktuellen Datenverbindung erhalten und sind neustart-resistent!

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

v4.2 R31045, 28. Jun 2022

priint:comet InDesign® Plug-Ins, Illustrator

static int prefs::set_updatetype(int update_type = 0)

Festlegen des Verfahrens zur Behandlung bzw. Ermittlung von Platzhalter-Inhalten.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
update_type int 0 0 : Standardverhalten. Platzhalterinhalte werden aus dem aktuellen Datenpool geladen.

1 : Daten sichern. Platzhalterinhalte werden aus dem aktuellen Datenpool geladen.

Nachdem die Daten ins Dokument eingesetzt wurden, werden die Daten zusätzlich im aktuellen Datenordner abgelegt:

Ist der Platzhalter ein cScript, wird der Inhalt der char*-Variable gExportValue verwendet. Der Inhalt darf maiximal 6 MB lang sein. Längere Inhalte führen zum Absturz von InDesign®!

Bei direkten Anweisungen (select, get, ...) wird der Textinhalt der ersten Ergebnisspalte verwendet.

2 : Daten des Update-Ordners verwenden.

Bitte beachten Sie: Der Datenordner muß nicht für alle verschiedenen Platzhalter und Produkte Daten enthalten. Enthält er aber für einen Platzhalter Daten, müssen Daten für alle Produkt-IDs, die aktualisiert werden sollen, vorhanden sein.

v4.1 R23000, 8. Mai 2018

priint:comet InDesign® Plug-Ins, comet_pdf

get_updatetype
set_updatepath
get_updatepath
comet.prefs.setUpdateType

static int prefs::get_updatetype()

Ermitteln des aktuellen Ladeverhaltens von Platzhaltern.

Name Typ Default Beschreibung
Return int   0 : Standardverhalten. Platzhalterinhalte werden aus dem aktuellen Datenpool geladen.

1 : Daten sichern. Platzhalterinhalte werden aus dem aktuellen Datenpool geladen.

Nachdem die Daten ins Dokument eingesetzt wurden, werden die Daten zusätzlich im aktuellen Datenordner abgelegt:

Ist der Platzhalter ein cScript, wird der Inhalt der char*-Variable gExportValue verwendet. Der Inhalt darf maiximal 6 MB lang sein. Längere Inhalte führen zum Absturz von InDesign®!

Bei direkten Anweisungen (select, get, ...) wird der Textinhalt der ersten Ergebnisspalte verwendet.

2 : Daten des Update-Ordners verwenden.

Bitte beachten Sie: Der Datenordner muß nicht für alle verschiedenen Platzhalter und Produkte Daten enthalten. Enthält er aber für einen Platzhalter Daten, müssen Daten für alle Produkt-IDs, die aktualisiert werden sollen, vorhanden sein.

v4.1 R23000, 8. Mai 2018

priint:comet InDesign® Plug-Ins, comet_pdf

set_updatetype
set_updatepath
get_updatepath
comet.prefs.getUpdateType

static int prefs::set_updatepath(char* newpath, int askFor = 0)

Datenordner der Update-Daten für Platzhalter festlegen.

Der Datenordner wird nur verwendet, wenn der Update-Typ 2 ("Daten verwenden") gesetzt ist, siehe set_updatetype.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
newpath char* oder String - Vollständiger Pfad eines gültigen Datenordners mit Platzhalter-Inhalten
askFor int 0 Ordner-Dialog zur Auswahl des Pfades verwenden?

0 : Nein
1 : Ja, Ordnerauswahl-Dialog zeigen

v4.1 R23000, 8. Mai 2018

priint:comet InDesign® Plug-Ins, comet_pdf

set_updatetype
get_updatetype
get_updatepath
comet.prefs.setUpdatePath

static char* prefs::get_updatepath()

Ermittle den aktuellen Pfad des Datenordners für Platzhalter-Aktualisierungen

Name Typ Default Beschreibung
Return char*   Vollständiger Pfad des Datenordners für Platzhalter-Aktualisierungen

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.

v4.1 R23000, 8. Mai 2018

priint:comet InDesign® Plug-Ins, comet_pdf

set_updatetype
get_updatetype
set_updatepath
comet.prefs.getUpdatePath

static int (float newTimeout)

Bitte verwenden statt dessen die Funktionen prefs::webimage_connect_timeout, prefs::webimage_header_timeout und prefs::webimage_timeout.

static float prefs::webimage_connect_timeout(float newTimeout)

Setze den Timeout für den Verbindungsauf zum Server eines Web-Bildes. Die Funktion setzt lediglich den Timeout für den Verbindungsaufbau, die Dauer der Downloads können Sie mit prefs::webimage_header_timeout und prefs::webimage_timeout festlegen.

Name Typ Default Beschreibung
Return float   -2.0 : Fehler
Sonst : Alter Timeout
newTimeout float - Neuer Timeout für den Verbindugsaufbau von Web-Bildern in Sekunden. Fehlt der Parameter, gibt die Funktion den aktuellen Timeout für den Verbindungsaufbau zurück.

<= 0.0 : 3.0 Sekunden
sonst : Timeout in Sekunden

Achtung: Die Angabe ist ein float, kein Integer!

v4.1.8 R30464, 23. März 2022

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

webimage_header_timeout
webimage_timeout
comet.prefs.getWebImageTimeout
comet.prefs.setWebImageTimeout

static float prefs::webimage_header_timeout(float newTimeout)

Setze den Timeout zum Download der Header-Informationen eines Web-Bildes. Der Header-Download dient der überprüfung des Bildes und sollte in der Regel innerhalb von höchstens 3 Sekunden erledigt sein.

Name Typ Default Beschreibung
Return float   -2.0 : Fehler
Sonst : Alter Timeout
newTimeout float - Neuer Timeout für den Header-Download von Web-Bildern in Sekunden. Fehlt der Parameter, gibt die Funktion den aktuellen Timeout zurück.

<= 0.0 : Beliebig lang
sonst : Timeout in Sekunden

Achtung: Die Angabe ist ein float, kein Integer!

v4.1.8 R30464, 23. März 2022

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

webimage_connect_timeout
webimage_timeout
comet.prefs.getWebImageTimeout
comet.prefs.setWebImageTimeout

static float prefs::webimage_timeout(float newTimeout)

Setze den Timeout zum Download von Web-Bildern.

Name Typ Default Beschreibung
Return float   -2.0 : Fehler
Sonst : Alter Timeout
newTimeout float - Neuer Timeout für den Download von Web-Bildern in Sekunden. Fehlt der Parameter, gibt die Funktion den aktuellen Timeout zurück.

<= 0.0 : Beliebig lang
sonst : Timeout in Sekunden

Achtung: Die Angabe ist ein float, kein Integer!

v4.1.8 R30464, 23. März 2022

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

webimage_connect_timeout
webimage_header_timeout
comet.prefs.getWebImageTimeout
comet.prefs.setWebImageTimeout

static int prefs::webimage_enable_locks(int newState = -1)

Aktiviere/Deaktiviere das Sperren der Downloaddateien von Web-Bildern.

Durch das Sperren der Downloaddateien von Web-Bildern wird verhindert, dass mehrere konkurrierende Prozesse (InDesign®-, InDesign® Server, comet_pdf) des gleichen Rechners zur gleichen Zeit die gleiche Zieldatei schreiben/ändern wollen.

Ist die Option aktiviert, wird die Zieldatei jedes Web-Bild-Downloads für alle konkurrierenden Prozesse des gleichen Rechners solange gesperrt, bis der Download beendet ist. Erst dann kann ein konkurrierender Prozess seinen Download fortsetzen (und dann in aller Regel ohne eigenen Download direkt auf das gerade heruntergeladene Bild zugreifen).

Die Option ist bei Neustart von InDesign®-, InDesign® Server und comet_pdf deaktiviert und kann (zum Beispiel) im After-Login-Skript (Panelstatement 92) aktiviert werden. Beim Trennen der aktuellen Datenverbindung wird Option automatisch wieder deaktiviert. Die Option kann problemlos auch im Einzelplatzbetrieb mit nur einem InDesign® (Desktop) aktiviert werden. Unbedingt nötig ist sie aber dann, wenn mit mehreren InDesign® Server- und/oder comet_pdf-Instanzen gearbeitet wird, deren Web-Bilder gleiche Zielordner verwenden!

Name Typ Default Beschreibung
Return int   -2 : Fehler
sonst : Alter Status
newState int -1 Neuer Status

< 0 : Nur aktuellen Status erfragen
0 : Deaktivieren
1 : Aktivieren (wird beim Trennen der aktuellen Datenverbindung zurückgesetzt auf 0)
if (val (system::revision () >= 36308)
{
    prefs::webimage_enable_locks (1);
}

v4.3 R36308, 10. März 2025

priint:comet InDesign® Plug-Ins, comet_pdf

set_urllink_folder
webimage_lock_timeout
webimage_remove_locks

static float prefs::webimage_lock_timeout(float newValue = 0.0)

Setze den Timeout für das Sperren der Downloaddatei eines Web-Bildes.

In aller Regel ist ein Timeout für das Sperren der Download-Datei nicht nötig. Aber wenn Sie einen Timeout setzen, sollte er mindestens so groß sein, dass auch das größte zu erwartende Web-Bild in dieser Zeit geladen werden kann.

Name Typ Default Beschreibung
Return float   -2.0 : Fehler
Sonst : Alter Timeout
newTimeout float - Neuer Timeout für das Sperren der Downloaddatei von Web-Bildern in Sekunden. Fehlt der Parameter, gibt die Funktion den aktuellen Timeout zurück.

<= 0.0 : Beliebig lang
sonst : Timeout in Sekunden

Achtung: Die Angabe ist ein float, kein Integer! Diew Einstellung wird beim Trennen der aktuellen Datenverbindung wieder auf 'Unendlich' zurückgesetzt.

v4.3 R36308, 10. März 2025

priint:comet InDesign® Plug-Ins, comet_pdf

webimage_enable_locks
webimage_remove_locks
webimage_timeout
comet.prefs.getWebImageTimeout
comet.prefs.setWebImageTimeout

static int prefs::webimage_remove_locks()

Entfernen aller Sperren von Web-Bild-Downloads.

Der Befehl setzt die kompletten Komponenten zum Sperren von Web-Bild-Downloads zurück. Ist das Sperren in einer beliebigen Instanz aktiviert (siehe webimage_enable_locks) werden die Komponeten bei Bedarf automatisch neu angelegt.

Sie sollten diesen Befehl sehr sparsam einsetzen und auf alle Fälle darauf achten, dass er, wenn überhaupt, dann nur von der ersten gestarteten Instanz ausgeführt wird!

Name Typ Default Beschreibung
Return int   0 oder Fehlercode

v4.3 R36308, 10. März 2025

priint:comet InDesign® Plug-Ins, comet_pdf

webimage_enable_locks
set_urllink_folder
webimage_lock_timeout

static int prefs::set_urllink_folder(char* path)

Setze einen globalen Ordner für den Download von Web-Bildern. Weitere Informationen zu Ablage von Web-Bildern finden Sie hier.

In Ison finden Sie das Skript hier:

    

Ist Panelstatement 141 zur individuellen Berechnung des Downloadpfades definiert, wird die Angabe ignoriert. Der Pfad wird bei jedem Logout zurückgesetzt.

Name Typ Default Beschreibung
Return int   Fehlercode or 0
path String oder char* - Neuer globaler Pfad für den Download von Web-Bildern

Achten Sie inbesondere bei im Serverbetrieb darauf, dass jede Instanz einen eigenen globlen Ablageordner verwendet!

if (!system::is_server ())
{
    prefs::set_urllink_folder ("/Volumes/Images");
}
else
{
    char tmp [512];
    sprintf (tmp, "/Volumes/Images_%s", server::get_session_arg ("-configuration"));
    prefs::set_urllink_folder (tmp);
}

Ab v4.3 R36308 können Sie auch einen gemeinsamen Dowwload-Ordner für alle Instanzen verwenden.

int main ()
{
    string::set (gDestFolder, "/Volumes/Images");
    prefs::webimage_enable_locks (1);
    return 0;
}

v4.1.6 R25445, 2. July 2019

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

get_urllink_folder
Downloadpfad für Web-Bilder, comet.prefs.setURLLinkFolder

static char* prefs::get_urllink_folder()

Ermittle den aktuell gesetzten Fallback für den Download von Web-Bildern, siehe set_urllink_folder.

Name Typ Default Beschreibung
Return char*   Aktueller Fallback für den Download von Web-Bilder.

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.

v4.1.6 R25445, 2. Juli 2019

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

set_urllink_folder
Downloadpfad für Web-Bilder, comet.prefs.getURLLinkFolder

static int prefs::get_xml_parsertype()

Welcher XML-Parser wird für XML-Dateien verwendet? Die Einstellung wird global für alle XML-Dateien verwendet. Der Rückgabewert der Funktion entspricht der Programmeinstellung Zusatzmodule -> Comet -> XML-Auswertung in InDesign®, der Programmoption -cometxmlparser in InDesign® Server bzw. den Programmoptionen -r oder --xmlread in comet_pdf.

Der XML-Parser ist der Teil des Programmes, der XML-Text liest und den Inhalt in internen Datenstrukturen, den sog. XML-Bäumen (siehe hier) ablegt.

Weitere Informationen zum XML-Parsertyp finden Sie hier.

Name Typ Default Beschreibung
Return int   Verwendeter Parser für XML-Text

-1 : Fehler bei der Ermittlung

1 : Klassisch Windows : msxml, Mac : built-in CoreFoundation-Parser CFXMLParser

2 : Optimiert Unter Windows ist die Einstellung gleichbedeutend mit 'Klassisch'. Unter Mac wird ein Fehler im CoreFoundation-Parser korrigiert, der verursacht, dass &lt;...&gt; im laufenden Text als eigene Entities interpretiert werden. Dadurch gehen alle Leerzeichen vor und hinter diesem Textteil verloren. Mit 'Optimiert' werden Whitespaces um Unicode-Zeichen der Form <0xXXXX> geschützt.
ACHTUNG: Es werden ausschließlich Entities der Art <0xXXXX> berücksichtigt! Im TaggedText "aaa<cSize:72.000000> <cSize:>bbb" geht das Leerzeichen zwischen aaa und bbb weiterhin verloren.

3 : Schnell In Plugins und comet_pdf integrierter schneller und systemunabhängiger XML-Parser. Der Parser ist etwa 50% schneller als der CoreFoundation-Parser und msxml.

v4.1.6, R25445, 10. Juli 2019

priint:comet InDesign® Plug-Ins, comet_pdf

set_xml_parsertype
xmlquery

static int prefs::set_xml_parsertype(int newType)

Setze den Typ des XML-Parsers, der zum Einlesen von XML verwendet werden soll. Die Einstellung der Funktion entspricht der Programmeinstellung Plug-ins -> Comet -> XML-Auswertung (Zusatzmodule statt Plug-ins in Versionen vor InDesign® 2025) in InDesign®, der Programmoption -cometxmlparser in InDesign® Server bzw. den Programmoptionen -r oder --xmlread in comet_pdf.

Der XML-Parser ist der Teil des Programmes, der XML-Text liest und den Inhalt in internen Datenstrukturen, den sog. XML-Bäumen (siehe hier) ablegt.

Weitere Informationen zum XML-Parsertyp finden Sie hier.

Die Einstellung wird beim Trennen der aktuellen Datenverbindung wieder zurückgesetzt auf den zuvor im Programm festgelegten Parsertyp.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
newType int - Welcher Parser soll beim Einlesen von XML verwendet werden?

1 : Klassisch Windows : msxml, Mac : built-in CoreFoundation-Parser CFXMLParser

2 : Optimiert Unter Windows ist die Einstellung gleichbedeutend mit 'Klassisch'. Unter Mac wird ein Fehler im CoreFoundation-Parser korrigiert, der verursacht, dass &lt;...&gt; im laufenden Text als eigene Entities interpretiert werden. Dadurch gehen alle Leerzeichen vor und hinter diesem Textteil verloren. Mit 'Optimiert' werden Whitespaces um Unicode-Zeichen der Form <0xXXXX> geschützt.
ACHTUNG: Es werden ausschließlich Entities der Art <0xXXXX> berücksichtigt! Im TaggedText "aaa<cSize:72.000000> <cSize:>bbb" geht das Leerzeichen zwischen aaa und bbb weiterhin verloren.

3 : Schnell In Plugins und comet_pdf integrierter schneller und systemunabhängiger XML-Parser. Der Parser ist etwa 50% schneller als der CoreFoundation-Parser und msxml.

v4.1.6, R25445, 10. Juli 2019

priint:comet InDesign® Plug-Ins, comet_pdf

get_xml_parsertype
xmlquery

static int prefs::get_transform_settings(
  int* changeScaleFactor = 0,
  int* scaleStrokes = 0,
  int* scaleEffects = 0)

Ermittle die aktuellen InDesign®-Programmeinstellungen für das Skalieren von Rahmen Allgemein : Objektbearbeitung : Beim Skalieren.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
changeScaleFactor int* 0 Ist die Option Skalierugsprozentsatz anwenden aktiviert?
scaleStrokes int* 0 Ist die Option Konturstärke einschließen aktiviert?
scaleEffects int* 0 Ist die Option Effekte einschließen aktiviert?

v4.1.6, R25679, 2. Sept. 2019

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::set_transform_settings(
  int changeScaleFactor = -1,
  int scaleStrokes = -1,
  int scaleEffects = -1)

Setze die aktuellen InDesign®-Programmeinstellungen für das Skalieren von Rahmen Allgemein : Objektbearbeitung : Beim Skalieren.

Unter comet_pdf hat der Aufruf keine Wirkung!

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
changeScaleFactor int -1 Setze die Option Skalierugsprozentsatz anwenden.

0 : Abschalten
1 : Ativieren
-1 : Unverädert lassen
scaleStrokes int -1 Setze die Option Konturstärke einschließen.

0 : Abschalten
1 : Ativieren
-1 : Unverädert lassen
scaleEffects int -1 Setze die Option Effekte einschließen.

0 : Abschalten
1 : Ativieren
-1 : Unverädert lassen

v4.1.6, R25679, 2. Sept. 2019

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::enable_preflights(int scope = 0, int state = -1)

Preflights ein- und ausschalten.

Die Funktion entspricht der Checkbox "Ein" der Preflights-Palette. Das Einschalten der Preflights bedeutet nicht automatisch, dass die Regeln auch sofort ausgeführt werden.

Name Typ Default Beschreibung
Return int   Neuer Status:

0 : Preflights deaktiviert
1 : Preflights aktiviert sonst : Fehler

Unter comet_pdf ist die Funktion definiert, wird aber einen Fehler zurückgeben.
scope int 0 Wirkungsbereich

0 : Global für alle Dokumente

1 : aktuelles Dokument. Beachten Sie bitte, dass die Eingeschaft nicht im Dokument hinterlegt wird. Beim nächsten Öffnen des Dokumentes wird also auch für dieses Dokument wieder der globale Preflight-Status gelten!
state int -1 Preflights-Status

-1 : Nur erfragen
0 : Preflights abschalten
1 : Preflights ermöglichen

v4.2 R33044, 9. Juni 2023

priint:comet InDesign® Plug-Ins, comet_pdf

static int prefs::get_previewpages_options(
  int* active = 0,
  int* numOfPages = 0,
  int* size_ = 0)

Aktuelle Werte der InDesign®-Voreinstellungen Dateihandhabung : InDesign-Dateien speichern.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
active int* 0 Ist das Abspeichern von Seiten-Previews aktiviert?
0 : Ergebnis ignorieren
Sonst : Zeiger auf eine int-Variable (z.B. &intVar)

Nach erfolgreicher Ausführung der Funktion enthält die Variable folgende mögiche Werte:
0 : Deaktiviert
1 : Aktiviert
numOfPages int* 0 Wieviel Seiten-Previews werden angelegt?
0 : Ergebnis ignorieren
Sonst : Zeiger auf eine int-Variable (z.B. &intVar)

Nach erfolgreicher Ausführung der Funktion enthält die Variable folgende mögiche Werte:
1 : Nur erste Seite
2 : Maximal erste und zweite Seite
5 : Maximal die ersten fünf Seiten
10 : Maximal die ersten zehn Seiten
11 : Alle Seiten

Bitte beachten Sie : Andere Seitenbereiche werden von InDesign® nicht unterstützt.
size_ int* 0 Wie groß werden die Seiten-Previews?
0 : Ergebnis ignorieren
Sonst : Zeiger auf eine int-Variable(z.B. &intVar)

Nach erfolgreicher Ausführung der Funktion enthält die Variable folgende mögiche Werte:
1 : Klein 128x128
2 : Mittel 256x256
3 : Groß 512x512
4 : Sehr groß 1024x1024

Bitte beachten Sie : Andere Preview-Größen werden von InDesign® nicht unterstützt.

v4.3 R36250, 1. März 2025

priint:comet InDesign® Plug-Ins
set_previewpages_options

static int prefs::set_previewpages_options(
  int activate = 1,
  int numOfPages = -1,
  int size_ = -1)

Setze die aktuellen Werte der InDesign®-Voreinstellungen Dateihandhabung : InDesign-Dateien speichern.

Die Seitenpreviews werden im sogenannten XMP Header der Dokumente gespeichert und haben nur für Prgramme eine Bedeutung, die diesen Header auslesen. Siehe hierzu auch das Helfer-Programm glance.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
active int* 1 Aktiviere/Deaktiviere das Abspeichern von Seiten-Previews
-1 : Unverändert lassen
0 : Deaktivieren
1 : Aktivieren
numOfPages int* -1 Wieviel Seiten-Previews sollen angelegt werden?
-1 : Unverändert lassen
1 : Nur erste Seite
2 : Maximal erste und zweite Seite
5 : Maximal die ersten fünf Seiten
10 : Maximal die ersten zehn Seiten
11 : Alle Seiten

Bitte beachten Sie : Andere Seitenbereiche werden von InDesign® nicht unterstützt.
size_ int* -1 Wie groß sollen die Seiten-Previews werden?
-1 : Unverändert lassen
1 : Klein 128x128
2 : Mittel 256x256
3 : Groß 512x512
4 : Sehr groß 1024x1024

Bitte beachten Sie : Andere Preview-Größen werden von InDesign® nicht unterstützt.

v4.3 R36250, 1. März 2025

priint:comet InDesign® Plug-Ins
get_previewpages_options

Seit
Version 3.1, R1760, 25. Feb. 2010

Alphabetic index HTML hierarchy of classes or Java