Comet_pdf ist ein eigenständiges Programm zur Generierung von PDFs. Als Basis werden Dokumente verwendet, die mit Adobe® InDesign® und Comet-Plug-Ins erzeugt wurden. Für die Komposition der PDF-Dokumente können alle gängigen Comet-Technologien verwendet werden:
Die Ausgabe des PDFs erfolgt mit Hilfe der PDFLib von PDFLib.com.
comet_pdf ist nicht InDesign®. Bevor Sie mit einem in InDesign® implementierten Projekt mit comet_pdf produktiv gehen, müssen das gesamte Projekt, alle Arbeitsschritte und alle Ergebnisse gründlich mit comet_pdf getestet werden. Eine Zusammenfassung bekannter Einschränkungen von comet_pdf finden Sie hier. Eine Liste der cScript-Funktionen und deren Verfügbarkeiten finden Sie hier.
Bitte prüfen Sie vor dem Druck Ihre PDFs sorgfältig! WERK II und Partnerfirmen übernehmen keinerlei Haftung für fehlerhafte Druckerzeugnisse oder Verzögerungen, die dadurch entstehen.
comet_pdf zeigt Ihnen die aktuelle Version und eine kurze Hilfe in den folgenden drei Situationen:
Version:
comet_pdf v4.1.6 R27000, based on Comet 4.1.7 and PDFlib 9.2.0, 64bit
Usage:
comet_pdf
-c | --conn path [app_path] Path to connections.xml
-l | --login name [empty] Entry for connection data in connections.xml
-x | --cache path [app_path/XCache/Upid] Path to XCache folder.
| --config-cache [no] Cache downloaded config
-v | --log path [empty] Write logfile
| --logx path [empty] Write extra logfile for API calls
| --logger path [empty] Logger configuration XML, full path or folder of log.xml
-i | --in path [empty] Input file or template
-o | --out path [empty] Output path for PDF
-y | --layer name [Layer 1] Default layer for frames
-u | --pdflog name [empty] Write log of PDFlib calls
-p | --products path [empty] Path to products list (items.XML)
-q | --product string [empty] One product id in format "1 0 0 ''"
-t | --template string [empty] TemplateID (and position) in format "12 36.0 36.0"
-e | --exec ID [0] Action to execute, keyword "place" or path to script
-Q | --params string [empty] gParamN~ for script in option -e
-g | --global var=val [empty] Temporary change a global variable of the pool
-L | --launch [off] Auto launch resulting PDF
-N | --nolaunch [off] Suppress auto launch resulting PDF
-H | --config_path path [app_path] Folder with configuration files (change app_path)
-H | --hyphens path [app_path/hyphenations] Folder with hyphenation files
-P | --psnames path [empty] XML file with font names
| --fontfolders path [empty] XML file with more font folders
| --fontfolder path [empty] Additional folder to search for fonts
-E | --eps_esc path [empty] XML file with EPS escapes
-V | --verbose flags [empty] Print internal infos, any of 'bcedioqrstw*X'
-C | --crop [off] Crop pages, "l [t r b]", width of white strips in points
-f | --folders path [empty] Additional image search path(s)
-r | --xmlread string [classic] XML parser type : classic, optimized, fast
-z | --pdfset string [empty] pdf preset
| --pdfsets string [empty] list pdf presets into file
| --compression int [9] 0 (no compression), ..., 9 (best compression)
-A | --annot [no] Draw annotations (Comet Notes)
-a | --adorns tofFuUepcih [empty] Various kinds of adornments
| --preview string [empty] Preview options (NOT USED FOR NOW)
| --spreadwise [off] Spread wise export of pages
| --autosave [off] Save the input w2ml to outpath.w2ml
| --save path [empty] Save changes made on input W2ML to path
| --metadata int [0] 0 : Off,
1 : Create
2 : Preview groups
4 : Zip
8 : Next to w2ml
16 : Next to PDF
32 : Suppress
| --docid string [empty] priint document id
| --l_type string [empty] Login : type
| --l_service string [empty] Login : service (path, name, or URL)
| --l_user string [empty] Login : user name
| --l_pwd string [empty] Login : password
| --l_PWD string [empty] Login : password (crypted)
| --l_db string [empty] Login : database
| --l_client string [empty] Login : client
| --crypto string [empty] Crypt password
-m | --merge path [empty] path to xml to compose PDF file
| --scriptin path [empty] path to script argument (gArgument) file
| --scriptout path [empty] path to script result string (gOutput)
| --pidstart path [empty] path to file indicating program start
| --piddone path [empty] path to file indicating program end
-j | --comet-api path [empty] path to XML with Comet API call
| --interactive string [empty] Interactive PDF flags (1: on,2:tab order,4:article order)
| --icc string [app_path/colorprofiles.xml] Path to colorprofiles.xml
| --apply_icc string [off] Apply color profiles of document
| --working_icc string [empty] name of working CMYK color profile for PDFX/4, 5 conform PDFs
| --w2lic_path string [app_path/w2.lic] path to priint:suite license (w2.lic)
| --pdflic_path string [app_path/licensekeys.txt] path to PDFlib license (licensekeys.txt)
| --w2lic [no] Validate priint license : 0=DEMO, 1=Preview, 2=Okay
| --pdflic [no] Validate PDFLib license : 0=Failed, 1=Watermark, 2=Okay
| --no_bash_colors [off] Suppress colored messages (usefull for output redirections)
| --playback [off] Playback mode (off | record | on)
| --playback_path string [empty] Path to playback data folder
| --soaplog [off] if given, dump soap traffic to $DESKTOP/_soap*.log
| --fontscale float [1.0] Scale text by the given amount (1.0 is 100%)
| --urllink_update keyword [off] Update Web Images of input file (off | missing | all)
| --update_path string [empty] Path to folder for update data -- since v4.1.5
| --upr string [off] Write a Unix PostScript Resource (UPR) file only
| --typographics [off] Use typographics quotas (on, off)
| --awesome path [empty] Path to file with additional 'Awesome' icon names
| --awesometest fontname [empty] Test this Awesome font (given by Postscript name)
| --desttype keyword [pdf] Type of destination file (pdf, html)
| --htmlhead path [empty] Path to additional html header stuff before </head>
| --htmlfoot path [empty] Path to additional html footer stuff before </body>
| --htmloptions path [empty] Path to file with html export options
| --deepl path [empty] Path to file with deepl.com Authentication key
| --lang keyword [empty] Destination language (EN, DE, FR, ES, PT, IT, NL, PL, RU)
| --checkfonts int [0] Dump missing font definitions
1 : psfonts C++
2 : psfonts XML
3 : fontdb C++
4 : fontDB XML
| --font-policy int [63] Allow / disallow font mapping, bitmap, see details below.
| --report path [empty] Write document issues report to XML file.
| --legalnotes [off] Show Legal Notes in browser
| --lazyfit int [0] 0 : Off, 1 : On - Avoid superflous FitFrames
| --check-webimages int [1] 0 : Off, 1 : On - Should Web Images checked before use?
| --unused-styles int [0] 0 : Off, 1 : On - Show unused styles at the end
| --linearize int [0] 0 | no | off : Off, 1 | yes | on : On
| --pdflayers int [0] 0 | no | off : Off, 1 | yes | on : On
| --debugpy int [0] Start the Python debuger server on this port.
| --shorcuts path [app_path/shortcuts.xml] Complete path to shortcuts XML (optionally with :name)
-s | --shorcut name [empty] Name of shortcut in shortcuts XML
-h | --help [no] Priints this help
Hints:
Incomplete paths are resolved relative to the current application path.
You may use the following abbreviations:
\$DESKTOP Your desktop folder
\$HOME Your home directory
\$DOCUMENTS Your documents folder
\$CACHE Current path to current XCache sub folder
\$PLUGINS Current path to comet_pd
Shortcuts:
demo_build Build some comics
demo_place Place one comic using action 120399
demo_place2 Place one comic default placing
Examples:
comet_pdf -s hello
comet_pdf -s demo_build -L
comet_pdf -s demo_place -L
comet_pdf -s demo_place2 -L
Legal notes:
Legal notes for used third party software see here:
Path_To_Comet_Offline_Doku/enEN/legal_notes.html
Achtung: Unter Windows darf das $-Zeichen nicht \ maskiert werden!
Beachten zum Setzen der Programmparameter auch die Hinweise zu den Shortcuts.
Alle Programm-Optionen werden strikt in der Reihenfolge ihres Auftretens ausgewertet. Spätere Angaben überschreiben dabei vorangegangene. Einzige Ausnahme ist die Option -f. Hier werden alle Angaben addiert. Ebenso verhält sich die Shortcut-Option : Alle Optionen, die ein Shortcut enthält, überschreiben ältere Angaben. Leere Angaben im Shortcut setzen die entsprechende Option auf ihren Default zurück. Genauso ändern Optionen, die auf einen Shortcut folgen, die entsprechende Option erneut.
Verwende die im Shortcut test gemachten Einstellungen. Zum Schluß soll die erzeugte PDF-Datei gezeigt werden.
comet_pdf -s test -L
Als Connection-Name wird zuerst demo gewählt. Dann überschreibt der Shortcut test diese Einstellung möglicherweise. Die letzte Angabe setzt dann den Namen demo2. Und der wird dann verwendet.
comet_pdf -l demo -s test -l demo2
Eine weitere Ausnahme ist die Option -a. Diese Option ist additiv, d.h. mehrere Angaben werden addiert. Nur die Angabe <a></a> eines Shortcuts setzt den Wert zurück. Enthält ein Shortcut mehrere Definitionen zu <a></a> gewinnt auch hier die letzte.
Eine vollständige Liste der Änderungen am Programm finden Sie hier.
Produktlisten werden im gleichen Format wie für InDesign® Server übergeben. Sie können Produktlisten direkt in InDesign® erzeugen. Öffnen Sie dazu die Palette Produkte des Dokumentes und erstellen Sie dort die gewünschte Produktliste. Mit dem Button rechts unten in der Palette können Sie die erstellte Liste als XML sichern. Dabei öffnet sich zunächst der Dialog mit den Einstellungen für den Produktaufbau (ab v3.4 R5678). Hier sind fast alles Felder deaktiviert. Im oberen Bereich können die Optionen einstellen, die für den Produktaufbau relevant sind.
Natürlich können die Listen auch von einem externen Programm erstellt werden.
Hier eine Produktliste (items.xml) mit nur einem Produkt. Der erste Eintrag legt das zu verwendente Seitentemplate fest.
<?xml version="1.0" encoding="utf-8"?> <items version="3.4" pluginRevision="5678" ref="document" documentID="" spreadID="" pageID="" groupID="" elementID="" importFlags="0x20000000" documentPath="/Users/paul/Desktop" documentName="aaa.indd" sMissingPlugIns="0" isConverted="0" isModified="0" isReadOnly="0"> <item> <ID>1</ID> <ID2>0</ID2> <ID3>0</ID3> <stringID/> <pageitemID>0</pageitemID> <type>pagetemplate</type> <pageType>1</pageType> <layout_layers/> <document-position>-1</document-position> <groupID>0</groupID> <classID>3</classID> <status>normal</status> <elementID>0</elementID> <preruleID>0</preruleID> <preruleParams/> <postruleID>0</postruleID> <postruleParams/> </item> <item> <ID>1</ID> <ID2>1</ID2> <ID3>0</ID3> <stringID/> <pageitemID>1</pageitemID> <type>product</type> <pageType>-1</pageType> <layout_layers/> <document-position>-1</document-position> <groupID>0</groupID> <classID>3</classID> <status>inserted</status> <elementID>0</elementID> <preruleID>0</preruleID> <preruleParams/> <postruleID>0</postruleID> <postruleParams/> </item> </items>
Optionen werden als Bitfelder erwartet. Die Werte können addiert werden.
| Option | Wert | Bemerkungen |
| Bestehende Seiten und -templates bevorzugen |
0x20000000 |
|
| Seitentemplates der Produkte anwenden |
0x40000000 |
Diese Option ist nur für Reorganisationen wichtig. Vom Renderer wird sie nicht benötigt. |
| Musterseiteneinträge freistellen und laden |
0x80000000 |
Zur Unterstützung des Adobe Experiance Managers (AEM) können Produktlisten auch direkt aus dem Asset-Bestand eines AEM geladen werden. Kennzeichnen Sie den Pfad dazu durch mit dem Prefix aem@. Danach folgt die vollständige URL zur Produktliste. Ein Stern (*) am Ende der URL wird dabei automatisch durch documentId.txt ersetzt. documentId ist dabei die Dokument-ID der Eingabe-Datei.
Hier ein Beispiel für einen vollständigen Aufruf aus AEM:
comet_pdf
-l demo
-i ${file}
-o${directory}\${basename}.pdf
-p aem@http://admin:****@localhost:4502/content/dam/products-of-documents/*
--metadata 16
-v C:\Users\paul\Desktop\aaa.log
InDesign-Dokumente werden als Binärdateinen gesichert. Das Format dieser Dateien ist nicht öffentlich und kann (und darf) ausschließlich von InDesign® gelesen und geschrieben werden. Wir haben deshalb als Austausch-Format das Format W2ML entwickelt.
Beachten Sie also bitte, dass InDesign-Dokumente von comet_pdf weder gelesen noch geschrieben werden können. Der Dokument-Austausch zwischen beiden Programmen erfolgt immer über W2ML.
Für Illustrator® gibt es keine W2ML-Unterstützung.
W2ML enthält alle wichtigen Informationen eines InDesign®-Dokumentes und kann von InDesign® und comet_pdf gelesen und geschrieben werden. Eine Liste der bekannten Einschränkungen finden Sie hier.
So erzeugen Sie Dateien im Format W2ML:
| Verfahren | Beschreibung |
| Automatisch |
Beim Sichern von Templates können die zugehörigen W2ML-Dateien automatisch erzeugt werden. Dazu müssen Sie Ihr AfterLogin-Skript (Panelstatement 92) um diese Zeile erweitern: prefs::add_w2ml_to_templates (1); Nach Neuverbindung werden bei jedem Sichern von Templates die zugehörigen W2ML-Dateien neben die INDD-Versionen der Template-Files gelegt. |
| Manuell | Menü Datei->Exportieren... und im erscheinenden Dialog das Format
Comet Austauschformat (w2ml) wählen |
| Programmatisch |
cScript : server::get_elements mit den Optionen xmlversion:3.1;content:tagged,properties; |
| comet_pdf | Optionen --autosave und --save path |
Da comet_pdf die gleichen Datenverbindungen (und sogar die gleichen Implementierungen dafür) verwendet wie die Comet-Plugins (siehe auch hier), können Änderungen an Platzhaltern und anderen Aktionen direkt angewendet werden. Durch die Möglichkeit, beim Sichern von Templates auch die W2ML-Varianten der Templates zu aktualisieren, können auch Templates nach Änderungen in InDesign® direkt angewendet werden.
Das Format W2ML wird mit der Entwicklung von comet_pdf "mitwachsen". Es ist daher wichtig, dass die W2ML-Exporte mit einer genügend aktuellen Version der Comet-Plugins erstellt werden.
Version und Release der priint:comet Plugins, die ein W2ML erstellt haben, sind in der W2ML-Datei in den Attributen
psc:elementlist.version und psc:elementlist.pluginRevision
in der ersten Zeile der Datei vermerkt.
Die Version von comet_pdf erhalten Sie, wenn Sie das Programm mit der Option -h oder ohne weitere Optionen aufrufen, siehe auch hier.
W2ML-Templates werden bei Plugin-Wechseln natürlich nicht automatisch aktualisiert. Alle Templates, die comet_pdf verwenden soll, müssen entsprechend aktualisiert werden.
Die folgende Tabelle enthält die neu hinzugekommenen XML-Attribute und das zugehörige Erscheinungsdatum:
| Feature | priint:comet Version |
| Minimum |
v3.3.1 R4444 |
Vertikale Ausrichtung in Textrahmen
|
v3.3.1 R4567 |
Inhalt eines Textrahmens
|
v3.3.1 R4616 |
Benutzername (Autor)
|
v3.3.1 R4616 |
Ecken von Rahmen
|
v3.3.1 R4616 |
Sichtbarkeit und Musterseite eines Rahmens
|
v3.3.1 R5554 |
Standardgröße und -typ der Dokumentseiten
|
v3.3.1 R5800 |
Musterseiten
|
v3.4 R6060 |
Seitengröße und -typ
|
v3.4 R6123 |
Lokale überschriebene Rahmen aus Musterseiten
|
v3.4 R6161 |
Hyperlinks von Rahmen
|
v3.4 R6611 |
Infos zur Texten auf Pfaden Hinweis : Texte auf Pfaden werden ansonsten nicht weiter unterstützt!
|
v3.4 R7373 |
XML-Struktur des Dokumentes
|
v3.4 R7509 |
Absatzstil eines Rahmens
|
v3.4 R7666 |
Typen von Aufzählungslisten
|
v3.4 R7800 |
Kapitel eines Dokumentes
|
v3.4 R8023 |
Objektstile
|
v4.0.5 R9717 |
Seitenattribute
|
v4.0.5 R9825 |
XML-Tags
|
v4.0.5 R10001 |
Dokument Guidelines
|
v4.0.5 R10555 |
Textvariablen
|
v4.0.5 R10601 |
UID-Transitionstable für die Reorganisation von Cometgruppen
|
v4.0.5 R11522 |
Seitenelemente sichtbar?
|
v4.0.5 R13778 |
Farbprofile des Dokumentes
|
v4.0.5 R13779 |
Farben der UI (für Rahmenkanten usw.)
|
v4.0.5 R16511 |
Sichtbarkeit von Farbfeldern
|
v4.0.5 R16512 |
Rahmeneinpassungsoptionen
|
v4.1 R20010 |
Informationen zur Platzierung von Inlines in Tabellen
|
v4.1 R20010 |
Seitenränder
|
v4.1.6 R25152 |
Benannte Textverweise
|
v4.1.8 R27840 |
Infos für Hyperlinks von Rahmen auf Textziele
|
v4.1.8 R27841 |
Weitere PDF-Metadaten
|
v4.2 R32777 |
Ist ein Rahmen ein interaktives Element?
|
v4.3 R33221 |
Informationen über platzierte PDFs
|
v4.3 R36684 |
W2ML kann (und wird auch nie) alle Features einer InDesign-Datei unterstützen. Hier eine Liste der bekannten Einschränkungen:
Basis formatierter Texte in comet_pdf ist verkürzter TaggedText (%!TT). Schriften werden dabei mit Hilfe des Schriftnamens und einem Stilnamen (Schriftschnitt) in zwei getrennten Tags festgelegt.
Typische Fonteinstellung für TaggedText
<cFont:WILO Plus Global><cTypeface:Italic>
Zur Darstellung der Schrift im PDF müssen beide Angaben zusammengefasst werden. Leider erwartet die verwendete PDFlib dabei systemabhängig unterschiedliche Schreibweisen:
Es ist daher nötig, Zuordnungen zwischen den Schriftnamen für TaggedText und PDF festzulegen. Comet_pdf kann diese Zuordnungen an drei Stellen suchen. Spätere Zuordnungen überschreiben dabei frühere:
Die XML-Dateien zum Beschreiben der Schriften müssen folgendes Format haben:
<?xml version="1.0" encoding="utf-8"?> <fontnames> <!-- pswin, linux, asc and desc are optional --> <fontname id="ID_FONT ID_STYLE" ps="PDF_NAME" pswin="PDF_NAME_WINDOWS" linux="PDF_NAME_LINUX" asc="7.5" desc="2.05" /> </fontnames>
Das Attribut id enthält den Schriftnamen bestehend aus Schriftfamilie und -schnitt. Beide Angaben werden dabei durch ein (!) Leerzeichen getrennt. Die Schriftfamilie ist der Inhalt des TaggedText-Tags cFont, der Schriftschnitt ist die Angabe aus cTypeface. Die Angaben sind identisch mit der Schriftanzeige in InDesign®.
Die Angaben pswin und linux werden jeweils nur unter Windows resp. Linux ausgewertet. Sie enthalten system-spezifischen Definitionen der Schrift. Fehlen die Angaben, wird der Wert des Attributes ps verwendet.
Die Angaben asc und desc sind ebenfalls optional. Fehlen die Angaben, werden von PDFlib ermittlete Werte verwendet. Mehr dazu siehe hier.
Ein Beispiel einer Font-Definition finden Sie hier.
[Seit v4.1.6 R26667] Schriften werden an den für das jeweilige Betriebsystem üblichen Stellen für Schriften gesucht : Fonts pulled from the Windows or OS X/macOS operating system (host fonts)., schreibt die PDFlib-Dokumentation dazu (PDFlib-Tutorial.pdf, Absatz Searching for Fonts). Etwas mehr Infos dazu finden Sie hier. Sie können Schriften aber auch an beliebig vielen anderen Orten suchen lassen. Verwenden Sie dazu die Option --fontfolders your_folders.xml.
Die XML-Datei muss folgendes Format haben:
<?xml version="1.0" encoding="utf-8"?> <paths> <path name="$DESKTOP/folder1" intention='' /> <path name="/Users/Du/MoreFonts" intention='' /> </paths>
Pfade müssen vollständig sein, dürfen aber mit den üblichen und definierten Alias-Namen beginnen. Die Suche nach Schriften wird in der Reihenfolge der Definitionen in der XML-Datei gemacht und ist nicht rekursiv.
Das Attribut intention wird seit v5.5 R37200 unterstützt. Das Attribut ist optional, aber wenn es verwendet wird, muß es in allen path-Elementen definiert sein! Folgende Angaben werden unterstützt:
In der Schreibweise --fontfolder fontfolder (ohne s) können Sie zusätzliche Schriftenordner auch ohne eine spezielle Konfigurations-XML festlegen. Auch hier sind Pfade mit Aliasnamen am Anfang erlaubt. (Achten Sie darauf, das $-Zeichen unter Mac und Linux mit \ zu maskieren!). Der Parameter kann beliebig oft angegeben werden. Die Ordner werden dann in der Reihenfoge der Parameter durchsucht und sowohl bei der Textausgabe als auch bei der automatischen Konvertierung von (E)PS in PDF durchsucht.
Generell finden Sie den richtigen Schriftnamen des Betriebsystemes so:
Alternativ zu den oben beschriebenen Verfahren können Sie das Programm comet_pdf mit der Option --upr path starten. In diesem Fall werden alle verfügbaren Schriften des Rechners durchsucht und daraus eine sogenannte Unix PostScript Resource (UPR) Datei geschrieben. Dieser Datei können Sie den nötigen Namen der gesuchten Schrift entnehmen.
Schriften werden dafür an folgenden Orten gesucht:
Ist die Option --fontfolders gesetzt, wird ausserdem in allen Ordnern gesucht, die in der angegebenen XML-Datei festgelegt werden:
Hier ein Beispiel, bei dem auch in allen Ordnern, die in myfonfolders.xml defniert sind, nach Schriften gesucht wird:
comet_pdf --fontfolders myfontfolders.xml --upr uuu.txt
Bei Verwendung von PDFlib ab v9.0.6 können mit comet_pdf auch PDFs auf Chinesisch, Japanisch und in anderen sogenannten Multibyte-Schriften produziert werden. Mit PDFlib 9.0.4 funktioniert das Einbetten von Multi-Byte-Fonts leider nicht richtig - manche Zeichen werden gar nicht oder falsch dargestellt, und Acrobat gibt sogar eine Fehlermeldung aus.
Um zu überprüfen, ob eine Schrift richtig dargestellt werden kann, sollten Sie das PDF auf einem Rechner testen, auf dem die verwendeten Schriften nicht installiert sind. Es ist wichtig, die PDFs in verschiedenen Applikationen zu testen. Die Ergebnisse unterscheiden sich je nach Programm sehr stark, aber mindestens Acrobat Reader, Chrome, Firefox, Edge und Safari sollten richtige Ergebnisse zeigen.
Als Grundlinie für Texte wird, falls nichts anderes angegeben ist, die sog. Ascender Line der verwendeten Schrift(en) verwendet:

Merkwürdigerweise sind die von Werte für Ascender und Descender, die InDesign® und PDFLib aus den Schriften ermittlen aber icht immer gleich. Unterschiedliche Werte führen aber zu unterschiedlichen Zeilenhöhen in den Ausgaben von InDesign® und comet_pdf. Um diese Fehler zu verhindern, können den Schriften zusätzlich die Werte von Ascender und Descender mitgegeben werden.
Die Angaben erfolgen in den Attributen asc und desc der Fontname-XMLs und werden in Punkten relativ zur Schriftgröße 10.0 angegeben. Die Attribute asc und desc sind optional, fehlen die Angaben, berechnet comet_pdf Ascender und Descender mit Hilfe der PDFLib, sonst werden die festgelegten Werte verwendet.
Hier ein Beispiel:
<fontname id="WILO Plus Global Regular" ps="WILOPlusGlobal-Regular" asc="7.001953" desc="2.177582" />
Zum Bestimmen von Ascender und Descender können sie die Skriptfunktion system::font_info verwenden.
Das folgende Skript ermittelt Postscriptname, Ascender und Descender einer in InDesign®-Notation gegebenen Schrift.
int main ()
{
char psname [512];
float asc, desc;
system::font_info ("WILO Plus Global Regular", 0, psname, &asc, &desc);
printf ("%s, %f %f\n", psname, asc, desc);
return 0;
}
Ab Comet 4.0.4 R7777 der Plugins können Sie dafür auch den InDesign®-Menübefehl
Plug-ins -> Produktrecherche -> Verschiedenes -> Fontinfo ... (Zusatzmodule statt Plug-ins in Versionen vor InDesign® 2025)
verwenden.
Wird der TaggedText-Name einer Schrift an den oben beschriebenen Stellen nicht gefunden, wird die Schrift Arial verwendet. Diese Einstellung kann überschrieben werden durch eine Definition des leeren ("") TaggedText Fontnamens.
Verwende die Schrift Geneva für alle TaggedText-Schriften, für die es keine Namensübersetzung gibt:
<fontname id="" ps="Geneva"/>
Mit der Angabe undef_ in ps (bzw. pswin oder linux) erzwingen Sie, dass keine Standardübersetzung verwendet wird:
<fontname id="" ps="undef_"/>
Nachdem Sie alle Schriftnamen von TaggedText in "PDF" übersetzt haben, kann es natürlich trotzdem sein, dass Sie die gewünschte Schrift gar nicht auf Ihrem Rechner haben. In diesem Fall verwendet comet_pdf ebenfalls automatisch die Schrift Arial. Sie können diese Einstellung ebenfalls in den fontnames ändern. Hier ein Beispiel:
Wird eine Schrift (nicht der Schriftname) nicht auf Ihrem Rechner gefunden, soll auf dem Mac automatisch die Schrift Desdemona verwendet werden. Unter Windows soll die Schrift Courier verwendet werden. Alle Texte, in denen diese Schriftersetzung verwendet wird, sollen rot eingefärbt sein.
<missing_font ps="Desdemona" pswin="Courier" color="red"/>
Auch hier ist die Angabe pswin optional. Fehlt sie, wird der Schrift aus dem Attribut ps verwendet.
Wenn Sie bei nicht verfügbaren Schriften die Bearbeitung abbrechen wollen, setzen Sie den Wert von missing_font.ps (bzw. pswin) auf leer ("") oder undef_. In diesem Fall wird keine PDF-Ausgabe erzeugt.
<missing_font ps="undef_" pswin="" color=""/>
Ist das Feld color leer ("") oder fehlt, wird die Textfarbe im PDF nicht verändert. Sonst wird Text in der angegebenen Farbe dargestellt. Für die Farbdefinition haben Sie vielfältige Möglichkeiten:
| Schlüsselwort | Weitere Werte | Beispiele |
| gray | Ein float im Bereich [0.0 - 1.0] für den Graustufen-Farbraum. Fehlt die Angabe, wird 0.5 verwendet |
gray 0.0 (Schwarz) |
| HTML-Farbname oder hexadezimale Werte für eine RGB-Farbe | #FF0000 (Rot) yellowgreen (Hellgrün. Eine Liste der Farbnamen finden Sie hier.) |
|
| rgb | Drei Float-Werte im Bereich [0.0 - 1.0] für den Farbraum RGB | rgb 1 0.5 0 (Orange) |
| cmyk | Vier Float-Werte im Bereich [0.0 - 1.0] für den Farbraum CMYK | { cmyk 0 0.9 0 0 } |
| lab | Drei Float-Werte für den Farbraum Lab. Die Werte müssen in den folgenden Bereichen liegen: [0 - 100] [-127 - 128] [-127 - 128] |
{ lab 100 50 30 } |
Falsche Farbangaben führen zum Abbruch der PDF-Generierung. Es wird keine Ausgabe erzeugt.
[seit R19501, 7.7.2017] Obwohl die Unterschiede in den Laufweiten der Texte zwischen InDesign® und comet_pdf nur sehr gering sind, können Textrahmen, die in InDesign® an ihren Inhalt angepasst wurden, in comet_pdf einen Textübersatz erzeugen. Rahmen, die mit frame::fit_better oder einer ähnlichen Methode in InDesign® . Mit der Option
--fontscale Kommazahl
können Sie erzwingen, dass im PDF sämtliche Schriften und Zeilenabstände so skaliert , dass keine Übersätze entstehen. Die Fontskalierung hat keinen Einfluß auf den Dokumentinhalt selbst.
Die Angabe der Skalierung muß eine punkt-getrennte reelle Zahl sein. 1.0 entspricht 100%.
Wichtiger Hinweis: Die folgenden Beschreibungen zur Behandlung von Schriften und der fontDB gelten für comet_pdf und priint:comet Plugins!
Die priint:comet Plug-ins und comet_pdf können neben TaggedText auch HTML-formatierten Text einfügen (html::to_tagged oder %!TT_html_). Besondere Behandlung benötigen dabei die (doch recht einfachen) Tags für Fettschrift (<b>, <strong>) und Italic-Schrift (<i>), die nur im Kontext einer Schrift aufgelöst werden können. Die Schrift ist aber in den meisten Fällen erst dann bekannt, wenn der Text ins Dokument eingesetzt wird.
Hier sehen sie einige Anwendungen von <b> und und <i> im Kontext verschiedener Schriften:
font-family:Helvetica Neue LT Std; font-stretch:condensed; font-weight:100;
Montage à base de 3 roulements, italicbolditalic corps trempé et rectifié , très haute précision de concentricité, défaut de concentricité maxi. 0,005, vitesse élevée, grande capacité de charge, graissée à vie, longue durée de vie.
font-family:Helvetica Neue LT Std; font-stretch:expanded; font-weight:100;
Montage à base de 3 roulements, italicbolditalic corps trempé et rectifié , très haute précision de concentricité, défaut de concentricité maxi. 0,005, vitesse élevée, grande capacité de charge, graissée à vie, longue durée de vie.
font-family:Helvetica Neue LT Std; font-stretch:normal; font-weight:400;
Montage à base de 3 roulements, italicbolditalic corps trempé et rectifié , très haute précision de concentricité, défaut de concentricité maxi. 0,005, vitesse élevée, grande capacité de charge, graissée à vie, longue durée de vie.
font-family:Courier;
Montage à base de 3 roulements, italicbolditalic corps trempé et rectifié , très haute précision de concentricité, défaut de concentricité maxi. 0,005, vitesse élevée, grande capacité de charge, graissée à vie, longue durée de vie.
Da die aktuellen Schrifteinstellungen erst zur Laufzeit bekannt sind, wird die Berechnung der richtigen Schrift für Bold und Italic erst direkt beim Einfügen ins Dokument gemacht. Neben der aktuellen Schrift muß man also auch die verfügbaren Schnitte einer Schriftfamilie und deren Eigenschaften kennen. Diese Informationen könnten direkt aus der Schriftdatei (ttf, otf, ttc, Type1, ...) gelesen werden. Wir haben das gemacht und mußten leider feststellen, dass rund 10% aller Fonts gravierende Fehler enthalten.
Da gibt es eigentlich nichts, was es nicht gibt: Mehrfache Weight-Angaben (nötig für <b>), fehlende Slants (nötig für <i>), falsche Stilnamen und manchmal fehlt die name-Table eines TrueType-Fonts ganz (z.B. verdana*.ttf auf Windows)
Wir haben uns deshalb entschieden, eine sogenannte fontDB zu integrieren. Diese "Datenbank" enhält zu jeder darin definierten Schriftfamilie eine Tabelle der verfügbaren Schriftschnitte:
|
Name der Schriftfamilie |
-4 Ultra-condensed |
-3 Extra-condensed |
-2 Condensed |
-1 Semi-condensed |
0 Medium (normal) |
1 Semi-expanded |
2 Expanded |
3 Extra-expanded |
4 Ultra-expanded |
|
100 Thin |
|||||||||
|
200 Extra-light (Ultra-light) |
|||||||||
|
300 Light |
|||||||||
|
400 Normal (Regular) |
|||||||||
|
500 Medium |
|||||||||
|
600 Semi-Bold (Demi-Bold |
|||||||||
|
700 Bold |
|||||||||
|
800 Extra-bold (Ultra-bold) |
|||||||||
|
900 Heavy (Black) |
Jede Zelle der Tabelle enthält dabei jeweils eine "Normal"schrift und eine Italic-Schrift.
Bei der Definition der fontD für eine Schriftfamilie werden zuerst die Einträge gefüllt, für die ein Schriftschnitt vorhanden ist. Da kaum eine Schrift (außer vielleicht einer NOTO-Schrift) alle 162 Schriftschnitte definiert hat, wird die Tabelle danach anhand der bereits eingetragenen Stile automatisch vervollständigt. Die fontDB wird automatisch eingelesen, wenn sie das erste Mal benötigt wird.
Vordefiniert für InDesign®-Plugins und comet_pdf sind etwa 350 Schriftfamilien mit knapp 1.000 Schritschnitten. Die Standard-FontDB verfügt also bereits über mehr als 55.000 Zuordnungen. Die aktuellen Inhalte der fontDB können mit Hilfe der Skript-Funktionen system::fontdb_~ gelesen werden. Mit Hilfe der Funktion text::find_styled_font kann der Schriftschnitt einer Schriftfamilie direkt bestimmt werden.
Die Standard-FontDB kann mit Hilfe der Dateien fontdb.xml beliebig erweitert und überschrieben werden. InDesign®-Plugins und comet_pdf suchen an folgenden Stellen (und in dieser Reihenfolge) nach dieser Datei. Spätere Definitionen überschreiben frühere:
Die Datei muß folgendes Format haben:
<?xml version="1.0" encoding="utf-8"?> <fontdb> <!-- One variant corresponds to one font face. All information is case-sensitive! font : font family name, e.g Verdana face : existing font face of font family, e.g. Bold style : n | i weight : 100, 200, ..., 900 stretch : -4, -3, ... , 3, 4 --> <variant font="Verdana" face="Italic" style="i" weight="400" stretch="0" /> </fontdb>
In font geben Sie den Namen der Schriftfamilie ohne Zusatz an. Der Name der Schriffamilie ist das, was InDesign® als Schriftnamen anzeigt und was im cFont-Tag von TaggedText steht, siehe auch hier.
In face wird der Name des Schriftschnittes angegeben. In InDesign® wird der Schriftschnitt unter dem Schriftnamen angezeigt, im TaggedText steht er im Tag cTypeface., siehe auch hier.
Eine Beschreibung der gültigen Werte für weight und stretch finden Sie hier.
Bitte achten Sie darauf, dass immer mindestens der Defaulteintrag style="n" weight="400" stretch="0" defniert ist.
Das hört sich komplizierter an, als es ist. Hier ein Beispiel für die Windows-Schriftfamilie Corporate S.
Zuerst machen Sie die Schrift für das PDF verfügbar. Schreiben Sie in InDesign® ein wenig Text und geben Sie diesem Text die Schrift Corporate S. Unter der Schriftauswahl sehen Sie die verfügbaren Schriftschnitte. Zehn Stück sind definiert. Jeder dieser zehn Einträge benötigt einen Eintrag in fontnames_default.xml oder einer fontnames.xml:
<fontname id="Corporate S Regular" ps="Corporate S"/> <fontname id="Corporate S Regular Italic" ps="Corporate S,Italic"/> <fontname id="Corporate S Light" ps="Corporate S Light"/> <fontname id="Corporate S Light Italic" ps="Corporate S Light,Italic"/> <fontname id="Corporate S Medium" ps="Corporate S Medium"/> <fontname id="Corporate S Demi" ps="Corporate S Demi"/> <fontname id="Corporate S Bold" ps="Corporate S,Bold"/> <fontname id="Corporate S Bold Italic" ps="Corporate S,Bold,Italic"/> <fontname id="Corporate S ExtraBold" ps="Corporate S ExtraBold"/> <fontname id="Corporate S ExtraBold Italic" ps="Corporate S ExtraBold,Italic"/>
Die obige Definition ist nur für Windows korrekt. Für eine Mac- oder Linux-kompatible Version müssen die Werte von ps jeweils in das Attribut pswin eingetragen werden. Die Postscriptnamen können Sie erfahren, wenn Sie die Schrift im System doppelklicken und sich die Schrift-Informationen anzeigen lassen.
Das Beispiel ist geeignet, wenn Sie nur wenige Schriften definieren müssen. Wenn Sie viele Schriften berabeiten müssen, lohnt es sich, vorher eine UPR-Datei zu erstellen.
Die Namen der Schriftschnitte sind ziemlich eindeutig. Die Erweiterung der fontdb.xml ist also ebenfalls einfach:
<variant font="Corporate S" face="Regular" style="n" weight="400" stretch="0"/> <variant font="Corporate S" face="Regular Italic" style="i" weight="400" stretch="0"/> <variant font="Corporate S" face="Light" style="n" weight="300" stretch="0"/> <variant font="Corporate S" face="Light Italic" style="i" weight="300" stretch="0"/> <variant font="Corporate S" face="Medium" style="n" weight="500" stretch="0"/> <variant font="Corporate S" face="Demi" style="n" weight="600" stretch="0"/> <variant font="Corporate S" face="Bold" style="n" weight="700" stretch="0"/> <variant font="Corporate S" face="Bold Italic" style="i" weight="700" stretch="0"/> <variant font="Corporate S" face="ExtraBold" style="n" weight="800" stretch="0"/> <variant font="Corporate S" face="ExtraBold Italic" style="i" weight="800" stretch="0"/>
Beachten Sie bitte: Die Eingträge der fontDB werden nur benötigt, wenn HTML-Text verarbeitet werden soll. Werden keine HTML-formatierten Texte ins Dokument eingefügt, sind sie nicht nötig!
[seit v4.1.7 R26929] Noch einfacher ist die Prüfung, ob Schriftnamen oder Einträge in FontDB fehlen nit der Option --checkfonts N. Die fehlenden Definitionen werden dabei als Programmausgabe in die Konsole geschrieben und können direkt in die entsprechenden XML-Konfigurationsdateien eingefügt werden. Aber bitte beachten Sie : Schriften sind mitunter recht nachlässig definiert - Sie sollten die angegebenen Definitionen aber insbesondere in Hinsicht auf den Schriftstil (normal, italic), die Schriftstärke (weight) und die Laufweite (stretch) überprüfen. Die Angaben für N entsprechen dem cScript-Aufruf system::fontdb_check.
[seit v4.2 R28457] Gewöhnlich wird nach dieser Rangfolge nach passenden Postscript-Schriften gesucht:
Mittels --font-policy können einzelne Suchquellen deaktiviert oder aktiviert werden. Angegeben wird --font-policy als Ganzzahl, die Werte für die einzelnen Quellen werden dabei einfach addiert. Standardwert ist das bisherige Verhalten (63, in allen möglichen Quellen suchen).
[seit v4.1.5 R24842] comet_pdf unterstützt die sogenannten Awesome-Fonts. Bedingung ist, dass der Postscriptname der verwendeten Awesome-Schrift mit FontAwesome beginnt. Von comet_pdf werden alle auf https://fontawesome.com/cheatsheet?from=io definierten Glyphen unterstützt.
Das bedeutet nicht, dass jede dieser Glyphen auch dargestellt werden kann. Es bedeutet lediglich, dass wir es ermöglichen, dass diese Zeichen dargestellt werden könnten! Damit ein Zeichen sichtbar wird, muss es natürlich auch in der Schrift definiert sein!
Die Liste der definierten Glyphen kann beliebig erweitert werden. Erstellen Sie dazu eine XML-Datei mit den Namen der Glyphen und ihrem jeweiligen Unicode. Die sehr einfache Syntax dieser Datei sehen Sie im folgenden Beispiel
<awesomes> <awesome key="fa-glass-martini" value="0xf000" /> </awesomes>
Achten Sie darauf, dass die Unicode-Zeichen entweder mit 0x beginnen (und dann einen Hex-Wert haben) oder Dezimalzahlen sein müssen. Die so erstellte Datei können Sie mit Hilfe der Programm-Option --awesome einbinden:
--awesome path
Relative Pfadangaben werden dabei wie üblich relativ zum ausführenden comet_pdf aufgelöst.
Ich weiß nicht, wie es Ihnen geht, aber ich finde die Awesome-Fonts, nun ja - gewöhnungsbedürftig. Dabei ist das Problem gar nicht so sehr die unorthodoxe Behandlung von Eingabe, Schrift und Zeichen. Das ist ja sogar ganz hilfreich. Schlimmer ist eher, dass es so viele verschiedene Awesome-Fonts gibt, die jeweils einen nicht durchschaubaren, aber jedenfalls nie vollständigen Satz an Glyphen enthalten. Wir haben in den Renderer daher eine Option eingebaut, mit der Sie testen können, welche der von Ihnen definierten Glyphen in einem Awesome-Font tatsächlich definiert sind.
Verwenden Sie dazu die Programm-Option --awesometest.
--awesometest ps-fontname
Der Aufruf benötigt keine Eingabedatei, aber den Namen des Awesome-Fonts müssen Sie als Postscript-Namen angeben. Wenn Sie keine Ausgabedatei angeben, wird die Ausgabe-PDF auf Ihrem Desktop abgelegt. Hier ein Beispielaufruf:
./comet_pdf -L --awesometest FontAwesome5ProSolid
Sie erhalten eine Liste der Glyphen und deren Unicodes (in Hex) und die Glypnamen. Lokal mit --awesome definierte Glyphen werden dabei rot dargestellt:

Comet_pdf verfügt über eine eingebaute sprachabhängige Silbentrennung, die auf den Trennregeln von TeX basiert. Zur Implementierung verwenden wir die Bibliothek libhyphenate von Steve Wolter.
Trennregeln werden in Abhängikeit von der Spracheinstellung des Textes ausgewählt. Sprachdialekte (z.B Deutsch und Schweizer Deutsch) können durch eine zusätzliche Länderkennung unterstützt werden. Im TaggedText-Tag <cLanguage:> wird die Länderkennung durch "\: " (das Leerzeichen ist wichtig!) an den Sprachnamen angefügt. Bei der Suche nach der geeigneten Trennregeldatei wird immer zuerst nach Sprache\: Länderkennung gesucht. Wird der gesuchte Dialekt nicht gefunden, wird automatisch nach der Sprache ohne Länderkennung gesucht.
Die von InDesign® verwendeten Sprachnamen und Länderkennungen können Sie durch einen TaggedText-Export eines Textes der gesuchten Sprache ermitteln. Suchen Sie im exportierten Text dazu nach dem Tag <cLanguage:.
Für jede unterstützte Sprache muß dafür eine Trennregeldatei definiert sein und existieren. Ablageort für alle Trennregeldateien ist der Ordner hyphenations im gleichen Ordner wie comet_pdf. Mit der Option -H (--hyphens) darf dieser Ordner auch an eine andere Stelle verschoben werden.
Die folgenden Sprachen werden im Standard unterstützt:
| Sprache | Trennregeldatei |
| German: Traditional | de-DE-1901 |
| German: Swiss | |
| German | de |
| Reformed | |
| Deutsch | |
| de_DE_2006 | |
| de_CH_2006 | |
| English | en |
| French | fr |
| Spanish | es |
| Fallback | en |
Nicht unterstützte Sprachen verwenden die englischen Regeln zur Silbentrennung. Weitere in InDesign® verfügbare Einstellungen zur Silbentrennung werden von comet_pdf nicht unterstützt.
Sie können Regeln für weitere Sprachen hinzufügen. Dazu sind die folgenden zwei Schritte nötig:
Für die Erstellung einer Trennregel-Datei folgen Sie bitte den Anweisungen dieses Links. Die in der Beschreibung erwähnten TeX language files finden Sie leicht, wenn Sie im Internet nach "NNhyph tex" mit NN als Sprachkürzel (ru, it, pl, ...) suchen. Hier finden Sie ebenfalls Dateien mit sprachabhängigen Trennmustern.
Die so erstellte Datei wird im gleichen Ordner wie die Standard-Trennregeln abgelegt - also im Ordner hyphenations bzw. im mit --hyphens definierten Ordner.
Die Verbindung zwischen Sprache und Trennregeldatei wird in der Datei hyphenations/languages.xml gemacht. Die Datei enthält für jede zusätzlich unterstützte Sprache einen Eintrag mit dem InDesign®-Namen der Sprache und dem Namen der Trennregeldatei im Ordner hyphenations:
<?xml version="1.0" encoding="utf-8"?> <languages> <language primary="name" sub="country" hyphens="file_name" /> </languages>
Soll die Definition für alle Dialekte einer Sprache gelten, lassen Sie die Länderkennung sub leer. Ist die Länderkennung nicht leer, wird die Definition ausschließlich für diesen Dialekt verwendet. Hier ein Beispiel:
Definiere pt als Trennregeldatei für alle portugiesischen Dialekte .
<language primary="Portuguese" sub="" hyphens="pt" />
Definiere pt als Trennregeldatei für brasilianisches Portugiesisch. Ist keine weitere Definition für portugisiesches Portugisiesch angegeben, wird portugisiesches Portugisiesch nach dem Default getrennt.
<language primary="Portuguese" sub="Brazilian" hyphens="pt" />
Wird in hyphens eine nicht-existierende Datei angegeben, wird die Silbentrennung für diese Sprache deaktiviert. Beim Versuch, die angegebene Trennregeldatei zu verwenden, wird aber eine Warnmeldung geschrieben. Um die Silbentrennung ohne Warnungmeldungen abzuschalten, verwenden Sie das Schlüsselwort _off_.
Abschalten der Silbentrennung für portugiesische Texte:
<language primary="" sub="" hyphens="_off_" />
Mit einer Leer-Definition für primary und sub legen Sie einen neuen Fallback für Texte nicht definierter Sprachnamen fest.
Verwende die Definitionen in pt als Trennregeln für alle Sprachen, für die keine eigenen Trennregeln definiert sind.
<language primary="" sub="" hyphens="pt" />
So schalten die Silbentrennung für alle Sprachen ab, für die keine Trennregeln definiert sind:
Abschalten des Fallbacks
<language primary="" sub="" hyphens="_off_" />
Mit den Elementen
im Root-Element der Dokument-XML-Struktur können die Spracheinstellungen des gesamten Dokumentes überdeckt werden. Das ist insbesondere dann hilfreich, wenn ein Dokument in verschiedenen Sprachvarianten erstellt werden soll, ohne dass dafür jeweils neue Stildefinitionen mit den entsprechenden Sprachen gemacht werden müssen. Ist hyphenationLanguage nicht leer, wird für alle Texte mit aktivierter Silbentrennung die im Element angegebene Sprache für die Silbentrennung verwendet. Im Element hyphenationCountry kann zusätzlich die nötige Landesangabe gemacht werden.
Im Unterschied zu den Sprachnamen in Texten, die von InDesign® vorgegeben sind, sind Sie hier bei der Namenswahl vollkommen frei, können also die von Ihnen bevorzugten ISO- oder sonstige Kürzel wie deDE, itIT, enEN oder deu, iti, eng usw. verwenden. Mir doch egal.
Mit den beiden folgenden (kleinen) Schritten können alle Texte eines Dokumentes mit aktivierter Silbentrennung nach den Regeln der aktuellen deutschen Silbentrennung getrennt werden:
Mit dem Vorsatz file:// kann die gewünschte Trennregeldatei kann auch direkt im Element hyphenationLanguage angegeben werden. Die Angabe im Element hyphenationCountry wird in diesem Fall ignoriert. Folgende Werte sind (gemäß den obigen Beschreibungen) also möglich:
Hinweis : In InDesign® ist die Silbentrennung ein fest integrierter Bestandteil des Programmes. Um hier ein hier ein gleiches Verhalten wie in comet_pdf zu erreichen, müssen deshalb alle Absätze und Stile des Dokumentes auf die gewünschte Sprache gesetzt werden. Hier ein entsprechendes JavaScript für InDesign®:
Ändere die Spracheinstellung aller Absätze und Stile eines Dokumentes. ACHTUNG : Wenn die geänderten Spracheinstellungen nicht gesichert werden sollen, muß das Dokument ohne Sichern geschlossen werden.
var language = ""; // $ID/languageKey var doc = app.documents[0]; // Choose your document here
var paraStyles = doc.allParagraphStyles; for (var i = 1; i < paraStyles.length; i++) { paraStyles[i].appliedLanguage = language; } var charStyles = doc.allCharacterStyles; for (var i = 1; i < charStyles.length; i++) { charStyles[i].appliedLanguage = language; }
[ab v4.1.8 R30386] Eigene Wörterbücher können wie folgt definiert werden:
Beachten Sie bitte, dass Silben, die breiter als der Textrahmen sind, trotz der Trennregeln automatisch an jeder beliebigen Stelle getrennt werden können. Dieses Verhalten ist zur Vermeidung unerwarteter Text-Übersätze alternativlos nötig!
So wird aus einer Stube für die Wache möglicherweise eine Tube Wachs:
wachs-tube
Hinweis: Einstellige Zahlen zwischen den Buchstaben sind erlaubt und werden als TeX-Regeln direkt übernommen. Wenn Sie sich also mit der Syntax der TeX-Trennregeln auskennen, z.B. aus dem Appendix H von TeX, können Sie die Worttrennung durch eigene Zahlenangaben zwischen den einzelnen Buchstaben auch selbst bewichten. Mit der Definition w1a1c1h1s1t1u1be definieren Sie also die niederschwellige Erlaubnis, das Wort Wachstube an beliebiger Stelle zu trennen.
Zur Installation folgen Sie bitte den Anweisungen der Datei 1 ReadMe.html des jeweiligen Installations-Ordners.
Die Installation enthält mglw. mehrere Varianten des Programmes. Varianten werden im Unterordner 3 bin der Installation mitgeliefert. Sie können comet_pdf bzw. comet_pdf.exe jeweils durch eine der entsprechenden Varianten ersetzen. Beachten Sie dabei bitte:
Ist das Programm installiert, kann es über Terminal bzw. die Eingabeaufforderung gestartet werden:
> cd /Pfad des Ordners mit comet_pdf
> comet_pdf -s hello
Da Sie wahrscheinlich bis jetzt noch keine Lizenz haben, reagiert das Programm mit der Mitteilung, dass die nötigen Lizenzen fehlen, siehe hier. Sie können das Programm uneingeschränkt verwenden. Über die erzeugten Seiten wird jedoch ein Wasserzeichen gelegt.
Das Programm benötigt zwei Lizenzen : Die WERK II-Lizenz für das eigentliche Programm und eine Lizenz für die verwendete PDF-Bibliothek.
Das Programm arbeitet ohne Einschränkungen auch ohne gültige WERK II - Lizenz. Alle erzeugten Dokumentseiten werden aber mit dem Wasserzeichen DEMO versehen.
Auch für die PDFLib ist keine Lizenz nötig. Sie können lt. PDFLib.com etwa 10 Seiten (bzw. 10 MB) große Dokumente erzeugen. Die Seiten werden mit dem Wasserzeichen www.pdflib.com versehen.
Falsche PDFlib-Lizenen führen zum Abruch des Programmes.
Das Wasserzeichen von comet_pdf wird dabei immer über die sichtbaren Rahmen der Seite gelegt. Das PDFLib-Wasserzeichen wird über die Seite selbst gelegt:

Die Lizenzdatei muss im gleichen Ordner wie comet_pdf abgelegt werden und w2.lic heißen. Ohne gültige WERK II-Lizenz antwortet comet_pdf mit der folgenden Nachricht
No valid license found. Application will run in DEMO mode!
To get a valid priint:pdf license, please send the green
text to license@priint.com. For a valid PDFLib license
please contact sales@pdflib.com.
//
// LICENSE ORDER DATA
// add your comments here
//
OrderBy : "your name"
EMail : "your email"
LicenseCode : "xxxx ... xxxx"
TerminalServer : "0"
Comet : "4.0.5"
Expired : ""
Module : priint:pdf
Schicken Sie den grünen Text an license@priint.com. Achtung: Bevor Sie den grünen Text absenden, setzen Sie bitte einen richtigen Namen und eine gültige Mailadresse ein - an diese Adresse erhalten Sie von uns eine gültige Lizenzdatei.
Zur Lizenzprüfung unter Linux wird das Standard-Programm dmidecode verwendet. Comet_pdf wird nicht freigeschaltet und bleibt im DEMO-Modus, wenn dmidecode nicht erfolgreich ausgeführt werden kann. Leider benötig dmidecode aber Admin-Rechte. Um zu vermeiden, dass deshalb auch comet_pdf immer mit Admin-Rechten ausgeführt werden muß, benötigt das Programm daher entweder das Admin-Passwort oder die Erlaubnis, dmidecode als Admin auszuführen. Beides wird über die Datei zpasswd im gleichen Ordner wie comet_pdf gesteuert:
Existiert die Datei zpasswd nicht, erfragt comet_pdf das Admin-Passwort. Nach der Eingabe wird das Passwort verschlüsselt in die Datei zpasswd geschrieben. Weitere Aufrufe von comet_pdf können das Passwort aus zpasswd entschlüsseln und wieder verwenden.
Wird das Admin-Passwort Ihres Rechners geändert, muss die Datei zpasswd entfernt werden und comet_pdf einmal ausgeführt werden, um das neue Passwort zu sichern.
Wenn Sie das Admin-Passwort nicht in zpasswd sichern wollen, geben Sie statt des Passwortes den Text (in genau dieser Schreibweise)
$SUDOERS
an. Comet_pdf erwartet dann, dass Sie dem aktuellen Benutzer das Recht zur Ausführung von dmidecode erteilt haben. Solche Berechtigungen werden üblicherweise in der Datei /etc/sudoers erteilt.
ACHTUNG ACHTUNG ACHTUNG: Bitte lassen Sie Änderungen an der Datei sudoers ausschließlich von Fachleuten machen oder informieren Sie sich vorher ausreichend! Enthält die Datei syntaktische Fehler, funktioniert der Befehl sudo Ihres Rechners nicht mehr. Diesen Befehl benötigen Sie aber, um die Datei wieder zu berichtigen! Sie können sich also sehr viel Arbeit machen, wenn Sie einfach so an der Datei /etc/sudoers herumschreiben.
Die PDFLib-Lizenz muss sich im gleichen Ordner wie comet_pdf befinden und licensekeys.txt heißen. Eine gültige Lizenz für die verwendete PDF-Bibliothek können Sie bei PDFLib.com erhalten. Bitte geben Sie bei der Bestellung die gewünschte Lizenzart an:
| Lizenz | Beschreibung | Bemerkungen |
| PDFlib |
Standardlizenz der PDFlib |
|
| PDFlib+PDI |
Standardlizenz plus Import von PDFs
|
Für das Umwandeln von Postscript in PDF und von PDF in Rasterbilder ist mglw. weitere lizenzpflichtige Software nötig. Mehr dazu siehe hier. |
| PPS |
Individualisierug bestehender PDFs |
Z. Zt. Nicht unterstützt von comet_pdf. Alternativ können Sie Dekorationen verwenden. |
Auf die Datei licensekeys.txt können Sie verzichten und die PDFlib-Lizenz mit in die w2lic schreiben. Fügen Sie dazu in die w2lic eine Zeile mit dem Schlüsselwort PDFLibKey gefolgt von der in Anführungszeichen eingeschlossen PDFlib-Lizenz ein. Hier ein Beispiel:
PDFLibKey "m900202-123456-123456-******-******"
Achten Sie bitte darauf, dass die PDFlib-Lizenz zur verwendeten PDFlib-Version passt. Die PDFlib-Version Ihres comet_pdf erfahren Sie mit Hilfe der Option -h.
Version:
comet_pdf v1.0 R24333, based on Comet 4.1 and PDFlib 9.0.6
Aktuell werden folgende PDFlib-Versionen unterstützt:
| Betriebssystem | priint:suite 4.1 | priint:suite 4.1.6 |
| Mac | 9.0.4 9.0.6 9.1.2 (ab v4.1 R24702) 9.2.0 (ab v4.1 R24702) |
9.0.4 9.0.6 9.1.2 (ab v4.1 R24702) 9.2.0 (ab v4.1 R24702) |
| Windows | 9.0.4 9.0.6 9.1.2 (ab v4.1 R24702) 9.2.0 (ab v4.1 R24702) |
9.0.4 9.0.6 9.1.2 (ab v4.1 R24702) 9.2.0 (ab v4.1 R24702) |
| Linux (Ubuntu) | 9.1.0 9.1.2 (ab v4.1 R24702) 9.2.0 (ab v4.1 R24702) |
9.1.0 9.1.2 (ab v4.1 R24702) 9.2.0 (ab v4.1 R24702) |
Mit Hilfe der Optionen --w2lic_path und --pdflic_path können die Ordner, in denen sich die Lizenzdateien befinden geändert werden. Das ist inbesondere dann sinnvoll, wenn bei Programm-Updates der Ordner mit dem Programm comet_pdf ersetzt wird. Geben Sie als Wert der Option einen vollständigen und gültigen Ordner-Pfad an. Der Pfad darf mit den definierten $-Abkürzungen wie $DESKTOP beginnen. Der Name der Lizenzdatei kann mit der Option nicht geändert werden!
Die WERK II - Lizenzdatei w2.lic befindet sich in den lokalen Voreinstellungen:
--w2lic_path \$PREFS/werkii
Mit Hilfe der Optionen --w2lic oder --pdflic können die verwendeten Lizenzen geprüft werden. Das Ergebnis wird in der Programmausgabe angezeigt und als Return-Wert des Programmes zurückgegeben:
| Lizenz | Rückgabewert | Bemerkungen |
| --w2lic |
0 : DEMO |
DEMO und PreviewDas Programm ist auch ohne gültige Lizenz vollständig nutzbar. Die Begriffe DEMO oder Preview. |
| --pdflic |
0 : Failed |
FailedFalsche Lizenzen führen zum Programm-Abbruch! WatermarkedBei fehlenden Lizenzen wird ein Wasserzeichen über die Seiten gelegt. In diesem Fall können nur PDFs mit max. 10 Seiten (bzw. 10 MB) erzeugt werden. Postscript-Bilder und Previews benötigen eine gültige PDFlib+PDI-Lizenz und führen ohne diese Lizenz ebenfalls zum Programm-Abbruch. |
Da das Ergebnis einer Lizenzprüfung der Rückgabewert des Programmes ist, kann jeweils nur eine Lizenzprüfung durchgeführt werden.
Die folgenden Lizenzen werden möglicherweise für Aufgaben des Programmes benötigt, die nicht zu den Kernaufgaben von comet_pdf gehören.
Postscript wird von PDFlib erwartungsgemäß nicht unterstützt (siehe dazu unter Bildformate) und die Einbindung von Bildern aus Postscript gehört nicht zum Standard-Leistungsumfang von comet_pdf. Das Programm sieht aber die Möglichkeit zur automatischen Konvertierung von Posrtscript in PDF vor. Weitere Informationen dazu finden Sie hier.
Unter Mac OS enthält die zum Konvertieren von Postscript in PDF nötige Software bereits standardmäßig.
Unter Windows verwenden wir das lizenzpflichtige Tool ps2pdf.exe von VeryDoc. Die Lizenz von ps2pdf.exe ist nicht im Leistungsumfang von comet_pdf enthalten. Ohne Lizenz erzeugt das Programm ein Wasserzeichen über den PDFs. Eine Installationsanleitung für die Lizenz finden Sie hier.
Alternativ können Sie auch andere Software zum Konvertieren von (E)PS nach PDF verwenden. Eine Beschreibung dazu finden Sie hier.
Sollen die erzeugten PDFs als Grundlage für die Metadaten eines PublishingServer verwendet werden, müssen PDFs in Rasterbilder (JPG oder PNG) umgewandelt werden. Das Erzeugen dieser Rasterbilder ist zwar nicht Kernaufgabe von comet_pdf, wird aber trotzdem unterstützt.
Unter Mac OS ist die dafür nötige Software bereits standardmäßig installiert.
Unter Windows wird pdf2image verwendet. Hier finden Sie Infos zur Lizenz von pdf2image, Das Programm ist aber leider so langsam, dass die Installation einer anderen, mglw. lizenzpflichtigen Software hier dringend geraten ist. Die Lizenz für einen PDF-Bild-Konverter ist nicht im Leistungsumfang von comet_pdf enthalten.
Alternativ können Sie auch andere Software zum Konvertieren PDF in Bilder verwenden. Informationen zur Verwendung eigener Konvertierungsoftware finden Sie hier.
Textvariablen können Bildinformationen und Angaben aus den XMP-Headern von Bildern zeigen. Zum Ermitteln dieser Informationen wird exiftool verwendet. Der Autor verlangt zwar keine Lizenzgebühr, eine Spende ist ihm aber willkommen.
Informationen und Copyright-Hinweise benutzter Software von Drittanbietern finden Sie hier.
Von den etwa 1.800 cScript-Befehlen sind in der aktuellen Version von comet_pdf etwa 1.400 implementiert. Fehlende Skriptfunktionen werden in der Standardausgabe mit dem Hinweis
Missing cScript function 'document::concat' called, returning -1199.
versehen. Wenden Sie sich in diesem Fall bitte an unsere Entwickler. (Ein isolierter Testfall wird die Bearbeitung ungemein beschleunigen.)
In der Online-Doku, die zu jedem Release der InDesign®-Plugins ausgeliefert wird, haben alle Funktionen einen Hinweis, ob sie für comet_pdf verfügbar sind:
Available:
Comet-Plug-Ins, comet_pdf
Auch sind bisher nicht alle Standardfunktionen der Comet-Plugins implementiert. In einigen Fällen generiert das Meldungen der Art:
IFrameLinkServiceUtils::build not implemented now in comet_pdf
Über Meldungen dieser Art brauchen Sie uns nicht zu informieren. Diese Funktionalitäten werden Schritt für Schritt implementiert.
Ebenso fehlen in der aktuellen Version von comet_pdf natürlich noch eine ganze Reihe von Features der Comet-Plugins. Hier eine kurze (und unvollständige) Liste der fehlenden Features:
Auch diese Funktionen werden, soweit sinnvoll und machbar, Schritt für Schritt implementiert.
Folgende Bildformate werden unterstützt :
Fehlende oder fehlerhafte Bilder werden mit einem diagonalen Kreuz im Rahmen dargestellt. Hat der Bildrahmen keine sichtbare Kontur, werden zusätzlich die Rahmenkanten (in der Ebenenfarbe) gezeigt.
Bitte prüfen Sie vor dem produktiven Einsatz unbedingt die richtige Darstellung ihrer Bilder. Die WERK II GmbH kann keine Garantie für die richtige Darstellung von Bildern jeglichen Formates übernehmen.
Wie Sie sehen, werden weder Postscript (ps und eps), noch Illustrator (ai), Photoshop (psd) oder WebP (webp) direkt unterstützt! Auch wenn im Folgenden Möglichkeiten zur automatischen Berechnung von Alternativbildern beschrieben werden: Aus Performance-Sicht ist die Bereitstellung von Alterntivbildern in einem der unterstützen Formate die beste Lösung. Hier deshalb einige Beispiele zur vorbereitenden Bildkonvertierung:
Bilder in Postscript, Photoshop oder WebP können von comet_pdf nicht importiert werden. Comet_pdf sucht in diesen Fällen neben dem Original automatisch nach einer möglichen Alternative gleichen Namens mit den folgenden Dateiendungen. Die erste gefundene Alternative wird verwendet:
Das Bild abc.eps soll eingefügt werden. Neben dem Bild abc.eps liegen die Dateien abc.png und abc.gif.
Das Bild abc.png wird verwendet.
Verwendete Alternativen werden in der Programmausgabe angegeben:
'eps' substituted by 'png' : '/Users/paul/Desktop/abc.eps'
Reihenfolge und Verwendung von Alternativ-Bildern können eingestellt werden. Informationen dazu finden Sie hier.
Wird zu einem Postscript-Bild (ps, eps) kein Alternativbild gefunden, versucht comet_pdf automatisch, eine PDF-Variante des Bildes zu erstellen.
Die automatische Konvertierung in PDF kann deaktiviert werden. Informationen dazu finden Sie hier.
Die automatische Konvertierung erzeugt Dateien. Die Dateien werden im $CACHE-Ordner des aktuellen comet_pdf-Aufrufes abgelegt. ACHTUNG: Der $CACHE-Ordner wird beim Programmende automatisch gelöscht. Wenn Sie die berechneten Varianten weiter verwenden wollen, müssen sie vor Programmende mit geeigneten Methoden an anderer Stelle gesichert werden. Mit der Programmoption -VX wird das Löschen des $CACHE verhindert.
Vor der internen Konvertierung von Postscript in PDF wird das Standardskript imgconv/ps2pdf.cpp ausgeführt. In diesem Skript können Sie eine eigene Konvertierung ausführen lassen. Soll die interne Konvertierung verwendet werden, setzen Sie in diesem Skript die Variable *gResult auf den Wert -1. Das Skript wird dann nicht wieder aufgerufen und statt dessen immer die interne Konvertierung verwendet. Soll die interne Konvertierung nicht verwendet werden und es gibt keine ausdrücklich definierte Alternative, muss die Konvertierung in imgconv/ps2pdf.cpp gemacht werden!
Kann die Software zur internen Konvertierung von Postscript in PDF nicht gefunden werden, wird beim ersten Konvertierungsversuch eine Warnmeldung in die Ausgabe geschrieben.
Für die interne Generierung der PDFs wird folgende Software verwendet:
| Umgebung | Software | Beschreibung |
| Mac |
[Bis v5.0 R37141] :
|
Das erste gefundene Programme wird verwendet. Das Programm pstopdf ist bis Mac OS 13 (Ventura) Teil der Systeminstallation. Ab Mac OS 14 (Sonoma) wird es leider nicht mehr installiert kann aber aus einem alten System übernommen werden (getestet bis Mac OS 26). Ghostscript kann über das Mac-Terminal wie folgt installiert werden. Für die Installation werden Admin-Rechte benötigt! brew install ghostscript Ghostscript ist nicht im Lieferumfang unserer Software enthalten und muss separat installiert werden, wenn Sie es verwenden möchten. Bitte beachten Sie unbedingt die Lizenzbedingungen von Ghostscript! |
| Linux | ps2pdfwr |
Das Programm ps2pdfwr ist Teil der Ghostscript-Installation. Ghostscript kann über das Linux-Terminal wie folgt installiert werden. Für die Installation werden Admin-Rechte benötigt! sudo apt-get install ghostscript Ghostscript ist nicht im Lieferumfang unserer Software enthalten und muss separat installiert werden, wenn Sie es verwenden möchten. Bitte beachten Sie unbedingt die Lizenzbedingungen von Ghostscript! |
| Windows |
[Bis v5.0 R37141] : ps2pdf.exe
[Ab v5.0 R37142] :
|
Das Programm ps2pdf.exe befindet sich im Ordner imgconv\ps2pdf\bin der Standard-Installation von comet_pdf. Es kann uneingeschränkt genutzt werden, erzeugt aber ein Wasserzeichen auf den PDFs. Eine Lizenz erhalten Sie über VeryDoc. Die erhaltene Lizenz installieren Sie wie folgt:
Ab v5.0 R37142 wird zuerst versucht, die Konvertierung mit gswin64c zu machen. gswin64c ist ein eigenständiges, auf Ghostscript basierendes Programm und kann (Stand Sept. 2025) hier heruntergeladen werden: Damit die Aufrufe von comet_pdf ausgeführt werden können, muss die Umgebungsvariable PATH Ihres Rechners oder Benutzers um den Pfad zu gswin64c.exe erweitert werden. So gehen Sie dafür vor:
https://ghostscript.com/releases/gsdnld.html Ghostscript ist nicht im Lieferumfang unserer Software enthalten und muss separat installiert werden, wenn Sie es verwenden möchten. Bitte beachten Sie unbedingt die Lizenzbedingungen von Ghostscript! |
[Ab v5.0 R37142] In Postscript verwendete Schriften werden von Ghostscript an den üblichen Stellen im Betriebssystem gesucht. Kann eine Schrift nicht gefunden werden, verwendet Ghostscript eine möglichst passende Alternative. Was auch immer 'möglichst passend' heißt - die Schrift wird auf alle Fälle anders aussehen.
/Zulu findfont % Search for the font 24 scalefont % Size 24 pt setfont % Set as current font 72 700 moveto (Hello World) showWir übermittlen deshalb allen Ghostscript-Aufrufen automatisch alle für die (EPS)-Konvertierung freigegeben Ordner der Optionen --fontfolders und --fontfolder als zusätzliche Suchpfade für Schriften.
Bitte achten Sie darauf, dass die zusätzlichen Schriftordner möglichst wenig Objekte enthalten. Ghostscript wird die angegebenen Ordner nämlich rekursiv durchsuchen - und das kann bei vielen Unterdateien recht lange dauern.
Für Photoshop-Bilder ist keine automatische Konvertierung integriert!
Nur Mac OS! Wird zu einem WebP-Bild kein Alternativbild gefunden, versucht comet_pdf automatisch, eine PDF-Variante des Bildes zu erstellen.
Unter Windows und Linux können Sie die erweiterte Bildkonvertierung zum Erzeugen einer passenden Alternative verwenden.
Die automatische Konvertierung erzeugt Dateien. Die Dateien werden im $CACHE-Ordner des aktuellen comet_pdf-Aufrufes abgelegt. ACHTUNG: Der $CACHE-Ordner wird beim Programmende automtisch gelöscht. Wenn Sie die berechneten Alternativen weiterverwenden wollen, müssen sie vor Programmende mit geeigneten Methoden an anderer Stelle gesichert werden. Mit der Programmoption -VX wird das Löschen des $CACHE verhindert.
Für die Generierung der PDFs aus WebP wird folgende Software verwendet:
| Umgebung | Software | Beschreibung |
| Mac | sips |
Das Programm ist Teil der Systeminstallation. |
Um die automatische Generierung von PDFs abzuschalten, siehe hier.
Kann für ein Bild weder eine Alternative gefunden noch ein temporäres PDF erstellt werden, können Sie das Bild mit eigener Software in eins der unterstützten Pixelformate umrechnen lassen. Hier werden folgende Formate unterstützt:
Zur Konvertierung wird für jedes dieser Bilder das lokale Skript pdf2image.cpp ausgeführt. Sie können eine beliebiege Konvertierung in eines der von PDFlib unterstützten Rasterformate in einer beliebigen Auflösung machen. Da PDFlib auch PDFs importieren kann, können Sie natürlich auch in PDF konvertieren oder große PDFs in kleinere PDFs umrechnen.
Im Unterschied zu den Aufrufen von pdf2image.cpp, die bei der Generierung der Metadaten nötig sind, sind in bei der Bildkonvertierung die globalen Variablen gFormat und gResolution leer:
gFormat = ""; gResolution = 0.0;
Die automatische Konvertierung erzeugt Dateien. Die Dateien werden im $CACHE-Ordner des aktuellen comet_pdf-Aufrufes abgelegt. ACHTUNG: Der $CACHE-Ordner wird beim Programmende automtisch gelöscht. Wenn Sie die berechneten Varianten weiterverwenden wollen, müssen sie vor Programmende mit geeigneten Methoden an anderer Stelle gesichert werden. Mit der Programmoption -VX wird das Löschen des $CACHE verhindert.
Weitere Informationen zum Skript finden Sie hier.
Verwendung, Reihenfolge und Neuberechnung von Alternativen können mit Hilfe einer XML-Datei angepasst werden. Die Steuerdatei geben Sie im Programmparameter -E (--eps_esc) an:
comet_pdf -E eps_escapes.xml
Unvollständige Pfade (wie oben) werden relativ zum Ordner von comet_pdf aufgelöst. Abkürzungen für Standardordner und Aliasnamen für Ordner sind erlaubt. Die Datei muss wie folgt aufgebaut sein:
<?xml version="1.0" encoding="utf-8"?> <eps_escapes> <!-- Alternativen für (E)PS, Photoshop und WebP: Geben Sie hier die Reihenfolge an, in der nach Alternativen gesucht werden soll. --> <eps_escape ext="pdf" seq="20"/> <eps_escape ext="png" seq="30"/> <eps_escape ext="gif" seq="40"/> <!-- Konvertierung beliebiger Bildformate In 'ext' gegen Sie das Format an, das konvertiert werden soll. 'seq' gibt Reihenfolge und Zielformat an. Die Konvertierung implementieren Sie im Skript imgconv/ps2pdf.cpp. --> <eps_escape ext="webp" seq="10:png" /> <eps_escapes>
<eps_escape ext="pdf" seq="20"/>
Suche in der in seq angegebenen Reihenfolge neben dem Original nach einem Bild gleichen Namens im angegebenen Format.
Beachten Sie bitte, dass nur Bildformate verwendet werden können, die von PDFlib unterstützt werden. Beachten Sie bitte außerdem, dass in diesen Fällen lediglich versucht wird, statt des Vektorbildes eine existierende Pixelvariante des Bildes zu verwenden. Eine Neuberechnung der Variante erfolgt in diesen Fällen nicht!
Eigene Implementierungen zur Berechnung von Bildalternativen können im Skript imgconv/ps2pdf.cpp hinterlegt werden. Durch den Zusatz :dest_extension im Attribut seq wird comet_pdf dieses Skript für alle Bilder mit der Endung ext aurufen.
Im Beispiel wird imgconv/ps2pdf.cpp für alle webp-Bilder aufgerufen und erstellt jeweils eine png-Variante des gegebenen Bildes
<eps_escape ext="webp" seq="10:png" />
Folgende globale Variablen sind in imgconv/ps2pdf.cpp definiert:
| Name | Typ | Beschreibung |
| gInfile | char[] | Vollständiger Pfad zur Originaldatei |
| gOutfile | char[] |
Vollständiger Zielpfad für die konvertierte Datei |
| gResult | int* |
Setzen Sie *gResult auf einen dieser Werte:
Bei Werten ungleich 0 wird im Anschluss immer die automatische Konvertierung ausgeführt. |
Hinweis: Das Skript muß nicht zwangsläufig eine Bildkonvertierung machen. Sie können hier natürlich auch Varianten mit geänderter Bildgröße, Auflösung, etc. erstellen.
Hier eine (Mac)-Implementierung zur Umrechnung von webp in png. Die Umrechnung wird durch die Zeile <eps_escape ext="webp" seq="10:png" /> in eps_escapes.xml ausgelöst.
//***************************************************************************
char stIn [8192]; // gInfile with quotas escaped
char stOut [8192]; // gOutfile with quotas escaped
char stDoneBy [256]; // For messages only
char stDevNull [256]; // Suppress shell output
//***************************************************************************
int main ()
{
char name [256];
char cmd [5000];
char ext [32];
char extOut [32];
// 0 : Okay
// -1 : Suppress further calls to this script
// Otherwise : Error Code
//
*gResult = -1;
// Init vars
//
strcpy (stIn, gInfile); strreplace (stIn, "\"", "\"\"");
strcpy (stOut, gOutfile); strreplace (stOut, "\"", "\"\"");
strcpy (stDoneBy, "");
if (system::os () == 2) strcpy (stDevNull, "nul");
else strcpy (stDevNull, "/dev/null");
file::extender (ext, gInfile);
file::extender (extOut, gOutfile);
if (strcmp (ext, "webp") == 0)
{
if (system::os () == 1)
{
// Main work is done here
//
sprintf (stDoneBy, "sips of Mac OS");
sprintf (cmd, "sips -s format %s \"%s\" --out \"%s\" > %s", extOut, gInfile, gOutfile, stDevNull);
*gResult = system::cmd (cmd);
}
else
{
// Your part :-)
//
sprintf (stDoneBy, "convert. Thanks for that.");
}
}
if (!*gResult)
{
showmessage ("%s created by %s.", file::name (name, gOutfile), stDoneBy);
}
else if (*gResult > 0)
{
showerror ("Creating '%s' by %s failed with error %d.", file::name (name, gOutfile), stDoneBy, *gResult);
}
return 0;
}
Mit der Angabe seq="-1" wird verhindert, dass ein Bildformat verwendet wird.
Um automatische Ersetzungen generell zu deaktivieren, fügen Sie die folgende Zeile in die EPS-Escapes ein. Die Angabe darf an beliebiger Stelle der Datei stehen:
<eps_escape ext="ps" seq="-1"/>
Eingebettete Bilder in InDesign®-Dokumenten werden auch in W2ML eingebettet und können von comet_pdf verwendet werden, ohne dass das Bild als Datei verfügbar ist. Es wird zwischen zwei Arten der Einbettung unterschieden:
Beachten Sie bitte, dass die Dateigröße der W2ML mit Anzahl und Größe der eingebetteteb Bilder schnell wachsen kann. Verwenden Sie eingebettete Bilder daher mit Zurückhaltung!
Beachten Sie bitte, dass bei "normal" verknüpften Bildern keine Previews der Bilder in die W2ML geschrieben werden!
Die PDFLib unterstützt Freistellpfade und Alphakanäle. Sie müssen die Pfade aber über ihren Namen ansprechen. Die InDesign®-Möglichkeit, Freistellpfade und Alphakanäle über ihren Index anzusprechen, wird nicht unterstützt.
Ausnahme: Der Alpha-Index 0 bezeichnet den ersten Alpha-Kanal eines Bildes. Der Name kann in diesem Fall ignoriert werden.
Die meisten Bildformate sind so optimiert, dass eine weitere Komprimierung mit Hilfe des Programmparamters --compression kaum etwas an der Bildgröße (und damit an der Größe des fertigen PDFs) ändert. Um eine spürbare Verkleinerung der PDFs zu erreichen, müssen die Bilder daher entsprechend ihrer Auflösung und ihrer aktuellen Skalierung neu berechnet werden.
Die jeweils aktuelle Bildauflösung eines Bildes ergibt sich dabei aus der Auflösung der Bilddatei und der aktuellen Skalierung im Dokument. Ein 72 dpi Bild wird bei einem Schwellwert von 200 dpi also ab einer Skalierung auf 36% (72 / 200 = 0,36) neu berechnet werden.
Schwellwert und gewünschte Auflösung werden in den PDF-Vorgaben festgelegt:
Im Gegensatz zu InDesign® werden bei der Neuberechnung keine Unterschiede zwischen Farb-, Graustufen- und einfarbigen Bildern gemacht. comet_pdf verwendet für alle Bilder die Angaben der Farbbilder. Weitere Informationen zu den PDF-Vorgaben und ihre Anwendung finden Sie hier.
Im Screenshot sehen Sie links ein auf 10% skaliertes Bild mit einer Auflösung von 180 dpi. Rechts ist das gleiche Bild nach einer Neuberechnung auf 100 dpi. Die Dateigröße hat dabei mit 38 kB von 3,6 MB auf fast 1/100 verringert.

Für die Aktivierung der Neuberechnung muß zusätzlich zur PDF-Vorgabe der Wert der Programmoption --pdfflags den Wert 1 enthalten! Z.B. also
--pdfflags 1 oder
--pdfflags 3
Hier ein Besispiel:
./comet_pdf ... -z bbb.joboptions --pdfflags 1
Die Neuberechnung der Bilder wird mit Hilfe des Python-Moduls Pillow gemacht.
Bitte prüfen Sie vor der Verwendung des Moduls unbedingt die Lizenzbestimmungen von Pillow.
WICHTIG: Ab v5.0 verwenden Sie als Zielordner der Pillow-Installation Python 3.12!
[Seit v4.3 R36440] Alternativ zur fest eingebauten 'PILLOW'-Methode können Sie die Neuberechnung der Bilder auch selbst vornehmen. Legen Sie dazu die Skriptdatei imgconv/resize.cpp an neben Ihrem comet_pdf. Ist imgconv/resize.cpp nicht installiert, wird weiterhin die fest eingebaute PILLOW-Methode verwendet.
imgconv/resize.cpp muß, wenn vorhanden, ein cScript sein. Python wird an dieser Stelle nicht unterstützt! Folgende globale Variablen sind definiert:
| Name | Type | Beschreibung |
| gInfile | char* | Vollständiger Pfad der Originaldatei des Bildes |
| gOutfile | char* | Vollständiger Pfad der bearbeiteten Zieldatei |
| gFormat | char* | Zielformat des neu berechneten Bildes |
| gImgWidth | int | Erwünschte Bildgröße in Punkten. Wird das Bild auf diese Größe skaliert, entspricht seine Auflösung den Angaben in /ColorImageDownsampleThreshold und /ColorImageResolution des PDF-Presets. |
| gImgHeight | int | |
| gCurrentImgWidth | int | Aktuelle Bildgröße in Punkten |
| gCurrentImgHeight | int | |
| gResult | int* |
Ergebnis der Bearbeitung. Achtung, die Variable ist ein Pointer! Wertzuweisungen müssen also den Inhalt der Variable ändern, etwa so: *gResult = 0; Folgende Werte für gResult werden unterstützt:
Unabhängig vom Wert, den Sie in gResult setzen, sollte Ihr Skript bei erfolgreicher Ausführung (und *gResult = 12; ist eine korrekte Zuweisung - auch wenn sie einen Fehler markiert) den Wert 0, also return 0; zurückgeben. |
Hier ein Beispiel. Das Beispiel verwendet ebenfalls PILLOW.
Funktional haben Sie also gegenüber der eingebauten Skalierung nichts gewonnen.
Hinweis: Das Skript selbst darf zwar nicht Python sein - aber es kann natürlich einen Systemaufruf an Python
ausführen. Sie müssen lediglich aufpassen, dass Sie die passende Python-Version verwenden.
Grund dafür ist, dass comet_pdf intern bereits einige Envirnment-Variablen für die
eigene Python-Ausführung gesetzt hat.
int main ()
{
char inpath [8192]; // gInfile with quotas escaped
char outpath [8192]; // gOutfile with quotas escape
char cmd [20000];
// Escape paths
//
strcpy (inpath, gInfile); strreplace (inpath, "\"", "\"\"");
strcpy (outpath, gOutfile); strreplace (outpath, "\"", "\"\"");
// Remove any existing new file
//
if (file::exists (outpath))
{
file::remove (outpath);
}
// Do the resize
//
// As an example, we use the Python module PILLOW here.
// The Python script resize.py corresponds functionally to the function
// built into comet_pdf for reducing the size of images.
//
// ATTENTION: Explicitly use the same Python version that comet_pdf uses!
//
sprintf (cmd, "python3.10 \"%s\" \"%s\" \"%s\" %s %d %d",
file::uncurtain ("$COMET/imgconv/resize.py"),
inpath, outpath, gFormat,
gImgWidth, gImgHeight);
*gResult = system::cmd (cmd);
return 0;
}
... und natürlich das zugehörige Python-Skript, das Sie im gleichen Ordner wie resize.cpp ablegen.
import os, sys
from PIL import Image
def main ():
infile = sys.argv[1]
outfile = sys.argv[2]
fmt = sys.argv[3]
width = int(sys.argv[4])
height = int(sys.argv[5])
if infile != outfile:
try:
print (f"Resizing '{infile}' to {width} x {height} pt")
im = Image.open(infile)
img_new = im.resize([width, height], Image.Resampling.BICUBIC, None)
img_new.save(outfile, fmt)
except IOError as errmess:
print (f"Cannot resize image '{infile}' : {errmess}")
return 1
return 0
exit (main ())
Textattribute können wahlweise im Text (local overrides), in Zeichenstilen und/oder in Absatzstilen gesetzt werden. InDesign® kennt insgesamt über 300 Textattribute. Hinzu kommen etwa 250 Attribute zur Unterstützung von Tabellen.
Die folgende Tabelle entält die von comet_pdf unterstützten Text- und Tabellenattribute:
| Eigenschaft | Tagged Text |
| ⇨ WERK II | |
| Textplatzhalter |
w2 |
| Tabellenmodul |
Seit v1.0 R7121 w2Table, w2cell |
| ⇨ Virtuelle Tags zur Unterstützung des Renderers | |
| Tabulatoren | tab |
| Leerzeichen | nonskipablespace |
| Softreturn | snl |
| ⇨ v1.0 R4255 | |
| Absatzstile | ParaStyle |
| Zeichenstile | CharStyle |
| Textausrichtung |
pTextAlignment Achtung: Die InDesign®-Einstellungen "Am Bund" und "Nicht am Bund" beziehen die Information, auf welcher Seite sich der Rahmen befindet, zur Zeit aus dem ersten Rahmen der Textkette. |
| Tabulatoren | pTabRuler |
| Sprache (für Trennregeln) | cLanguage |
| Schrift und Schriftschnitt | cFont, cTypeface |
| Schriftgröße | cSize |
| Schriftfarbe und -stärke | cColor, cColorTint |
| Position (hochgestellt, tiefgestellt, ...) | cPosition, cBaselineShift |
| Unterstreichung | cUnderline, cUnderlineOffset, cUnderlineWeightOffset, cUnderlineColor, cUnderlineTint
Es werden nur durchgezogene Linien unterstützt. Die in InDesign® möglichen verschiedenen Linientypen werden nicht unterstützt, siehe auch hier. |
| Durchstreichung | cStrikeThru, cStrikeThroughColor, cStrikethruTint
Offset undf Stärke von Unterstreichungen werden nicht unterstützt. Es werden nur durchgezogene Linien unterstützt. Die in InDesign® möglichen verschiedenen Linientypen werden nicht unterstützt, siehe auch hier. |
| Laufweite | cTracking, cKerning |
| ⇨ v1.0 R4617 | |
| Einzug links, Einzug rechts | pLeftIndent, pRightIndent |
| Einzug links in erster Zeile | pFirstLineIndent |
| ⇨ v1.0 R5235 | |
| Abstand vor Absatz | pSpaceBefore |
| Abstabd nach Absatz | pSpaceAfter |
| v1.0 R5301 | |
| Linie vor/nach dem Absatz |
pRuleAboveColor, pRuleBelowColor |
|
pRuleAboveStroke, pRuleBelowStroke |
|
|
pRuleAboveTint, pRuleBelowTint |
|
|
pRuleAboveOffset, pRuleBelowOffset |
|
|
pRuleAboveLeftIndent, pRuleBelowLeftIndent |
|
|
pRuleAboveRightIndent, pRuleBelowRightIndent |
|
|
pRuleAboveMode, pRuleBelowMode Die Einstellung "Wie Text" kann nicht unterstützt werden. ACHTUNG: Absatzlininen werden immer nach dem eigentlichen Text gezeichnet und können dadurch Textteile überdecken. |
|
| pRuleAboveOn, pRuleBelowOn | |
|
pRuleAboveStrokeType, pRuleBelowStrokeType Die Linientypen "Schraffiert", "Wellenlinie" und "Raute" werden nicht unterstützt. |
|
|
pRuleAboveGapColor, pRuleBelowGapColor |
|
|
pRuleAboveGapTint, pRuleBelowGapTint |
|
| Tabellenattribute |
TableStyle |
| TableStart | |
| tCellDefaultCellType | |
| ColStart | |
| tColAttrWidth | |
| RowStart | |
| tRowAttrHeight | |
|
StylePriority |
|
| RowEnd | |
| TableEnd | |
| Tabellenzellen-Attribute | CellStyle |
| CellStart | |
| CellEnd | |
| tCellAttrLeftStrokeWeight, ~Top~, ~Right~, ~Bottom~ | |
| tcLeftStrokeType, ~Top~, ~Right~, ~Bottom~ | |
| tCellTopStrokeColor, ~Top~, ~Right~, ~Bottom~ | |
| tCellAttrLeftStrokeTint, ~Top~, ~Right~, ~Bottom~ | |
| tCellLeftStrokeGapColor, ~Top~, ~Right~, ~Bottom~ | |
| tCellLeftStrokeGapTint, ~Top~, ~Right~, ~Bottom~ | |
| tCellAttrLeftInset, ~Top~, ~Right~, ~Bottom~ | |
| tCellAttrFillTint | |
| tCellFillColor | |
| tTextCellVerticalJustification | |
| tCellAttrRotation | |
| tRowKeeps | |
| ⇨ v1.0 R5322 | |
| Alternierende Füllfarben für Tabellenzeilen |
tTableRowFillPatternStartValue |
| Alternierende Füllfarben für Tabellenspalten | tTableColFillPatternStartValue tTablerColFillPatternEndValue // Achtung Schreibfehler von Adobe tTableColFillPatternFirstCount tColFillPatFirstColor tTableColFillPatternFirstTint tTableColFillPatternFirstOverprint tTableColFillPatternSecondCount tColFillPatSecondColor tTableColFillPatternSecondTint tTableColFillPatternSecondOverprint |
| Alternierende Konturen für Tabellenzeilen |
tTableRowStrokePatternStartVal |
| Alternierende Konturen für Tabellenspalten | tTableColStrokePatternStartVal tTableColStrokePatternEndVal tTableColStrokePatternFirstCount tColStrokePatternFirstWeight tColStrokePatternFirstType tColStrokePatFirstColor tTableColStrokePatternFirstTint tTableColStrokePatternFirstOverprint tColStrokePatternFirstGapColor tColStrokePatternFirstGapTint tColStrokePatternFirstGapOverprint tTableColStrokePatternSecondCount tColStrokePatternSecondWeight tColStrokePatternSecondType tColStrokePatSecondColor tTableColStrokePatternSecondTint tTableColStrokePatternSecondOverprint tColStrokePatternSecondGapColor tColStrokePatternSecondGapTint |
| ⇨ v1.0 R7569 | |
| Zeichenreihenfolge der Tabellenkonturen |
tStrokeOrder Die Einstellungen Beste Verbindungen und InDesign® 2.0 Kompatibilität werden nicht unterstützt. |
| Äußere Kanten von Tabellen |
tOuterLeftStrokeWeight |
| ⇨ v1.0 R8333 | |
| Aufzählungslisten |
bnListType |
| ⇨ v1.0 R9900 | |
| Zeichenskalierung | cHorizontalScale cVerticalScale |
| ⇨ v1.0 R10000 | |
| Overprints in Tabellen |
Noch nicht implementiert aber erlaubt tCellFillOverprint |
| Overprint in Text | cOverprint cStrikeThroughOverprint cUnderlineOverprint pRuleAboveOverprint pRuleBelowOverprint GapOverprints werden nicht speziell angewendet. Für die Löcher in Linien (soweit unterstützt) werden die gleichen Overprints für die Linien selbst verwendet. |
| ⇨ v1.0 R24702 | |
| Silbentrennung |
pHyphenation Leider gibt es keine direkte Entsprechung der Wortabstände zwischen InDesign® und PDF:
Wir können die Größe der Wortabstände daher nur annähern, aber nicht exakt festlegen. Weitere von InDesign® unterstütze Einstellungen zur Silbentrennung wie kürzestes Wort, kürzeste Vor- und Nachsilbe und maximal erlaubte Trennstriche können von comet_pdf nicht unterstützt werden. |
| ⇨ v1.0 R25256, 26. Mai. 2019 | |
| Übersatz in Tabellenzellen |
tCellClip Die Eigenschaft heißt in InDesign® Tabelle -> Zellenoptionen -> Text -> Beschneidung -> Inhalt auf Zelle beschneiden und hat (zumindest für uns) keinen erkennbaren Einfluß auf die Textdarstellung. Wir verwenden den Wert im Renderer daher wie folgt: Hat eine Tabellenzelle einen Textübersatz, der nicht durch eine größere Zeilenhöhe behoben werden kann oder darf und ist die Eigenschaft Inhalt beschneiden gesetzt, dann wird der Text so weit verkleinert, bis er ohne Übersatz in die Zelle passt. Untere Grenze für die Verkleinerung sind 10% der Ursprungsgröße. |
| ⇨ v4.1.8 R27453, 6 Sept. 2020 | |
| Großschreibung |
cCase Achtung : Kapitälchen und OpenType-Kapitälchen werden nicht unterstützt. In beiden Fällen wird statt dessen ebenfalls die normale Großschreibung verwendet. Hinweis: Obwohl es seit einiger Zeit ein Unicode-Zeichen für das große ß gibt, wird ß wie in InDesign in SS übersetzt. |
| ⇨ v4.2 32380, 17. Apr. 2023 | |
| Kein Umbruch |
cNoBreak Achtung :
Diese Eigenschaft kann nicht über Zeichenstile definiert werden.
Zum Setzen wählen Sie den gewünschten Text aus und aktivieren in der Palette Zeichen (CMD + T)
das Flyout-Menü Kein Umbruch. %!TT_html...<?IDTT <cNoBreak:1> ?>Text zusammenhalten<?IDTT <cNoBreak:> ?>... |
| GREP-Stil |
pRunInGrepStyles [Seit v4.2 R33170] Bemerkungen:
Die folgenden (Third Party) Seiten sind zwar etwas veraltet, könnten aber dennoch hilfreich sein: Basierend auf Erica-Gamets-GREP-Cheat-Sheet wurden folgende Nicht-GREP-Defintionen umgesetzt:
Bitte beachten Sie, dass die folgenden GREP-Definitionen nicht unterstützt werden:
Erweiterungen der GREP-Funktionalitäten können auf Anfrage implementiert werden. Aber bitte haben Sie Verständnis dafür, dass Erweiterungen der GREP-Funktionalitäten nicht durch den WERK-II-Support abgedeckt sind. |
| ⇨ v5.0 37000, 4. Juli 2025 | |
| Schriftkonturen |
cStrokeWeight Anwenden von Konturen auf die einzelnen Buchstaben des Ausgabetextes. Beachten Sie bitte Folgendes: cStrokeAlign: Die von InDesign® unterstützte Möglichkeit, Konturen außen an die Füllkontur der Buchstaben zu zeichnen, kann von comet_pdf leider nicht unterstützt werden. comet_pdf zeichnet die Konturen immer mittig auf die Füllkontur der Buchstaben. cMiterLimit und cOutlineJoin: comet_pdf kann diese Optionen nur einmal pro Text setzen und verwendet dafür die Einstellungen de ersten Zeichens des Textes, für das eine Kontur gezeichnet werden soll. Die Einstellungen von cMiterLimit und cOutlineJoin können von den entsprechenden Einstellungen für Unter- und Durchstreichungen und Linien vor und nach Absätzen überlagert werden oder diese überlagern.
|
Unter- und Durchstreichungen werden immer als durchgezogene Linien gezeichnet. Die von InDesign® angebotenen Linientypen wie gestrichelt usw. können leider nicht unterstützt werden. Zur Unterstützung besseren Durchstreich-Optionen werden Underlines mit einem Versatz < 2.0 als StrikeThru (also über dem Text liegend) gezeichnet!
Wird gleichzeitig durch- und unterstrichen (ein Highlight der Gestaltung), wird die Durchstreichfarbe auch für die Unterstreichung verwendet.
Besonderen Aufwand erforderten die Linien von Tabellenzellen. In InDesign® stecken hunderte Jahre Entwicklung. Das merkt man. Es ist äußerst schwierig, hier ein Erscheinungsbild wie in InDesign® zu erzeugen. Z.B. erkennt InDesign®, ob eine Linie "um die Ecke" geht und zeichnet Linien dementsprechend. Das wird von comet_pdf zur Zeit noch nicht unterstützt.
Tabellen haben eine Einstellung, ich welcher Reihenfolge Linien gezeichnet werden sollen. Der Renderer unterstützt die Möglichkeiten
Die Einstellungen Beste Verbindungen und InDesign® 2.0-Kompatibilittät werden nicht unterstützt.
Durch geschicktes Ändern einzelner Zellkonturen kann man außerdem die Zeichenreihenfolge einzelner Kreuzungen ändern. Dieses Verhalten kann nicht über Zelleigenschaften gesteuert werden und wird von InDesign® nicht in TaggedText geschrieben. (D.h. also, wenn Sie eine so geänderte Tabelle in TaggedText exportieren und wieder importieren, gehen lokale Änderungen an den Kontur-Kreuzungen verloren.) Und weil der Renderer auf TaggedText basiert, können wir lokale Änderungen an den Kontur-Kreuzungen leider auch nicht unterstützen.
[since v4.1 R24142] comet_pdf kann Anführungszeichen automatisch in typografische Anführungszeichen der aktuellen Sprache im Text ersetzen. Es werden alle von InDesign® unterstützten Sprachen unterstützt. Bitte beachten Sie folgende Einschränkungen:
Die Option ist standardmäßig abgeschaltet. Mit der Programmoption
--typgraphics on
kann die Option aktiviert/deaktiert werden. Folgende Werte sind erlaubt:
on, true, yes, 1
off, false, no, 0
Mit Hilfe der Funktion prefs::set_convert_quotas kann die Option auch temporär geändert werden.
Weitere Text- und Tabellenattribute werden Schritt für Schritt folgen. Sollten Sie hier (realisierbare) Wünsche haben, wenden Sie sich bitte an unsere Entwickler.
Adobe verwendet für InDesign® einige Ascii-Zeichen anders als definiert. Wir lassen das mal unkommentiert, aber hier ist eine Tabelle dieser Zeichen:
| Ascii | Beschreibung | InDesign® | Renderer |
| 3 | End of text | Verschachteltes Format hier beenden | Nicht unterstützt |
| 4 | End of transmisson | Fußnote | Nicht unterstützt |
| 7 | Bell | Einzug bis hierhin |
Ab R8160 unterstützt. In Releases vor R8160 verwenden Sie für Einzüge die InDesign®-Absatzeinstellungen Einzug links ( pLeftIndent) und "Einzug links in erster Zeile" (pFirstLineIndent) |
| 8 | Backspace | Tabulator für rechte Ausrichtung |
Tabulator Verwenden Sie Tab-Regeln der InDesign®-Palette Tabulatoren (ALT+CMD+T) |
| 22 (0x16) | Synchronous idle | Tabellenanker | Reserviert |
| 23 (0x17) | End of transmission block | Tabellenfortsetzung | Reserviert |
| 24 (0x18) | Cancel | Seitennummer | Noch nicht unterstützt |
| 25 (0x19) | End of medium | Absatzname | Noch nicht unterstützt |
| 26 (0x1A) | Substitute | "non roman special glyph" | Nicht verwendet |
Ausserdem nutzt Adobe teilweise den Unicode-Bereich, der für Endbenutzer reserviert ist (0xE000 - 0xEFFF). Von den Funktionalitäten, die hinter diesen Zeichen teilweise stehen, ist im PDFRenderer bisher noch nichts umgesetzt. Einige Zeichen werden ausserdem temporär vom Renderer selbst genutzt.
| Unicode | Name | Beschreibung |
| 0xE000 | Inline | Schon mal bemerkt? Inlines werden von TaggedText gar nicht unterstützt. Das Zeichen 0xE000 kommt daher im TaggedText auch gar nicht vor.
Im PDFRenderer werden Inlines auf andere Weise realisiert. |
| 0xE001 | Special Glyph | ? - glyph specified by attributes |
| 0xE002 | Page number | Im TaggedText wird dieses Zeichen nicht verwendet. Dort wird die oben erwähnte Ascii 24 (0x18) verwendet. |
| 0xE003 | Section name | Im TaggedText wird dieses Zeichen nicht verwendet. Dort wird die oben erwähnte Ascii 25 (0x19) verwendet. |
| 0xE004 | NonRomanSpecialGlyp | ? - non-Roman glyph specified by attributes |
| 0xE005 | nicht verwendet | |
| 0xE006 | AnyCharacter | Diese Zeichen werden als Wildcards beim Suchen und Ersetzen verwendet. Im TaggedText kommen sie nicht vor. |
| 0xE007 | AnyLetter | |
| 0xE008 | AnyDigit | |
| 0xE009 | WhiteSpace | |
| 0xE00A | AnyKanji | |
| 0xE00B | ColumnBreak | Nicht verwendet im TaggedText. Statt dessen werden die folgenden (nicht geschlossenen Tags verwendet:
<cNextXChars:Column> |
| 0xE00C | PageBreak | |
| 0xE00D | FrameBoxBreak | |
| 0xE00E | OddPageBreak | |
| 0xE00F | EvenPageBreak | |
| 0xE010 | AnySingeQuote | Undokumentiert. Ich nehme an, die Zeichen werden 0xE005-A fürs Suchen und Ersetzen verwendet und haben keine Bedeutung für den TaggedText. |
| 0xE011 | AnyDoubleQuote | |
| 0xE012 | Page count variable |
Diese Zeichen kommen im TaggedText nicht vor. Sie verwenden statt dessen die Kontruktion (die hier nur aus Gründen der Übersichtlichkeit auf mehrere Zeilen verteilt ist): <cPageNumType:TextVariable> Die Variable YOUR_VAR muß im Dokument definiert sein. |
| 0xE013 | Chapter number variable | |
| 0xE014 | Creation date variable | |
| 0xE015 | Modification date variable | |
| 0xE016 | File name variable | |
| 0xE017 | Output date variable | |
| 0xE018 | Running header PS variable | |
| 0xE019 | Custom text variable | |
| 0xE01A | nicht verwendet | Entweder ist das ein Fehler beim Hex-Zählen oder die Zeichen sind reserviert. Jedenfalls werden sie wohl nicht verwendet. |
| 0xE01B | ||
| 0xE01C | ||
| 0xE01D | ||
| 0xE01E | ||
| 0xE01F | ||
| 0xE020 | Any variable | Undokumentiert. Ich nehme an, die Zeichen werden 0xE005-A fürs Suchen und Ersetzen verwendet und haben keine Bedeutung für den TaggedText. |
| 0xE021 | Any page number | |
| 0xE022 | Next page number |
Die Zeichen werden im TaggedText nicht verwendet. Für diese Angaben werden die folgenden Tags eingefügt: <cPageNumType:Next><cPageNumType> |
| 0xE023 | Previous page number | |
| 0xE024 | Any break | Undokumentiert. Ich nehme an, die Zeichen werden 0xE005-A fürs Suchen und Ersetzen verwendet und haben keine Bedeutung für den TaggedText. |
| 0xE025 | Current page number | Noch mal? Die hatten wir doch schon zweimal. |
| 0xE026 | Clip board contents (formatted) |
Keine Bedeutung für TaggedText |
| 0xE027 | Clip board contents (unformatted) | |
| 0xE028 | Double left quote | Sprachabhängige Anführungszeichen. Im TaggedText sind die bereits durch ersetzt durch die jeweiligen richtigen Zeichen. |
| 0xE029 | Double right quote | |
| 0xE02A | Single keft quote | |
| 0xE02B | Single right quote | |
| 0xE02C | Index marker | |
| 0xE02D | Running header CS variable | siehe 0xE012 (Textvariablen) |
| 0xE02E | Double straight quote | siehe 0xE028 (sprachabhängige Anführungszeichen) |
| 0xE02F | Singe straight quote | |
| 0xE030 | Meta data caption variable | siehe 0xE012 (Textvariablen) |
| 0xE00B | Style group path seperator | Wird im TaggedText bereits durch ':' (bzw. '\:') ersetzt und kommt daher dort gar nicht vor |
| 0xEF01 | Tabellenmarken | |
| 0xEF02 | ||
| 0xEF10 | \\ |
Diese Zeichen werden vom Renderer temporär bei der Bearbeitung von TaggedText verwendet und dürfen daher in Texten nicht verwendet werden. |
| 0xEF11 | \< | |
| 0xEF12 | \> | |
Wir haben fast alle Rahmeneinstellungen, die InDesign® anbietet, auch in comet_pdf implementiert. Hier die Liste der missing features:
Pfad-Konturen, die nicht mittig sind, werden als rot (und mittig) gezeichnet. So dürften Sie relativ schnell sehen, dass an dieser Stelle etwas nicht stimmt (und Pfadeinstellung und Rahmengröße angepasst werden müssen).
Comet_pdf unterstützt verkettete Texte.
Aber!
Hintergrund ist in beiden Fälle, dass die Rahmen strikt in der Reihenfolge, die der Text vorgibt, gezeichnet werden müssen und dass immer nur eine Seite zur gleichen Zeit gerendert werden kann.
Platzhalter, die direkt vor einem Absatzende enden und gleich nach dem neuen Absatz wieder beginnen und sowohl die gleichen Platzhalter-IDs als auch gleiche Produkt-IDs haben, werden vom Renderer automatisch zu einem Platzhalter zusammengefasst (Es soll ja Textplatzhalter geben, die über mehrere Absätze gehen.) Daraus folgt aber eine kleine und eher theoretische Ausnahme:
Platzhalter mit gleichen Platzhalter-IDs und gleichen Produkt-IDs müssen mindestens durch ein Zeichen getrennt sein, dass nicht der Absatztrenner ist.
Platzhalter, die lediglich den Absatztrenner enthalten, können von comet_pdf nicht erkannt werden. InDesign® trickst hier für den TaggedText auf unglaubliche Weise: Aus verschiedenen Kombinationen von zusätzlichen kontext-abhängigen Zeilentrennern und schließenden Tags hinter dem öffnenden <ParaStyle:> erkennt das Programm, ob ein Textattribut (unter Umständen auch) für den Absatztrenner gilt. Durch den für comet_pdf nötigen Umweg über das Zwischenformat W2ML kann dieses Verhalten hier nicht implementiert werden.
Im Bild sehen einen InDesign®-Screenshot einer Tabelle mit einem Bild in der Zelle (2, 2). Das Bild ist ein bißchen zu breit für diese Zelle. InDesign® zeichnet es einfach über die folgenden Spalten und Seiteninhalte und überdeckt deren Inhalte.

Dieses Verhalten wird von comet_pdf nicht unterstützt. Tabellenspalten müssen breit genug sein, damit sie einen Inline-Rahmen aufnehmen können. Eine automatische Anpassung der Spaltenbreite wird nicht gemacht. So bestimmen Sie die Mindestbreite einer Spalte:
Breite des Inlines
- linker Zellinnenabstand
- rechter Zellinnenabstand
- halbe Breite der linken Zellkante
- halbe Breite der rechten Zellkante
- 0,5
Im Gegensatz zu Spaltenbreiten können Zeilen in ihrer Höhe an den Platzbedarf der Inlines angepasst werden. Wenn Zeilen eine feste Höhe haben oder die Inlines höher als die festgelegte Maximalhöhe der Zeile sind, wird das Inline - ebenfalls wie in InDesign®- nicht gezeichnet und verschwindet im Übersatz der Zelle.
Um in Tabellenzellen verankerte Rahmen zu zeigen, die größer als die Zelle sind (und mglw. auch neben den Zellen liegen), verwenden Sie benutzerdefinierte Anker. Im Bild ist der rote Rahmen mit einem benutzerdefinierten Anker in der gelben Zelle verankert:

In InDesign® machen Sie diese Einstellungen mit dem Menü Objekt -> Verankerte Rahmen -> Optionen. Hier die Einstellungen für das obige Beispiel. Achten Sie insbesondere auf die Bezugspunkte!

[seit v1.0 R25256] Textübersatz in Tabellenzellen kann (wie in InDesign®) mit einem roten Punkt in der Tabellenzellen anzeigt werden:

Standardmäßig bleiben die roten Punkte ausgeblendet. Verwenden Sie zum Aktivieren der Overset-Markierungen die Option -ao.
Im Gegensatz zu InDesign® kann comet_pdf den Übersatz des Textes selbstständig beseitigen. Dazu wird der Zellinhalt in 1%-Schritten solange verkleinert, bis kein Übersatz mehr entsteht. Untere Grenze der Skalierung ist 10%. Um die automatische Textskalierung bei Übersatz in Tabellenzellen zu aktivieren, setzen Sie die Eigenschaft
Tabelle -> Zellenoptionen -> Text -> Beschneidung -> Inhalt auf Zelle beschneiden
der Zelle.
Im TaggedText heißt das Attribut tCellClip.
Wir haben die Eigenschaft Inhalt auf Zelle beschneiden deshalb als Träger dieser Information verwendet, weil es dafür erstens natürlich kein natives Attribut gibt und zweitens das Attribut zumindest für uns keinen sichtbaren Effekt auf die Textdarstellung in Tabellenzellen hat.
Hier ein Screenshot der gleichen Tabelle, bei dem für jede Zelle die Eigenschaft Inhalt auf Zelle beschneiden gesetzt ist:

Voraussetzung für die Verwendung von Textvariablen ist, dass die W2MLs mit mindestens v4.0.5 R10822 der Comet-Plugins erstellt wurden.
Comet_pdf versteht alle Textvariablen mit allen Formatierungen, wie sie in InDesign® verwendet werden können. Einige spezielle Angaben können aber vom Renderer nicht ermittelt werden. Umgekehrt sind uns bei der Implementierung einige Inkonsistenzen in InDesign® aufgefallen, die wir versucht haben, zu korrigieren. Für alle Variablen gilt außerdem, dass langer Inhalt nicht, wie in InDesign®, auf die Breite das aktuellen Textrahmens zusammengeschoben (und mglw. vollkommen unleserlich) wird - die Inhalte behalten ihre normale Breite und werden bei Bedarf und Möglichkeit ganz normal getrennt.
Die folgende Tabelle gibt eine vollständige Beschreibung aller Variablen und eventueller Abweichungen zur Verwendung in InDesign®.
| Variable | Beschreibung | Bemerkungen |
| Ausgabedatum | In InDesign® wird hier der letzte Zeitpunkt verwendet, an dem das Dokument (in IDML oder PDF) exportiert wird. Für den Renderer ist das "JETZT". |
Für die ausgeschriebenen Lang- und Kurzformen von Wochentagen und Monaten verwendet InDesign® für die verschiedenen Sprachen offenbar interne Übersetzungen. Im Renderer werden die im jeweiligen Betriebssystem installierten sog. LOCALES verwendet: MAC : /usr/share/locale Die so definierten Angaben können unter Umständen von den Angaben in InDesign® abweichen. Und möglicherweise ist die eine oder andere LOCALE auch gar nicht installiert. Die Angaben Zeitzone [zzzz] Zeitzone (kurz) [z] und Ära (G) werden vom Renderer nicht unterstützt und mit Leerstrings gefüllt. Es werden alle Sprachen von InDesign® CS6 außer Indisch (und Varianten) unterstützt. |
| Erstellungsdatum | Erstellungsdatum der W2ML-Datei | |
| Änderungsdatum | Letzte Änderung der W2ML-Datei | |
| Benutzerdefnierter Text | wie InDesign® | |
| Dateiname | wie InDesign® |
Die Mac-Versionen von InDesign® zeigen hier alte Mac OS 9 - Pfade der Form Diva:Users:paul:Desktop:aaa.indd Die letzte Version dieses Betriebssystemes war Ende 2001. Ich denke, wir machen keinen Fehler, hier die heute gebräuchliche Form zu verwenden /Users/paul/Desktop/aaa.indd |
| Kapitelnummer | wie InDesign® | |
| Lebender Kolumnentitel (Absatzformat) | fast wie InDesign® |
Bei beiden Variablen wird, wenn auf der aktuellen Seite kein entsprechend formatierter Text gefunden wird, auf den Vorgängerseiten gesucht. Wird Text gefunden, verhalten sich InDesign® unterschiedlich (falsch):
Beides erscheint uns nicht ganz richtig und wir verwenden im Renderer hoffentlich die jeweils richtigen Texte. |
| Lebender Kolumnentitel (Zeichenformat) | ||
| Letzte Seitenzahl | wie InDesign® |
Es kann ausgewählt werden, ob die letzte Seite des Abschnittes oder des Dokumentes verwendet werden soll. Wird die letzte Dokumentseite mit der Formatierung [Aktuelles Nummerierungsformat] gewählt, verwendet InDesign® das Nummerierungsformat des aktuellen Abschnittes, nicht das (möglicherweise abweichende) Nummerierungsformat der letzten Seite. Im Renderer wird für die Textvariable der letzten Dokumentseite immer das Nummerierungsformat verwendet, das im letzten Abschnitt des Dokument tatsächlich eingestellt ist. |
| Metadatenbeschriftung | wie InDesign® |
Wie bei Dateinamen werden auch hier unter Mac die heute gebräuchlichen Unix-Pfade verwendet. Datumsangaben schreibt InDesign® immer nur in der Formatierung der Sprache des verwendeten InDesign®, nicht in der Sprache, die für die Textvariable eingestellt ist. Im Renderer wird hier die lokale Datumseinstellung der Textstelle verwendet. Auch die Angaben <keine Überschneidung>, <mehrere Überschneidungen> und <keine Daten von Verknüpfung> werden immer nur in der aktuellen InDesign®-Sprache eingefügt. Im Renderer werden die Übersetzungen der aktuellen Textsprache verwendet. Enthält ein Bild Metadaten im XMP-Header, kann InDesign® offenbar die EXIF-Daten des Bildes nicht mehr richtig lesen - probieren Sie es aus. Im Renderer können die EXIF-Daten wie Belichtungszeit, Kamera und Brennweite immer gelesen werden. Wollen Sie weitere Daten verwenden, kann das über ein Skript auch mit einem externen Tool gemacht werden, mehr dazu siehe hier. Die Angaben Transparenz und ICC-Profil werden vom Renderer nicht unterstützt und mit <unbekannt> resp. - beantwortet. |
Metadaten von Bildern können über das cScript imgconv/read_exif.cpp auch von einem externen Tool erfragt werden. Im Skript sind die folgenden Variablen definiert:
| Variable | Typ | Bemerkungen |
| gImagePath | char* (r/o) |
Vollständiger Pfad des Bildes |
| gKeys | StringList | Ergebnisse. Die Listen werden jeweils mit Schlüssel und Wert der gefundenen Eigenschaften gefüllt und müssen gleich lang sein. Als Schlüssel werden die von exiftool vergebenen Schlüssel verwendet. Verwenden Sie hier ein anderes Tool, müssen die gleichen Schlüssel verwendet werden. |
| gValues | ||
| gResult | int* | -1 : Skript nicht verwenden und auch nicht wieder aufrufen (Standard) 0 : Fehlerfrei ausgeführt sonst : Fehler bei der Ermittlung der Daten |
In der installierten Version gibt das Skript -1 zurück - es wird also nur einmal ausgeführt und der Renderer ermittlelt die EXIF Daten dann intern. Vorbereitet ist das Skript aber auch für die Verwendung von exiftool. Kommentieren Sie dazu einfach die ersten Zeilen der main-Funktion aus. Stellen Sie aber davor bitte sicher, dass Sie die Lizenzbedingungen von exiftool erfüllen!
Hier sehen zwei Screenshots mit Variablen, einmal ein Darstellung von Wochen- und Monatsnamen in verschiedenen Sprachen. Einmal das volle Programm von Bild-Metadate. Auch hier sind zu Demonstrationszwecken einige Angaben mehrfach und in verschiedenen Sprachen:


Voraussetzung für die Verwendung von Grafikzellen in Tabellen ist, dass die W2MLs mit mindestens mit InDesign® CC 2015 und v4.0.5 R20104 der Comet-Plugins erstellt wurden.
Seit InDesign® CC 2015 können Tabellenzellen Bilder direkt aufnehmen. Dazu muß eine Zellen lediglich in eine Grafikzelle konvertiert werden. Dabei entsteht ein Bildrahmen, der die Zelle abzüglich dem Zellversatz vollständig ausfüllt und automatisch angepasst wird, wenn sich die Zellgröße ändert. Der Bildrahmen gehört direkt zur Tabelle, er wird nicht über ein Inline im Text der Zelle erzeugt. In der Abbildung sehen Sie einen Ausschnitt einer Tabelle mit Grafikzellen in der Spalte abc:

comet_pdf kann solche Rahmen in Zellen jetzt ebenfalls darstellen.
Leider hat Adobe die Grafikzellen etwas flüchtig implementiert: Es fehlt eine Möglichkeit, bestehende Rahmen in Zellen einzufügen. Der Rahmen kann nur über das Konvertieren der Zelle erstellt werden, alle Eigenschaften wie Farbe, Rand, etc. müssen nachträglich gesetzt werden. Schwerwiegender ist aber das merkwürdige Verhalten bei gedrehten Rahmen: Ändert sich die Zellgröße, werden die vier Eckpunkte zwar entsprechend neu positioniert, behalten aber an allen vier Seiten die gleichen Abstände zum Zellrand. Dadurch wird das Viereck aber in der Regel verzerrt:

Wir sind uns zeimlich sicher, dass das nicht dem erwarteten Verhalten entspricht. Es verhindert natürlich auch, dass eine Zeile oder Spalte mehrere gedrehte Rechtecke enthält. comet_pdf berechnet die neue Größe des Rahmens deshalb so, dass der Rahmen zwar entsprechend skaliert wird, aber seine Proportionen behält und in Richtung der größeren Seite zentriert wird:

In der aktuellen Version von comet_pdf können noch keine neuen Grafikrahmen in Zellen erzeugt werden. Das betrifft auch das Duplizieren von Zellen, Spalten oder Tabellen. Insbesondere können also auch keine Templates mit Grafikzellen verwendet werden.
Grafikrahmen in Zellen werden zwar angepasst, wenn sich die Zellengröße ändert. Änderungen des Zellversatzes werden zur Zeit noch nicht berücksichtigt.
comet_pdf unterstützt InDesign®-Objektstile. Aber (anders als Farbfelder und Zeichen- und Absatzstile) werden Objektstile beim Kopieren von Rahmen zwischen Dokumenten nicht automatisch übertragen: Existiert der Objektstil eines Rahmens nicht im Zieldokument, bekommt der Rahmen den Standard-Objektstil [None].
Folgende Eigenschaften von Objektstilen werden unterstützt:
Voraussetzung für die Verwendung von Rahmeneinpassungsoptionen ist, dass die W2MLs mit mindestens mit v4.0.5 R20104 der Comet-Plugins erstellt wurden.
Rahmeneinpassungsoptionen sind die InDesign®-Alternative zu den Gestaltungsregeln von priint:comet. Beide Methoden gleichzeitig zu verwenden, kann zu unvorhergesehenen Ergebnissen führen. Insbesondere in Grafikzellen werden häufig Rahmeneinpassungsoptionen verwendet, um Bilder nach Rahmenänderungen wieder richtig einzupassen. comet_pdf unterstützt die Einstellungen der Rahmeneinpassungsoptionen und führt sie bei Änderungen von Rahmengrößen bei Bedarf automatisch aus.
comet_pdf interpretiert aber die seitlichen Randabstände etwas anders als InDesign®: Abstände, die das Bild nach innen verschieben (oder verkleinern) werden nicht, wie in InDesign®, relativ zur Bildskalierung angewendet. Ein linker Abstand von 10 pt bleibt also ein linker Abstand von 10 pt, unabhängig davon, ob das Bild in 100% oder in 50% gezeigt wird.
Außerdem ist das Verhalten bei unlösbaren Situationen etwas anders.
Eine unlösbare Situation ist z.B. ein 100x100 Bild in einem 100x100 Rahmen mit jeweils 10 pt Seitenrand. Wird der Rahmen jetzt nicht-proportional auf 100x50 verkleinert, muß irgendeine Bedingung fallengelassen werden:
Für InDesign® haben allem Anschein nach die Seitenabstände zur größeren Bildseite oberste Priorität, in der anderen Dimension kann das Bild dann über den Rahmen hinausragen. Wir konnten das Verhalten aber trotz intensiver Versuche nicht vollständig verhersehbar klären. Aber wie auch immer, für comet_pdf hat die Sichtbarkeit des Bildes Priorität.
Alle Texte der Ausgabe können automatisch übersetzt werden. Für die Übersetzung wird ein von deepl.com zur Verfügung gesteller Online-Service verwendet.
Für die automatische Übersetzung Ihrer Texte wird eine Internet-Verbindung benötigt.
DeepL versucht mit Hilfe sogenannter künstlicher Intelligenz Sätze in ihrem Kontext zu übersetzen. Hier sehen ein beeinruckendes Beispiel für die Übersetzung des Wortes Absatz in unterschiedlichem Kontext:
Formatierter Text kann aber aus naheliegenden Gründen nur in Bruchstücken (sogenannten chunks) gleicher Formatierung zur Übersetzung geschickt werden. Die Übersetzung wird also besser, je weniger Formatänderungen ein Text enthält.
Aktuell werden von deepL die folgenden Sprachen unterstützt:
Die Ziel-Sprache wird als Kürzel mit der Programmoption --lang LL festgelegt. Beachten Sie biite, dass natürlich auch der Originaltext in einer der angegebenen Sprachen vorliegen muß.
Zur Aktivierung der Übersetzung muss gleichzeitig die Option --deepl definert und gültig sein!
Sie haben sicher Verständnis dafür, dass deepL für seinen Service eine (geringe) Gebühr verlangt. Um eine gültige Lizenz zu erhalten, müssen Sie sich bei deepl.com registrieren. Nach erfolgreicher Anmeldung erhalten Sie einen Lizensierungscode. Diesen Code (und nichts weiter) kopieren Sie in eine Datei. In der Programmoption --deepl path geben Sie den Pfad zu dieser Datei an. Damit steht der Übersetzung dann nichts mehr Weg.
Die Zieldatei kann wahweise PDF oder HTML sein. Geben Sie das gewünschte Zielformat im Parameter --desttype pdf | html an. Standard ist die PDF-Ausgabe.
Achtung: Die HTML-Ausgabe ist zur Zeit lediglich experimentell. Über (realistische) Anregungen und besonders über Lösungsvorschläge freuen wir uns. Aber bitte haben Sie Verständnis, dass der HTML-Export des Renderers zur Zeit nicht Teil des Supports von WERK II oder Partnern ist.
Im Unterschied zum seitenweisen Aufbau einer InDesign®- oder PDF-Datei kennt HTML Seiten überhaupt nicht. Die Größe der Ausgabefläche ist vollkommen unbekannt und im Gegenteil immer wieder unterschiedlich. Ebenso ist die Größe von (Text-)rahmen vom verwendeten Ausgabeprogramm und -rechner abhängig.
Die Anwendung von Funktionen wie "Rahmen anpassen" ist (zumindest bei Textrahmen) vollkommen nutzlos und wird deshalb gar nicht erst versucht. Aus der unbekannten Rahmengröße folgt aber auch, dass die Platzierung von Rahmen an festen Koordinaten in aller Regel nutzlos (oder sogar falsch) ist. Die Ausgabe legt daher lediglich die Abstände der Rahmen zueinander fest.
Da wir auf aufwendige Größenberechnungen weitestgehend verzichten können, ist die Generierung von HTML wesentlich schneller als PDF.
Sehen Sie hier zwei Beispiele von comet_pdf erzeugtem HTML:


Auf Grund der vollkommen unterschiedlichen Welten von Druck und Online, haben sich immer wieder neue Probleme ergeben, die in HTML/CSS/Javscript nicht oder nicht vollständig gelöst werden können. Hier nur eine kleine Aufzählung die keinesfalls Anspruch auf Vollständigkeit erhebt:
Zur Anassung der HTML-Ausgabe können eigene Style, Skripte, ... vor das Ende <head>-Teil der Datei geschrieben werden. Mit der Angabe --htmlhead path legen Sie dafür eine Datei fest. Der Inhalt dieser Datei wird 1:1 und ohne Änderungen vor das schließende </head> in die Ausgabe-HTML-Datei eingefügt. Damit haben Sie den letzten Zugriff auf die Stilinformationen und Javscript-Funktionen der Ausgabe.
Hinweis: Der sicherste Weg zu einer einfachen Lösung ist sicher, die Ergebnis-HTML in einem HTML-Editor zu öffnen und Ihre Lösungen dort zu testen.
Mit der Angabe --htmlfoot path legen Sie eine Datei fest, deren Inhalt direkt vor das schlieessende </body>- Tag der HTML-Ausgabe eingefügt wird. Wichtige Aufgabe dieser Einfügung ist die Deklaration der verwendeten Schriften, siehe folgender Absatz.
In neueren Versionen von Safari erlaubt Apple nur noch die Verwendung von Schriften, die in der Standardversion des Betriebssystems installiert wurden. Alle anderen Schriften werden ignoriert und durch eine Default-Schrift ersetzt. Eine Liste der erlaubten Schriften finden Sie hier.
Um diesem Problem zu begegnen, haben wir jede Verwendeung der CSS-Definition font-family wie folgt implementiert:
font-family:"SF Compact Display",var(--font-SF_Compact_Display-Bold);
Browser werden also zuerst versuchen, den lokalen Font zu verwenden (und dabei den benötigten Stil selbstständig ermittlen). Schlägt das fehl, wird versucht, den unter der darauf folgenden zugehörigen CSS-Variablen angegebenen Font zu verwenden. Der Name der Variablen wird dabei aus dem Präfix --font plus Fontname plus Schriftschnitt gebildet und mit dem gleichen Font vorbelegt. Der Schriftschnitt Regular wird dabei ignoriert. Leerzeichen und Anführungszeichen werden durch _ (Unterstrich) ersetzt., Fontname und Fontschnitt werden durch - (Minus) getrennt. Hier ein Beispiel:
Ein Dokument verwendet die Schriften Myriad Pro und Arial Unicode MS. Die folgenden Definitionen werden ins HTML geschrieben:
<style>
:root
{
--font-Myriad-Pro : 'Myriad Pro';
--font-Myriad-Pro-Bold-Condensed : 'Myriad Pro Bold Condensed';
--font-Myriad-Pro-Bold : 'Myriad Pro Bold';
--font-Arial-Unicode-MS : 'Arial Unicode MS';
}
</style>
Um diese Definitionen zu überschreiben, kopieren Sie diesen <style>-Block und ändern die verwendeten Schriften etwa wie folgt:
<style>
:root
{
--font-Myriad-Pro : 'Helvetica Neue';
--font-Myriad-Pro-Bold-Condensed : 'Helvetica Neue Conndensed Bold';
--font-Myriad-Pro-Bold : 'Helvetica Neue Bold';
--font-Arial-Unicode-MS : '-apple-system';
}
</style>
In den Html-Optionen legen Sie generelle Einstellungen zum Erzeugen des HTML fest. Hier finden Sie eine kommentierte Beispieldatei. Mit --htmloptions path legen Sie fest., ob und welche Konfigurationsdatei Sie verwenden wollen.
Mit --config_path path ändern Sie den Konfigurations-Ordner des Programmes. Alle relativen Pfade wie fontnames.xml, hyphenations, XCache usw. werden dann relativ zu diesem Ordner aufgelöst (und alle Verweise auf app_path dieser Doku zeigen dann auf diesen Ordner). Das ist sinnvoll in Fällen, in denen Sie verschiedene Konfigurationen mit den gleichen Aufrufen verwenden wollen.
Der Parameter path darf mit $DESKTOP, etc. beginnen, darf aber natürlich selbst kein relativer Pfad sein!
Für einen möglichst einfachen Workflow empfehlen wir, allfällige Nachbearbeitungen wie Datenkomprimierung oder Farbanpassungen des fertigen PDFs innerhalb von comet_pdf zu machen.
Dazu steht die DocWatch-Situation "Vor dem Schließen des Dokumentes" zur Verfügung. Dieses Skript wird bei aktivierter Dokumentbeobachtung direkt vor dem Schließen des (W2ML-)Dokumentes ausgeführt. Das Ausgabe-PDF ist zu diesem Zeitpunkt feritg und geschlossen. In dem Skript können Sie mit system::cmd externe Terminal-Programme zur Bearbeitng des PDFs aufrufen.
Das "Vor dem Schließen des Dokumentes"-Skript wird nach dem Erstellen der Meta-Daten ausgeführt. Änderungen, die das Skript am PDF vornimmt, werden alo in den Meta-Daten nicht sichtbar sein!
Ab v4.1.8 R30410 wird das "Vor dem Schließen des Dokumentes"-Skript deshalb ein weiteres Mal direkt vor dem Anlegen der Meta-Daten ausgeführt. Dieser Aufruf wird auch dann gemacht, wenn danach keine Meta-Daten angelegt werden. Um den Aufruf vom allgemeinen Vor dem Schließen-Aufruf zu unterscheiden, ist hier die globale Variable gBeforeMetaData auf den Wert 1 gesetzt. In allen anderen Fällen und in InDesign® ist diese Variable immer gleich 0.
Um bequem auf das erzeugte PDF zugreifen zu können, gibt es (ebenfalls ab v4.1.8 R30410) die globale Variable gDocumentPathPDF.
Beachten Sie bitte unbedingt, dass strukturelle Änderungen am PDF zu Fehlern bei der Generierung der Meta-Daten führen können, weil die Informationen über die Meta-Daten nicht mehr zum PDF passen.
Das folgende Beispiel konvertiert das fertige PDF in ein reines RGB-Dokument. Zur Konvertierung wird Ghostscript verwendet, für das Sie natürlich die erforderlichen Lizenzen besitzen müssen!
int main ()
{
char path[4096];
String cmd = string::alloc ();
String rgbprofile = string::alloc ();
String iccname = string::alloc ();
String iccpath = string::alloc ();
String path2 = string::alloc ();
String name = string::alloc ();
String tmppath = string::alloc ();
int found = 0;
int i;
document::path (path, gDocument);
wlog ("", "# Before close '%s'\n", path);
if (system::version () > 0)
{
// comet_pdf
//
if (gBeforeMetaData)
{
//Get the current color profile
//and search for it's complete path
//
document::get_color_profiles (gDocument, rgbprofile);
if (string::length (rgbprofile)) string::set (rgbprofile, "Adobe RGB (1998)");
for (i = 0; i < color::count_profiles (); i++)
{
color::get_nth_profile (0, 0, i, iccname, 0, 0, 0, 0, iccpath);
if (string::compare (iccname, rgbprofile) == 0)
{
found = 1;
break;
}
}
if (found)
{
//Use Ghostscript to apply the new color profile
//The result must be written to an tmp file
//
file::path (path2, gDocumentPathPDF);
string::set (tmppath, "%s/%s_tmp.pdf", path2, name);
string::set (cmd, "gs -dSAFER -sOutputFile='%s' ", tmppath);
string::append (cmd, "-dNOPAUSE -dBATCH -sDEVICE=pdfwrite ");
string::append (cmd, "-dProcessColorModel=/DeviceRGB ");
string::append (cmd, "-dColorConversionStrategy=/sRGB ");
string::append (cmd, "-dColorConversionStrategyForImages=/sRGB ");
string::append (cmd, "-sOutputICCProfile='%s' ", iccpath);
string::append (cmd, "-dOverrideICC=true ");
string::append (cmd, "'%s' ", gDocumentPathPDF);
string::append (cmd, "> /dev/null"); //Mac and Linux Only
//Execute the command
//
system::cmd (cmd);
//Remove the original PDF
//and rename the tmp
//
file::name (name, gDocumentPathPDF);
file::remove (gDocumentPathPDF);
file::rename (tmppath, name);
}
}
}
return 0;
}
Comet_pdf kann in Publishing Server integriert werden. Hier finden Sie dazu eine Beschreibung. Der Publishing Server steuert comet_pdf dabei über die Comet API Scripting DOM.
[Ab v5.0 R35720] Comet_pdf unterstützt die Erstellung barrierefreier PDFs für Adobe Acrobat® und andere PDF-Viewer.
Im Screenshot sehen Sie die sogenannten Tags für die Ein/Ausgabehilfe eines barrierefreien PDFs in Acrobat®. Mit dem rot markierten Button kann die Struktur ein und ausgeblendet werden.
In InDesign® ist die Option zum Erstellen barrierefreier PDFs etwas versteckt über die Checkbox PDF mit Tags erstellen der PDF-Vorgaben • Allgemein aktivierbar. Mit dem Aktivieren dieser Checkbox wird in den PDF-Vorgaben das Tag /GenerateStructure auf den Wert true gesetzt. Mit der gleichen Defintion in den PDF-Vorgaben von comet_pdf aktivieren Sie auch in comet_pdf das Anlegen der Tags für die Barrierefreiheit:
/GenerateStructure true
Für das Anlegen der Tags für die Barrierefreiheit ist mindestens comet_pdf v5.0 mit PDFlib 10 erforderlich!
Die Tags der Barrierefreiheit können in zwei Reihenfolgen angelegt werden:
Zur Übernahme der Tag-Reihenfolge in den W2ML-Export von InDesign müssen mindestens priint:comet Plugins v5.0 R35720 verwendet werden!
Die natürliche Reihenfolge geht seitenweise von links oben nach rechts unten und wird automatisch aus den XY-Koordinaten der Rahmen berechnet. Es sind keine weiteren Einstellungen nötig.
Die Artikel und ihre Reihenfolge werden in der Artikel-Palette konfiguriert. Für cScript stehen die folgenden Funktionen zur Verfügung:
Mit Hilfe des InDesign®-Dialoges Objekt -> Objektexportoptionen... kann eingestellt werden, welche Informationen eines Rahmens in den Tags für den barrierefreien Zugang enthalten sein sollen. Für cScript stehen die dafür folgenden Funktionen zur Verfügung:
Artikel können vom Export ausgeschlossen sein (siehe document::article::set/get_use_for_export). InDesign® exportiert in diesem Fall trotzdem alle Inhalte (Rahmen) des Artikels. Lediglich der Artikel-Tag wird nicht in die Tag-Struktur eingefügt. In comet_pdf können Sie mit dem (nicht für InDesign definierten) Tag /OmitItemsOfUnusedArticles der PDF-Vorgaben das Verhalten steuern:
/OmitItemsOfUnusedArticles true | false
Das Tag /OmitItemsOfUnusedArticles wird von InDesign® ignoriert. Die Inhalte nicht exportierter Artikel werden von InDesign® immer ins Zieldokument exportiert.
Dokumentinhalte (Rahmen) müssen nicht zwangsweise einem Artikel zugewiesen sein. InDesign® exportiert diese artikellosen Inhalte trotzdem. Die Rahmen bekommen lediglich keine Artikel-Tags in der Tag-Struktur. In comet_pdf können Sie mit dem (nicht für InDesign definierten) Tag /OmitArticlelessItems steuern, ob diese Rahmen exportiert werden sollen oder nicht:
/OmitArticlelessItems true | false
Das Tag /OmitArticlelessItems wird von InDesign® ignoriert. Die Inhalte von Rahmen, die keinem Artikel zugewiesen sind, werden von InDesign® immer ins Zieldokument exportiert.
Einige (seltene) Situationen können vom Renderer nicht 1:1 zu InDesign® nachgebaut werden.
Bei Texten mit Inlines werden zuerst die Inlines gezeichnet, dann der Text. Inlines mit negativem Zeilen-Offset werden dadurch mglw. von folgendem Text überdeckt:
Hier ein Screenshot. "quam labo. Nam," gehört zum Text, nicht zum Inline. Es überdeckt den grünen Inline.

Anders verhält sich dagegen eine Text-Unterstreichung. Die liegt dahinter:

Genau genommen nicht okay. Comet_pdf zeichnet daher die Unterstreichung ebenfalls über den Inline:

Noch verwirrender sind Inlines Über der Zeile mit negativem "Abstand danach".
Text, der vor dem Anker liegt, wird vom Inline überdeckt. Text hinter dem Anker überdeckt dagegen den Inline:

comet_pdf zeichnet Inline Über der Zeile vollständig hinter den umgebenenden Text:

Sie haben einen Text mit einem Inline, der breiter als der Textrahmen ist. InDesign® zeichnet in diesem Fall über den rechten Rand des Textrahmens hinaus. Hier eine Abbildung:

Streng genommen ist das natürlich nicht in Ordnung. Von comet_pdf werden solche Inlines daher nicht gezeichnet.
Diese Fehler sind nur schwer zu finden. Das Programm schreibt daher eine Fehlermeldung in die Konsole:
Error while drawing inline -48 in text frame -45. Check whether the text frame is big enough!
You may use option -a u to find the text frame in the document.
Im Screenshot sehen Sie Aufzählungspunkte in InDesign® (links) und comet_pfd (rechts):

Dass die erste Zeile der Aufzählungspunkte in InDesign® jeweils weniger eingerückt ist, liegt hier daran, dass der verwendete Absatzstil bei 8,5 einen Tab definiert, aber den linken Einzug mit 18 definiert. Durch den Tabulator springt die Einrückung also vor den eigentlichen Wert. Das kann von comet_pdf nicht umgesetzt werden.
Merkwürdige Effekte können Umrahmungen gekrümmter Formen erzeugen. Hier ein Beispiel bei dem offenbar einiges schief gegangen ist:

comet_pdf stellt diese Form so dar (kann aber dafür längst nicht so viele Dinge wie InDesign®, siehe hier):

[ab v4.2 R31360] Im Bild sehen Sie einen Screenshot aus InDesign® mit einer Linie mit Pfeilen an Anfang und Ende. Dabei fallen zwei Dinge auf:

Wir vermuten, dass der Zielpunkt eines Pfeiles in der Regel wichtiger ist als seine "Schrägheit". In comet_pdf verdrehen wir die Linien daher genauso wie InDesing® das macht. Bei den Spitzen selbst haben wir uns aber für eine korrekte Darstellung entschieden. Hier ein Screenshot von comet_pdf.

In einigen PDF-Viewern können in kleinen Skalierungen merkwürdige Darstellungen inbesondere bei den Linien um Tabellenzellen entstehen. Hier ein Screenshot eines Tabellenteiles aus Adobe® Acrobat® X (10.1.9, Mac):

Screenshot einer comet_pdf-Datei
Wie Sie sehen, werden die horizontalen Linien am rechten Rand der roten Tabelle offenbar zu weit gezeichnet. In größeren Skalierungen verschwindet dieser Fehler. Es handelt sich hier um ein reines Darstellungsproblem! Zum Vergleich hier ein weiterer Screenshot aus dem gleichen Programm mit der gleichen Skalierung. Die PDF-Datei wurde diesmal mit Hilfe des PDF-Exportes von InDesign® CS6 erzeugt:

Screenshot eines InDesign®-PDF-Exportes
Comet_pdf benutzt die gleichen Datenverbindungen wie die Comet-Plugins. Zur Definition der Datenverbindung verwenden Sie exakt die gleiche Datei connections.xml, die Sie auch für Adobe InDesign® Server verwenden. Die Datenverbindung wird mit nach dem Start von comet_pdf automatisch aus den Angaben in dieser Datei hergestellt. Sie geben beim Start von comet_pdf mit Hilfe der Option -l (--login) lediglich den Verbindungsnamen aus connections.xml an.
Die Datei connections.xml muss sich, wenn nichts anderes angegeben ist, neben dem Programm comet_pdf befinden. Mit der Option -c (--connection) können Sie aber auch auf eine beliebige andere Datei im angegebenen XML-Format verweisen.
Hier ein Beispiel für einen Eintrag aus connections.xml
<connection> <id>1</id> <name>demo</name> <type>odbc_utf8</type> <server>demo</server> <user>demo</user> <password></password> <PASSWORD>GwK3Ww4Oq+p1LKI=</PASSWORD> <db>comet_config</db> <lang></lang> <client></client> <passcredentials></passcredentials> </connection>
Die Angaben für einen Eintrag aus connections.xml entsprechen den Angaben der Datei xloginhistory.xml Ihres Comet-Plugin-Ordners. Enthält diese Datei keine Angaben zur gewünschten Verbindung, können Sie die Verbindung mit dem - Button des Logins-Dialoges sichern. Lediglich das Passwort müssen Sie noch eintragen.
Auf Grund eines Fehlers bei der Einführung der connections.xml sind in der XML die Angaben für lang und client leider vertauscht. Wenn Sie die Datei manuell bearbeiten, achten Sie also bitte darauf, dass im Element <lang> der Mandant/Client eingetragen wird und im Element <client> die verwendete Sprache.
Passwörter können im Klartext (Element password) oder verschlüsselt (Element PASSWORD) angegeben werden. Wenn Sie die verschlüsselte Version verwenden, lassen Sie die Klartext-Version einfach leer (Das Element <password> darf aber nicht entfernt werden. Wie Sie die Verschlüsslung eines Passwort ermitteln können, erfahren Sie hier.
Alternativ zu einem festen Eintrag aus connections.xml können Sie die Login-Daten auch als Einzelparameter mitgeben. Das ist insbesondere in Umgebungen mit vielen unterschiedlichen Benutzern hilfreich. Folgende Programm-Optionen unterstützen den Login:| Option | connections.xml Element | Beschreibung |
| --l_type | type | Typ der Datenverbindung. Folgende Angaben sind erlaubt:
|
| --l_service | server | XML-Offline : Pfad des XML Datenordners ODBC : Servicename (DNS) SOAP : URL |
| --l_user |
user |
Benutzername (nicht benötigt bei type == xmlfolder) |
| --l_pwd |
password |
Passwort (nicht benötigt bei type == xmlfolder) |
| --l_PWD | PASSWORD | Verschlüsseltes Passwort, siehe hier |
| --l_db | db | Datenbank (nur ODBC) |
| --l_client | client | Mandant |
| --l_lang | lang | Sprache (nur SOAP) |
Verwenden Sie einen Eintrag aus connections.xml und Einzelangaben zur Datenverbindung überdecken diese Angaben die Angaben der connections.xml.
Passwörter können verschlüsselt angegeben werden. Um die Verschlüsselung eines Passwort zu ermitteln, rufen Sie das Programm comet_pdf einmal mit der Option
comet_pdf --crypto myPassword
auf. Das verschlüsselte Passwort wird in die Programmausgabe (und, wenn aktiviert, ins Logfile) geschrieben:
Password : 'myPassword'
Crypto : 'GwK3Ww4Oq+p1LKI='
Geben Sie hier einen Ordner an, in den comet_pdf temporäre Dateien schreiben darf. Jeder Programmstart erzeugt dabei einen eigenen Unterordner im angegebenen Ordner. Als Ordnername wird dabei jeweils die PID des Prozesses verwendet. Bei Programmende wird dieser Ordner wieder gelöscht.
(ab 4.1.7 R27027) Ein dem Pfad vorangestelltes Ausrufezeichen ('!') erlaubt die Angabe eines "festen" Ordners - sowohl absolut als auch relativ. In diesem Falle wird kein Unterordner mit der jeweiligen Prozess-ID erzeugt, das setzt allerdings voraus, dass in der Ansteuerung sichergestellt wird, dass nicht mehrere Renderer Prozesse gleichzeitig auf denselben Ordner zugreifen.
Wurde keine Angabe gemacht, wird im Ordner von comet_pdf automatisch der Unterordner XCache angelegt.
Der Ordner XCache und seine Unterordner dürfen nur gelöscht werden, wenn der zugehörige comet_pdf Prozess beendet ist.
(ab 4.1.7 R27027) Zwischenspeichern der von einem PublishingServer heruntergeladenen Konfigurationsdateien. Dies erfordert PublishingServer >= Version 4.1.8
Die Dateien werden in einem Unterordner des XCache-Ordners abgelegt. Sofern der beim nächsten Verwendung dieser Verbindung keine zwischenzeitlichen Änderungen des Servers vorliegen, werden diese aus dem lokalen Verziechnis gelesen, statt erneut vom Server anzufordern.
Hierfür muss
Beides erreichen Sie durch Angabe des --cache Wert mit vorangestelltem Ausrufezeichen ('!'), also z.B. --cache !tmp/pdf_instance1. Details siehe unter Cache
Welcher XML-Parser soll verwendet werden, wenn XML gelesen werden soll? (Hier finden Sie Informationen über die verwendeten XML-Parser.)
Folgende Möglichkeiten sind verfügbar :
Default ist der XMLParser fast. Unter Linux ist ausschließlich der XMLParser fast verfügbar. Andere Parser-Einstellungen werden unter Linux ignoriert.
Geben Sie hier einen vollständigen Pfad auf die Datei an, in der aufgebaut werden soll. Die Datei muss im Format W2ML vorliegen und sollte insbesondere die Definitionen der verwendeten Farben, Zeichen- und Absatzstile und Ebenen enthalten. Wird keine Datei angegeben, wird in einer neuen, leeren Datei aufgebaut.
Viele Platzhalter-Skripte verwenden zum Erstellen sprachabhängiger Ausgaben den Namen der aktuellen Zielebene. Wenn Sie ohne Eingabedatei starten, wird es diese Ebene voraussichtlich nicht geben (sondern nur die Standardebene 'Layer 1'). In diesem Fall können Sie gewünschte Sprachkennnung auch mit Hilfe der Option -y (--layer) festlegen.
Um ein InDesign®-Dokument als w2ml zu speichern, verwenden Sie den InDesign®-Menübefehl Datei -> Exportieren.... Im erscheinenden Export-Dialog wählen Sie dann das Format Comet Austauschformat (w2ml)
Bildverweise in W2ML-Dateien werden immer mit einem vollständigen Pfad beschrieben. Aus verschiedenen Gründen muß die Bilddatei aber nicht an der angegebenen Stelle liegen. InDesign® warnt Sie vor nicht aufgelösten Bildpfaden und verwendet dann (wenn möglich) ein eingebettetes Preview. Dieses Verhalten wird von comet_pdf nicht unterstützt,! Comet_pdf versucht aber, das Bild an anderer Stelle zu finden. Dabei wird zuerst folgendes versucht:
Hat die W2ML-Datei einen definierten Pfad der InDesign®-Originaldatei (psc:elementlist:documentPath) und beginnt der Bildpfad mit genau diesem Pfad, dann wird dieser Pfadteil ersetzt durch den Ordner, in dem sich die W2ML befindet. In diesem Ordner wird dann nach dem Bild gesucht*siehe am Ende das Absatzes. Dieses Vorgehen entspricht dem "Verpacken" von InDesign®-Dateien.
Beispiel
Der Ordner 111 enthält die Datei tst.indd und den Unterordner Bilder mit dem Bild 111.png:

In tst.indd wird dieses Bild verwendet. Wird aus tst.indd jetzt eine W2ML erzeugt und im selben Ordner abgelegt, dann steht in dieser Datei:
- Dokumentpfad "Pfad_zu_111/111"
- Bildpfad "Pfad_zu_111/111/Bilder/111.png".
Jetzt wird der Ordner 111 verschoben oder umbenannt. Kein Problem für InDesign®. Aber das Bild "Pfad_zu_111/111/Bilder/111.png" gibt es ja gar nicht mehr. Jedenfalls nicht am angegebenen Pfad.
Deshalb wird der Pfadteil vor 111.png ersetzt durch den aktuellen Pfad von tst.w2ml. Und dieses Bild gibt es.
Wird das Bild auf diese Weise nicht gefunden, können weitere Pfade durchsucht werden*. Diese Pfade geben Sie mit der Option -f an. Sie haben dabei drei Möglichkeiten:
<?xml version="1.0" encoding="utf-8"?> <folders> <folder>$DESKTOP/111</folder> <folder>$DESKTOP/aaa*</folder> </folders>Auch hier gilt : Kein / am Ende. Mit * am Ende wird rekursiv gesucht. Beim ersten gefundenen Bild wird die Suche abgebrochen.
Alle Angaben aus -f Optionen werden addiert und die Ordner werden genau in der Reihenfolge durchsucht, in der sie definiert wurden.
Achtung : Rekursive Pfade (* am Ende) sollten aus mehreren Gründen sparsam eingesetzt werden und so lang wie möglich sein:
* Für EPS-Bilder gilt dabei: Es wird nicht nach der EPS-Datei selbst gesucht sondern der Reihenfolge nach nach allen definierten Ausweichformaten. Zeigt der Bildpfad bspw. auf die Datei aaa.eps, wird in allen Ordnern, in denen nach Bildern gesucht werden kann, nicht nach aaa.eps gesucht, sondern der Reihe nach nach allen definierten Ausweichformaten, also etwa nach aaa.pdf, aaa.png, aaa.tif usw.. Das erste gefundene Bild wird verwendet.
Fehlende und (serverseitig) geänderte Bilder von URL-Links können beim Öffnen von Dokumenten automatisch neu geladen werden. Wie in InDesign® werden die geladenen Bilder im Ordner dateiname_links neben dem Dokument abgelegt.. Aktivieren Sie die Bildaktualisierung mit der Option
--urllink_update verhalten
Als Verhalten kann einer der folgenden Werte angegeben werden:
Bitte beachten Sie, dass (wie in InDesign® auch) URL-Links von Templates nicht automatisch aktualisiert werden.
Den Pfad und Namen der gewünschten Ausgabedatei geben Sie mit der Option -o (--output) an. Die Endung pdf wird nicht automatisch angefügt.
Existiert im Zielordner eine Datei gleichen Namens wird sie überschrieben!
Fehlt die Option wird eine Ausgabedatei wie folgt erzeugt:
Mitunter kann es hilfreich sein, die UIDs, Ebenen und Textketten des erzeugten PDFs zu sehen. Mit der Option -a (--adorns) können Sie verschiedene Dokumenteigenschaften sichtbar machen. Geben Sie dazu als Wert für die Option einen String bestehend aus beliebigen Buchstaben der ersten Spalte der folgenden Tabelle an. Ein gültiger String wäre also tofu.
| Letter | HTML | Beschreibung | |
| t | ■ | ■ |
Textverkettungen zeigen Die aktuelle Version zeigt Textverkettungen zur nächsten Seite falsch an. |
| o | ■ |
Oversets zeigen Rahmen mit Textübersatz werden wie in InDesign mit einem kleinen roten Plus unten rechts markiert. Tabellenzellen werden mit dem auch in InDesign® verwendeten nicht ganz runden roten Punkt markiert. Zu Textübersätzen in Tabellenzellen siehe hier. |
|
| f, F | ■ | ■ |
Rahmenkanten und Textabstand (insets) zum Rahmen Für die Rahmenkanten werden die gleichen Farben wie die der InDesign®-Ebenen verwendet. Mit f werden die Rahmenkanten von Gruppenrahmen unterdrückt. Mit der Angabe von F werden auch die Rahmenkanten von Gruppen gezeichnet. In HTML werden keine Inset-Rahmen gezeigt. |
| u, U | ■ | ■ |
Rahmen-UIDs Die UIDs werden wie in InDesign® in einem abgerundeten kleinen Feld links unten am Rahmen gezeigt. UIDs des PDFRenderers sind immer kleiner 0. Mit u werden die UIDs von Gruppenrahmen unterdrückt. Mit der Angabe von U werden auch die UIDs von Gruppen gezeichnet. |
| e | ■ | ■ |
Seitenelemente, Cometgruppen [nur PDF-Ausgabe] Im Seitenhintergrund werden die verwendeten Seitenelemente des Aufbaus gezeigt. Damit man die Positionierung richtig überprüfen kann, werden hier aber im Unterschied zu InDesign® die Ecken besonders hervorgehoben. [nur HTML] In HTML wird die Option verwendet, um die Cometgruppen hervorzuheben. Seitenelemente sind in der HTML-Ausgabe obsolet und werden nicht angezeigt. |
| p | ■ |
Textplatzhalter anzeigen In der aktuellen Version werden nur Textplatzhalter angezeigt. Textplatzhalter werden ohne die InDesign® verwendeten eckigen Klammern [] angezeigt. Platzhalter, der Status OKAY ist, werden mit der für den Platzhalter festgelegten Farbe markiert. Platzhalter mit davon abweichendem Status werden mit fest definerten (kräftigen) Farben und in weißer Schrift dargestellt:
ACHTUNG: In InDesign® wird für die Textplatzhalter ein eigenes Textattribut verwendet. Das ist im PDFRenderer nicht möglich. Hier wird für die Textplatzhalter die Textdurchstreichung verwendet. Durchgestrichene Texte können daher die Platzhalter-Darstellung stören. Oder umgekehrt. Das hängt davon ab, in welcher Reihenfolge die Eigenschaften im TaggedText definiert sind. |
|
| c | ■ | ■ |
Zeige alle Tabellenlinien in der Ebenenfarbe |
| i | ■ |
Unsichtbare Zeichen im Text zeigen |
|
| h | ■ |
(wie http) : Status von URL-Links anzeigen. Der URLLink-Status wird als farbiges Band oben am Rahmen angezeigt. Das Band enthält als Beschriftung die vollständigen URL, mit der der Rahmen verlinkt ist. Die Farbe des Bandes zeigt den Status an:
|
Mit dem Wert i können unsichtbare Zeichen im Text dargestellt werden. Die folgenden Zeichen werden zur Darstellung verwendet:
| InDesign/Unicode-Name | Unicode | Ersetzung |
| Absatztrenner | U000D | ¶ |
| Softreturn | U000A | ¬ |
| Einzug bis hierhin | U0007 | † |
| Leerzeichen (Blank) | U0020 | . |
| Geviert, Em Leerzeichen | U2002 | _ |
| Halbgeviert, En Leerzeichen | U2003 | - |
| Geschütztes Leerzeichen | U00A0 | ^ |
| Geschütztes Leerzeichen fester Breite | U202F | ^ |
| 1/24 Geviert, Hairspace | U200A | : |
| Sechstelgeviert, 1/6 Leerzeichen | U2006 | ‡ |
| Achtelgeviert, dünnes Leerzeichen | U2009 | < |
| Viertelgeviert, 1/4 Leerzeichen | U2005 | • |
| Drittelgeviert, 1/3 Leerzeichen | U2004 | • |
| Interpunktionszeichen | U2008 | ! |
| Ziffernleerzeichen | U2007 | # |
| Ausgleichsleerzeichen, Flush | U2001 | ~ |
| Unsichtbares Leerzeichen | U200B | | |
| EN QUAD | U2000 | ¡ |
| ZERO WIDTH NON-JOINER | U200C | + |
| ZERO WIDTH JOINER | U200D | * |
| LEFT-TO-RIGHT MARK | U200E | / |
| RIGHT-TO-LEFT MARK | U200F | \ |
Softreturns werden in der Ausgabe nicht enthalten sein, sie müssen aus technischen Gründen für die PDF-Ausgabe in Hardreturns umgewandelt werden. Die nötigen Absatzeinstellungen werden vor der Ersetzung natürlich übernommen.
Hier ein Beispiel mit -ai:

Hier ein Beispiel mit -a ufoe:

Bearbeiten der Eingabedatei. Sie können die Eingabedatei auf drei Arten direkt bearbeiten:
Die ausgeführte Aktion kann auf die folgenden globalen Variablen zugreifen:
| Variable | Datentyp | Beschreibung |
| gRecordID | int |
Produkt-ID Die Produkt-ID wird mit Hilfe der Option -q übergeben. gRecordStringID1, ~2, ~3 enthalten die durch |--| getrennten Teile der String-ID. |
| gRecordID2 | ||
| gRecordID3 | ||
| gRecordStringID | char* | |
| gRecordStringID1 | ||
| gRecordStringID2 | ||
| gRecordStringID3 | ||
| gTemplateID | int |
Template und Position Die Angaben werden mit Hilfe der Option -t übergeben. |
| gPosX | float | |
| gPosY | ||
| gParamNInt mit N ∈ {1, 4} | int |
Zusatzparameter für das Skript. Die Parameter werden mit Hilfe der Option -Q übergeben. Die bis zu vier Werte werden dabei durch Leerzeichen getrennt. Strings können in einfache Anführungszeichen gesetzt werden. Für jeden der gefundenen Werte wird jeweils die Umwandlung in int, float und char[] gemacht. -Q "1 23.4 'hallo'" int gParams1Int = 1; int gParams2Int = 23; int gParams3Int = 0; int gParams4Int = 0; float gParams1Float = 1.0; float gParams2Float = 23.4; float gParams3Float = 0.0 float gParams4Float = 0.0 char gParams1String [] = "1"; char gParams2String [] = "23.4"; char gParams3String [] = "hallo"; char gParams4String [] = ""; |
| gParamNFloat mit N ∈ {1, 4} | float | |
| gParamNString mit N ∈ {1, 4} | char [] | |
| gArgument | char * | Zusatzparameter für das Skript. Dieser Parameter wird mit Hilfe der Option --scriptin und Angabe eines Pfades übergeben. Der Wert wird aus der angegebenen Datei ausgelesen. |
| gOutput | char * | Ausgabeparameter für das Skript. Dieser Parameter wird mit Hilfe der Option --scriptout und Angabe eines Pfades übergeben. Nach Abschluss des Skripts wird der Inhalt der Variablen gOutput in die angegebene Datei geschrieben. |
Die häufigste Aktion wird das Platzieren eines einzelnen Produktes sein. Für diese Aktion gibt es deshalb die Standardangabe -e place. Die Aktion platziert ein gegebenes Template an einer gegebenen XY-Position auf der ersten Seite des Ausgabe-Dokumentes und lädt dieses Template mit einem Produkt.
Für die Standard-Aktion place müssen die Optionen -q und -t zur Festlegung von Produkt-ID und Template definiert sein.
Hier ein Beispiel zur Verwendung der Option -e:
comet_pdf -e place -q "12 0 0 '115607'" -t "188 36.0 36.0" ...
Comet_pdf unterstützt die Comet API Scriptschnittstelle, mit der unter anderem das White board arbeitet. Anweisungen können mit der Option -j (--comet-api) gemacht werden. Als Eingabe wird der Pfad auf eine XML-Datei mit den API-Aufrufen und deren Parametern erwartet. Eine Beschreibung des ewarteten XML-Formates, Funktionsbeschreibungen und Beispiele finden Sie hier.
In den Comet-Plugins können globale Variablen über die Palette Einstellungen geändert werden. Eine andere häufig benutzte Möglichkeit sind modale Dialoge von cScript. Beides kann vom Renderer aus naheliegenden Gründen nicht umgesetzt werden. Um trotzdem äußere Umgebungen zu ändern, können im Aufruf des Renderer globalen Variablen aktuelle Werte zugewiesen werden. Diese Werte gelten jeweils nur lokal für diesen einen Renderer. Die Werte werden nicht im Datenbestand geändert! Zusätzlich können eigene, nur in diesem Renderer-Lauf definierte Variablen festgelegt werden.
Es können beliebig viele globale Variablen festgelegt werden. Jede Definition wird mit einer eigenen -g-Option gemacht. Für -g wird folgende Syntax erwartet:
Definition = [Type] Name "=" Value
Type = "int" | "float" | ("char" "*") / str
Name = IDENTIFIER
Value = VALUE_OF_TYPE
Für Type kann der Wert "char *" oder str verwendet werden um sowohl in cScript als auch Python Zeichenketten als Datentyp festzulegen.
IDENTIFIER ist der Name der globalen Variable. Er muss also den Regeln für cScript/Python-Bezeichner genügen.
VALUE_OF_TYPE ist der Wert, den die Variable bekommen soll. Strings werden dabei in Anführungszeichen gesetzt.
Alle Definitionen werden direkt nach dem Login und VOR dem Loginskript (Panelstatement 92) ausgeführt. Sie können also bereits im Loginskript auf die globalen Variablen zugreifen.
Existiert eine globale Variable im Datenbestand, wird deren Wert überschrieben.
Existiert noch keine globale Variablen des gewünschten Namens, wird eine neue Variable des angegebenen Types angelegt.
Der neuen Variablen wird dann der gewünschte Wert zugewiesen (der auch hier bei Bedarf konvertiert wird.).
Alle Variablen-Änderungen gelten temporär nur für den ausführenden Renderer. Parallel ausgeführte Renderer dürfen unterschiedliche Werte festlegen.
Der folgende Aufruf definiert/ändert vier globale Variablen:
comet_pdf .... -g gInt=1234 -g gStr="hallo hallo" -g "char * myGStr = 'asdasd'" -g "int gPub=120045" -g "str myGStr2 = 'Hello World'"
Das folgende Beispiel zeigt, wie mit einem Dialog umgegangen werden kann.
Im Datenbestand muss dazu die globale Variable gPub definiert sein. Diese Variable wird mit
einer -g-Option auf den gewünschten Wert gesetzt. Das Skript, das dann den aktuellen
Wert für Publikationen abfragen soll, setzt einfach vorher die entsprechende Rückgabevariable
(hier pub) auf den gesetzten Wert aus -g. Das folgende askstring2 wird
in InDesign® vom Benutzer beantwortet.
Im Renderer wird es ignoriert. Die Variable pub hat also danach den gewünschten Wert:
Aufruf mit comet_pdf .... -g gPub=120045
pub = gPub; ok = askstring2 ( "", "", 0, "", "", 0, 0, "", "", &pub, "Publikation auswählen", 1, "Kontext wählen", "Ok", "Abbrechen", 0, 0, publications);
Mit welchem Produkt soll ein Template geladen werden? Die Option wird bei Verwendung der Option -e (Ausführen einer Aktion) ausgewertet. In der Aktion kann mit Hilfe der Variablen gRecordID, ... auf die Produkt-ID zugegriffen werden.
Die Produkt-ID wird im folgenden Format erwartet:
-q "12 0 0 'stringid'"
Beachten Sie bitte, dass Sie mind. die Option -e place setzen müssen, um das Produkt tatsächlich zu platzieren.
Mit welchem Template soll ein Produkt aufgebaut werden? Die Option wird bei Verwendung der Option -e (Ausführen einer Aktion) ausgewertet. In der Aktion kann mit Hilfe der Variablen gTemplateID, gPosX und gPosY auf die Angaben der Option zugegriffen werden.
Die Template-ID wird im folgenden Format erwartet. Die Angabe der Position ist optional. Fehlt sie, wird an der Position (0.0, 0.0) platziert. Die Positionsangaben müssen als float-Zahlen (also mit Dezimalpunkt) angegeben werden.
-t "188 36.0 36.0"
Beachten Sie bitte, dass Sie mind. die Option -e place setzen müssen, um das Produkt tatsächlich zu platzieren.
Mit dem InDesign® Menübefehl
Datei -> Adobe PDF-Vorgaben
können Sie Vorgaben für den PDF-Export von InDesign®-Dateien erzeugen und bearbeiten. Exakt diese Dateien können auch von comet_pdf gelesen werden. Geben Sie dazu mit der der Option -z einen vollständigen Pfad auf solch eine Datei an. Fehlt eine Pfadangabe, wird die Datei im Ordner von comet_pdf gesucht.
Alternativ können Sie den Namen des Profiles (ohne Pfad und ohne Dateieindung) in eckigen Klammern angeben. Die Vorgabe-Datei wird dann im Ordner settings/pdfprofiles neben comet_pdf gesucht.
Verwende die PDF-Vorgabe settings/pdfprofiles/pdfset1.joboptions
-z [pdfset1]
InDesign® legt die PDF-Vorgaben an folgenden Stellen ab:
Mac
Globale Profile bis CC 2014 : /Library/Application Support/Adobe/Adobe PDF/Settings
Gobale Profile ab CC 2015 : /Ordner_des_InDesigns/Resources/Adobe PDF/settings/mul bzw japan
Benutzer-Profile : ~/Library/Application Support/Adobe/Adobe PDF/Settings
Windows
Globale Profile bis CC 2014 : C:\ProgramData\Adobe\Adobe PDF\Settings
Gobale Profile ab CC 2015 : C:\Ordner_des_InDesigns\Resources\Adobe PDF\settings\mul bzw japan
Benutzer-Profile : C:\Users\your_name\AppData\Roaming\Adobe\Adobe PDF\Settings
So können Sie eine in InDesign® definierte PDF-Vorgabe verwenden. Natürlich können Sie die Datei auch an jede andere Stelle des Dateisystemes kopieren.
comet_pdf -z "$HOME/Library/Application Support/Adobe/Adobe PDF/Settings/my_pdfs.joboptions" ...
Folgende Einstellungen des InDesign®-Dialoges können von comet_pdf interpretiert werden:
| Eigenschaft | Schlüsselwort | Beschreibung |
| Allgemein > Einschließen > Interaktive Elemente |
/IncludeInteractive | Nicht einschließen: Interaktive Elemente erscheinen nicht in der Druckausgabe.
Erscheinungsbild berücksichtigen: Interaktive Elemente sehen in der Druckausgabe genauso aus wie im InDesign®-Dokument |
| Marken und Anschnitt > Anschnitt und Infobereich > Anschnitteinstellungen des Dokumentes... |
/UseDocumentBleed | Soll ein Anschnitt definiert werden und wie groß soll der sein? |
| Marken und Anschnitt > Anschnitt und Infobereich > Anschnitt > Oben, Unten, Innen, Außen |
/BleedOffset | |
| Marken und Anschnitt > Marken > Schnittmarken > Anschnittmarken > Passermarken > Farbkontrollstreifen > Seiteninformationen > Stärke > Versatz |
/AddCropMarks /AddBleedMarks /AddRegMarks /AddColorBars /AddPageInfo /MarksWeight |
Druckermarken ins Dokument einfügen? Es werden die gleichen Druckermarken wie beim PDF-Export aus InDesign® erzeugt. |
| Ausgabe > Kompatibilität > PDF/X > Name des Ausgabenmethodeprofils | /CheckCompliance /PDFXOutputIntentProfileSelector /PDFXOutputIntentProfile |
[Seit v4.3 35256] PDF-Kompatibilität, siehe hier |
| Komprimierung > Komprimierung > Farbbilder > Pixel pro Zoll > bei Bildern mit mehr als ... Pixel pro Zoll | /ColorImageResolution /ColorImageDownsampleThreshold |
[Seit v4.3 34653] Neuberechnung der Bilder in der PDF-Ausgabe Die Einstellung für Farbbilder wird auch für Graustufenbilder und einfarbige Bilder verwendet.
Achtung: Für die Aktivierung der Neuberechnung muß der Wert der Programmoption --pdfflags zusätzlich das Flag 1 enthalten! Z.B. also Achtung II: Für die Verwendwung dieser Option ist die Installation von Zusatz-Software nötig! Weitere Informationen finden Sie hier. /ColorImageResolution gibt (wie erwartet) die gewünschte (geringere) Ziel-Auflösung der Bilder im PDF an. Mit /ColorImageDownsampleThreshold wird festgelegt, ab welcher Auflösung Bilder neu berechnet werden sollen. Achtung: Die Angabe ist nicht der Absolutwert sondern der Faktor mit dem die Ziel-Auflösung multipliziert wird : Bei einer Zielauflösung von 144 dpi ab 200 dpi ist das z.B. 1.38889 (200 / 144 = 1,3889). |
| Barrierefreiheit > Allgemein > Optionen > PDF mit Tags erstellen | /GenerateStructure /OmitItemsOfUnusedArticles /OmitArticlelessItems |
[Ab v5.0 R35270] Für die Untertstützung der Barrierefreiheit sind priint:comet Plugins v5.0 R32270 und comet_pdf v5.0 R32270 mit PDFlib 10 erforderlich! Weitere Informationen zur Barrierefreiheit finden Sie hier. Beachten Sie bitte außerdem, dass die Tags /OmitItemsOfUnusedArticles und /OmitArticlelessItems nur in comet_pdf eine Bedeutung haben. Von InDesign® werden diese Angaben ignoriert. |
|
Seiten oder Druckbögen? > Allgemein > Exportieren als Seiten oder Druckbögen |
/AsReaderSpreads
[Ab v4.3 R36680] Soll das erzeugte PFD die Einzelseiten oder die Druckbögen (Spreads) zeigen? Die Option 'überstimmt' die Option --spreadwise : Wenn ein PDF-Preset definiert ist und /AsReaderSpreads true ist, dann wird spreadweise exportiert, egal ob --spreadwise gesetzt ist oder nicht. ACHTUNG: Anders als bei der Neuberechnung der Bilder (/ColorImageResolution und /ColorImageDownsampleThreshold ) muß das nicht extra mit einem --pdfflags aktiviert werden. Ob das PDF seiten- oder spreadweise ist sieht man ja schließlich (anders als mglw. bei den Bildern) sofort und kann es leicht anpassen. | |
|
Seitenanorndung > Allgemein > Anzeige : Layout |
/PageLayout
[Ab v4.3 R36690] Folgende Werte können in InDesign® eingestellt werden und werden von comet_pdf unterstützt:
ACHTUNG: Anders als bei der Neuberechnung der Bilder (/ColorImageResolution und /ColorImageDownsampleThreshold ) muß das Layout nicht extra mit einem --pdfflags aktiviert werden. |
|
|
Seitenanordnung > Erweitert > Barrierefreiheitsoptionen : Titel anzeigen |
/DisplayDocTitle
[Ab v5.0 R36750] Die Angabe lägt fest, ob der Fenstertitel im View (z.B. Acrobat®) den Dateinamen oder den Dokumenttitel zeigen soll. Für die Option muss ein PDF/X-Standard ausgewählt sein! Wenn Sie den Dokumenttitel verwenden, kann Acrobat Ihnen die Datei nicht mehr mit Rechtsklick in den Fenstertitel zeigen, dafür entspricht die Einstellung in diesem Punkt den Richtlinien zur Barrierefreiheit:
ACHTUNG: Anders als bei der Neuberechnung der Bilder (/ColorImageResolution und /ColorImageDownsampleThreshold ) muß die Einstellung nicht extra mit einem --pdfflags aktiviert werden. |
|
Der Seitenanschnitt kann mit Hilfe einer PDF-Vorgabe (joboptions-Datei) festgelegt werden. Wählen Sie für den Anschnitt den Reiter Marken und Anschnitt des InDesig®n-Dialoges für PDF-Vorgaben. In comet_pdf kann mit der Option -z auf diese Vorgabedateien verwiesen werden. Weitere Informationen zur Verwendung von PDF-Vorgaben finden Sie hier..
Druckermarken können mit Hilfe einer PDF-Vorgabe (joboptions-Datei) festgelegt werden. Wählen Sie für den Anschnitt den Reiter Marken und Anschnitt des InDesign®-Dialoges für PDF-Vorgaben. In comet_pdf kann mit der Option -z auf diese Vorgabedateien verwiesen werden. Weitere Informationen zur Verwendung von PDF-Vorgaben finden Sie hier..

[Since v4.3 R35256] Die PDF-Kompatibilität wird im Parameter /CheckCompliance des PDF-Presets eingestellt. Folgende Angaben werden unterstützt. Die Angaben sind case insensitive:
| /CheckCompliance | Konform zu |
| [PDFX4...] |
PDF/X-4 |
| [PDFX5...] |
PDF/X-5n |
| [PDFA1A...] |
PDF/A-1a:2005 |
| [PDFA1B...] |
PDF/A-1b:2005 |
| [PDFA2A...] |
PDF/A-2a |
| [PDFA2B...] |
PDF/A-2b |
| [PDFA3A...] |
PDF/A-3a |
| [PDFA3B...] |
PDF/A-23b |
Hier ein Beispiel:
/CheckCompliance [
/PDFX4:2010
]
[Ab v4.3 R35256] Für PDFX/4 und höher wird ein CMYK ICC-Farbprofil als sogenannter Output Intent erwartet. Die Angabe des Output Intent ist zwingend und muß ein CMYK-Farbprofil sein. Bitte beachten Sie:
Die Angabe des Farbprofiles erfolgt über das Attribut /PDFXOutputIntentProfileSelector. Informationen zur Definition verwendeter Farbprofile finden Sie hier. Folgende Angaben sind möglich:
| /PDFXOutputIntentProfileSelector | Wert |
| /UseName |
Der Name des ICC-Profiles wird dann in dem weitereren Attribut /PDFXOutputIntentProfile erwartet. Die Angaben müssen in Klammern (...) gesetzt werden und Klammern im Namen müssen mit \050 bzw. \051 kodiert werden. Hier ein Beispiel: /PDFXOutputIntentProfile (My ICC \050a\051) |
| /DocumentCMYK |
Verwende das CMYK-Farbprofil des Dokumentes. |
| /WorkingCMYK |
Verwende die Angabe des comet_pdf Programmparameters --working_icc. |
Fehlt die Angabe /UseName, wird das Farbprofil des Dokumentes verwendet. Fehlt auch das Farbprofil des Dokumentes, wird die Angabe aus --working_icc verwendet. Ist auch diese Angabe leer, wird ein einfaches PDF ohne PDFX/4-Kompatibilität erzeugt.
Verwendete RGB-Farben im Dokument werden mit Hilfe des RGB-Farbprofiles des Dokumentes (settings.rgb_colorprofile) automatisch in CMYK umgerechnet.
Mit der Option
--presets out_path
können alle verfügbaren Standard-PDF-Presets in eine Ausgabedatei geschrieben werden. Die Datei enthält die Namen der PDF-Presets, die im Standardordner settings/pdfprofiles neben comet_pdf enthalten sind. Die Einträge sind zeilenweise getrennt und werden ohne die Endung .joboptions und ohne [Klammern] ausgegegen. Nach der Ausgabe wird das Programm beendet.
Ist die Option gesetzt, werden die Seiten der Ausgabedatei auf ihren tatsächlichen Inhalt beschnitten. Leere Seiten werden nicht beschnitten.
Folgende Angaben sind möglich:
| --crop Argument | Beschreibung |
| "" |
Kein Beschnitt |
| Zahl oder "Zahl" |
Beschnitt mit einem Abstand von "Zahl" Punkten um den Seiteninhalt herum. Negative Angaben verkleinern die Ausgabe. Mit der Angabe -C 0 beschneiden Sie die Seiten also exakt auf ihren Inhalt. -C 12.4 beschneidet die Seiten auf ihren Inhalt und lässt einen einheitlichen Rand von 12.4 Punkten. |
| "Zahl Zahl Zahl Zahl" |
Beschnitt mit unterschiedlichen Abständen an jeder Seite. Die Zahlen geben die Randbreiten "links oben rechts unten" an. -C "0 0 0 100" Mit dieser Angabe lassen Sie unter dem Seiteninhalt 100 Punkte Weißraum. |
Durch den Beschnitt der Seiten entstehen in der Regel unterschiedlich große Seiten im PDF.
Die Option erwartet keine weiteren Angaben. Ist sie gesetzt, wird die erzeugte PDF-Datei am Ende automatisch geöffnet.
Die Option erwartet keine weiteren Angaben. Ist sie gesetzt, wird die erzeugte PDF-Datei am Ende NICHT automatisch geöffnet. Der Parameter ist sinnvoll bei der Verwendung von Shortcuts, die Autolaunch aktiviert haben: Mit -N kann das Öffnen der erzeugten PDF-Datei trotzdem unterdrückt werden.
Die Option erwartet keine weiteren Angaben. Ist sie gesetzt, werden Comet-Notizen der Eingabedatei als PDF-Notizen im PDF angelegt. Sonst werden die Comet-Notizen ignoriert.
Um Comet-Notizen zeigen zu können, müssen die w2ml-Dateien mind. mit v3.4 R9200 der Comet-Plugins erzeugt worden sein.
Im Normallfall generiert der Renderer einzelne Seiten. Mit der Option --spreadwise erreichen Sie, dass Seiten eines Spreads zu einer (entsprechend breiteren) Seite zusammengefasst werden. The result corresponds to the General:Spreads setting of the InDesign® PDF export.
Bitte beachten Sie, dass die auf diese Weise erstellten Seiten nur wie Doppelseiten aussehen. In Wirklichkeit sind diese Seiten jedoch Einzelseiten im PDF.
Um Seiten im PDF als Doppelseiten anzuordnen, verwenden Sie die Option /PageLayout der PDF-Presets.
Mit dieser Option kann zusätzlich zur PDF-Ausgabe des erzeugten Dokumentes auch eine w2ml-Version geschrieben werden. Diese Option ist immer dann sinnvoll, wenn Dokumente in mehreren Arbeitsschritten (z.B. im Whiteboard) bearbeitet werden. Die w2ml wird direkt "neben" das erzeugte PDF gelegt und bekommt die Endung w2ml.
[seit v4.1.6 R25001] Sichern der fertig verarbeiteten W2ML-Eingabedatei als Kopie am angegebenen (vollständigen) Pfad. Relative Pfade werden relativ zum Ordner des Programmes aufgelöst. $DESKTOP et. al sind erlaubt.
Achten Sie darauf, dass im Mac-Terminal das $-Zeichen mit \ maskiert werden muß!
Nach dem Erzeugen des PDFs können die priint-Metadaten des Dokumentes erzeugt werden. Die Metadaten werden "neben" das erzeugte PDF im Ordner name.pdf.metadata abgelegt. Existiert dieser Ordner, wird er vorher gelöscht. Hier der Screenshot eines vollständigen Metadata-Ordners:

Folgende Optionen sind möglich:
| Argument | Beschreibung |
| 0 [default] |
Keine Metadaten |
| 1 |
Metadaten erzeugen |
| 2 |
Erzeuge Previews der Cometgruppen |
| 4 |
Verpacken des Ordners. Der Ordner selbst wird danach gelöscht. |
| 8 |
Verpacke "neben" der Eingabe-W2ML (und nicht neben dem erzeugten PDF). Der erzeugtet Ordner heißt dann name.w2ml.metadata (und nicht name.pdf.metadata). |
| 16 |
Seit v4.1 R23000 Anlegen von JPG-Seitenpreviews neben dem Ziel-PDF. |
| 32 |
Seit v4.1.7 R26906 Anlegen von JPEG Previews unabhängig von anderen Einstellungen unterdrücken |
Die Werte können addiert werden. Mit der Angabe 5 erzeugen Sie die Datei name.pdf.metadata.zip. Das Zip enthält keine Previews der Cometgruppen. Soll das ZIP auch die Previews der Cometgruppen enthalten, verwenden Sie als Optionswert die 7.
Metadata-Previews sind Raster-Bilder. Um diese Bilder aus den PDFs zu erzeugen, ist spezielle Software nötig. Die Berechnung von Rasterbildern aus PDFs wird deshalb über das von Ihnen anpassbare cScript imgconv/pdf2image.cpp ausgeführt. Sie können:
Eine zweite Anwednung des Skriptes sind die automatischen Konvertierungen von Vektorbildern in Rasterbilder bzw. PDF. In diesen Fällen sind die Variablen gFormat und gResolution leer und Sie können die Eingabedateien in beliebige Formate mit beliebiger Auflösung konvertieren:
Die folgenden globalen Variablen sind im Skript definiert:
| Name | Typ | Beschreibung |
| gResult | int* |
Setzen Sie *gResult auf einen dieser Werte:
Bei Werten ungleich 0 wird im Anschluss immer die automatische Konvertierung ausgeführt. |
| gInfile | char[] |
Vollständiger Pfad zur PDF-Datei. Die Variable darf nicht verändert werden! |
| gOutfile | char[] |
Vollständiger Pfad der Bilddatei, die erstellt werden soll. Die Variable darf nicht verändert werden! Achtung: Der Pfad enthält in der Regel keine Dateiendung aus der Sie das Bildformat ablesen könnten. |
| gFormat | char[] | Bildformat
Leer ("") bei der Konvertierung von Vektorbildern für das PDF selbst |
| gResolution | float | Bildauflösung in dpi
0.0 bei der Konvertierung von Vektorbildern für das PDF selbst |
| gAddAlpha | int | 0 : nein 1: ja |
| gClipLeft | float | Bildbeschneidung in Punkten
0.0 bei der Konvertierung von Vektorbildern für das PDF selbst |
| gClipTop | ||
| gClipRight | ||
| gClipBottom | ||
| gPageWidth | float | Seitengröße des PDFs in Punkten |
| gPageHeight |
Das Skript enthält einige vorbereitete Konvertierugsfunktionen. Beachten Sie bitte, dass für die hier verwendete Software Lizenzgebühren anfallen können. Diese Lizenzgebühren sind nicht im Preis von comet_pdf enthalten, für die ordnungsgemäße Lizensierung der Software müssen Sie also selbst sorgen!
Das Programm gehört zur Standard-Installation des Mac OS und kann lizenzfrei verwendet werden. Für andere Betriebssysteme ist es leider nichgt verfügbar.
Das Programm ist nur für Windows verfügbar. Zur Generierung von Previews aus PDFs wird pdftoimage.exe verwendet. Ohne Lizenz erhalten die Bilder aber Wasserzeichen. Um die Wasserzeichen zu entfernen, ist eine Lizenz nötig (PDF To IMAGE ( Command Line )). So installieren Sie die erhaltene Lizenz:
Ghostscript und ImageMagick sind für alle Betriebssysteme verfügbar. Es gibt unterschiedliche Lizenzmodelle, bei denen wir Ihnen leider keine Vorschläge machen können.
| Umgebung | Software | Beschreibung |
| Mac OS | sips | Das Programm ist Teil der Systeminstallation. |
| Linux | convert | Das Programm ist Teil der Systeminstallation. |
| Windows | imgconv\pdf2image\pdfbox-app-2.0.0-RC2.jar |
Das Programm ist in Ihrem comet_pdf Installationsordner enthalten. Es ist lizensiert unter Apache License, Version 2.0. Hier finden Sie Hinweise zur Lizenz. Bitte prüfen Sie vor der Verwendung die Lizenzbestimmungen. |
Mit dieser Option ist es möglich, aus den Seiten beliebiger PDFs ein neues PDF zu komponieren. Der Aufbau der Datei erfolgt immer als letzter Programmschritt. Als Zieldatei wird die aktuelle PDF-Ausgabe des Renderer verwendet. Eingabe der Option ist der Pfad auf eine "Partitur" in XML mit folgender Syntax:
<?xml version="1.0" encoding="utf-8"?> <parts> <part path="..." pages="..."/> ... </parts>
Folgende Angaben für path und pages werden unterstützt:
| Attribut | Beschreibung |
| path |
Vollständiger Pfad auf eine existierende PDF-Datei
Ordner-Inhalte werden pro Ordner alpha-numerisch sortiert:
|
| pages |
1-basierte Seiten des Dokumentes, die ins Ziel sollen:
|
Neukompositionen von PDFs sind auch ohne w2ml-Eingabe möglich. Für den folgenden Aufruf müssen sich die Datei mmm.xml und die PDFs aaa.pdf und bbb.pdf auf dem Desktop befinden. Aus diesen Angaben wird die neue Datei ccc.pdf erzeugt:
comet_pdf -m /Users/paul/Desktop/mmm.xml -o /Users/paul/Desktop/ccc.pdf
Es werden zwei Arten des Zusammenfügens unterstützt:
Die Optionen -M bzw. --Merge sind ab v5.0 R36730 verfügbar.
Die Einzelseiten-Komposition wird angewendet, wenn mindestens eine Datei nicht vollständig ins Ziel übernommen werden soll. Ab v5.0 R36730 können Sie die Einzelseiten-Komposition darüber hinaus auch mit den Optionen -M bzw. --Merge erzwingen.
Einschränkungen für PDFlib 9.x.x: Bitte beachten Sie, dass comet_pdf Varianten, die auf PDFlib 9.x.x basieren, ausschließlich Seiteninhalte übernehmen. Verweise, Lesezeichen, Notizen, Formularfelder etc. werden von PDFlib 9.x.x nicht in das Zieldokument übernommen, siehe dazu auch das PDFlib 9 Tutorial, Kapitel 8.3.2 "Using PDFlib+PDI", Seite 208:
It is important to understand that PDI only imports the actual page contents, but not any interactive features (such as sound, movies, embedded files, hypertext links, form fields, JavaScript, bookmarks, thumbnails, and notes) which may be present in the imported PDF document.
Bei Verwendung einer auf PDFlib 10.x.x basierenden Variante von comet_pdf werden auch alle Verweise, Notizen, Formularfelder, Aktionen, Strukturelemente, Ebenen exportiert. Siehe dazu auch PDFlib 10 Tutorial, Kapitel 8.3.2 "Using PDFlib+PDI", Seite 198.
Werden alle Dokumente mit vollständiger Seitenzahl übernommen (pages gleich "1-*, "*" oder "all"), werden die Dokumente inklusive ihrer interaktiven Inhalte zusammengefügt. Für das Zusammenfügen der PDFs wird PDFBox verwendet, das sich in Ihrem Installationsordner befinden muß (z.B. imgconv/pdf2image/pdfbox-app-2.0.0-RC2.jar). Danach wird versucht, Verweise innerhalb der zusammengefügten Dateien in Verweise innerhalb der Zieldatei umzuwandeln.
Beachten Sie bitte folgende Einschränkungen:
[Ab v5.0 R36780] Jede Seite, die in das 'große' PDF eingefügt wird, kann mit beliebig vielen Zusatzelementen, den sogenannten Dekorationen, versehen werden. Ein häufiger Anwendungsfall ist das Hinzufügen passender Seitennummern.
Drei verschiedene Typen von Dekorationen stehen zur Verfügung:
Die Definition der Dekorationen erfolgt in der gleichen XML-Datei, in der auch die Zielseiten festgelegt werden (also der Datei, die Sie in der Option --Merge et al. angeben). Fügen Sie dazu in diese Datei das Element <decorations> mit den Unterelementen <decoaration> ein.
Beachten Sie bitte, dass die Optionen -m und --merge möglicherweise PDFBox zum Zusammenfügen der Seiten verwenden. In diesem Fall werden (erwartugsgemäß) keine Dekorationen angelegt. Mit den Optionen -M bzw. --Merge verhindern Sie die Verwendung von PDFBox.
Hier die allgemeine XML-Definition für Dekorationen:
<decorations> <decoaration id="1" type="text | template | pdf | undef"> <data args=""> <!-- Depending on type, see below --> </data> <posx>outer 80</posx> <posy>bottom 20</posy> <!-- [<action />] --> </decoaration> <!-- More decorations with unique ids --> </decorations>
| Element/Attribut | Existenz | Beschreibung |
| id | Erforderlich |
Eindeutige ID des Elementes. IDs müssen größer 0 sein. |
| type | Erforderlich |
Typ des Elementes:
|
| data | Erforderlich |
Abhängig vom Typ des Elementes, siehe unten |
| data.arg | Erforderlich |
|
| posx, pos | Erforderlich |
Angaben zur XY-Position des Elementes auf der aktuellen Seite. Weitere Informationen siehe hier. |
| [action] | Optional |
|
Text-Dekorationen fügen einen formatierten Text im Zieldokument ein. Folgende Angabe sind zur Defintion von Text-Dekorationen nötig:
Achten Sie bei der Textdefinition darauf, dass die Angaben XML-konform kodiert sind, also insbesondere < statt < und > statt >.
data.args : Legen Sie hier die maximale Breite des Textes fest. action.id : Alternativ oder zusätzlich zu den Angaben in data und data.args können Text und Textbreite auch per Skript berechnet werden. Weitere Informationen zu Actions in Text-Dekorationen finden Sie hier.Hier ein Beispiel einer Textdekoration mit dem Text Seite 14.
<decoaration id="2" type="text"> <data args=""> %!TT<cSize:24><cColor:Blue>Seite $PageNumber </data> <posx>outer 20</posx> <posy>top 20</posy> </decoaration>
Für das Rendern des Textes wird im Hintergrund ein Dokument mit einem Textrahmen geöffnet. Diese Dokument hat folgenden Standard-Einstellungen:
Im Attribut data.args von TextDekorationen können Sie eine Maximalbreite des Textes festlegen. Breitere Texte werden automatisch umgebrochen. Folgende Angaben sind möglich:
Folgende Schlüsselworte des Textes werden automatisch durch die aktuellen Werte beim Zusammensetzen des Zieldokumentes ersetzt:
| Schlüsselwort | Beschreibung |
| ⇨ Angaben zum Ziel-PDF. Das ist das 'große' PDF. | |
| $PDFPath | Vollständiger Pfad des Ziel-PDFs |
| $PDFPathFolder | Ordner-Pfad des Ziel-PDFs |
| $PDFPathName | Name des Ziel-PDFs |
| $PDFPathShortName | Name des Ziel-PDFs ohne Dateiendung |
| $PageNumber | 1-basierte aktuelle Seitennummer im Ziel-PDF |
| ⇨ Angaben zum Teil-PDF, also dem aktuellen part. | |
| $PDFPart | Vollständiger Pfad des Teil-PDFs |
| $PDFPartFolder | Ordner-Pfad des Teil-PDF |
| $PDFPrthName | Name des Teil-PDFs |
| $PDFPartShortName | Name des Teil-PDFs ohne Dateiendung |
| $PageNumberInPart | 1-basierte Seitennummer im Teil-PDF |
| ⇨ Dokumenteigenschaften des Teil-PDFs | |
| $PagePartTitle | Titel des Teil-PDFs |
| $PagePartAuthor | Autor des Teil-PDFs |
| $PagePartSubject | Thema des Teil-PDFs |
In der (optionalen) Aktion einer für Text-Textdekoration können Text und Maximalbreite berechnet werden. Ist keine Aktion definiert (action.id == 0) oder gibt die Aktion einen Wert ungleich 0 (etwa return 1;) zurück, werden die Werte von data und data.args als Fallback verwendet. Aktionen müssen in der aktuellen Datenverbindung definiert sein.
Die folgende Tabelle beschreibt die in Aktionen von Text-Dekorationen unterstützten Ausgabevariablen. Eine vollständige Liste aller in Dekorationen-Aktionen unterstützten Ein- und Ausgabevariablen finden Sie hier.
| Variable | Typ | Beschreibung |
| gResultText | String | Text der Text-Dekoration, siehe hier Beachten Sie bitte, dass die Variable ein String ist, kein char*. |
| gResultWidth | float* | Maximalbreite des Textes. Achten Sie bei der Wertzuweisung auf den * vor gResultWidth und darauf, dass Sie wirklich einen float-Wert (also eine Zahl mit Dizimalpunkt) übergeben! |
Setze Text und Maximalbreite einer Text-Dekoration
#pragma plain
#include "internal/types.h"
int main ()
{
string::set (gResultText, "%%!TT<cSize:24><cColor:Blue>Seite $PageNumber");
*gResultWidth = 120.0;
return 0;
}
Template-Dekorationen fügen einen ein definertes Template der aktuellen Datenverbindung ins Zieldokument ein. Für die Verwendung von Template-Dekorationen muß eine gültige Verbindung zu einer priint:comet-Datenquelle bestehen! Folgende Angabe sind zur Defintion von Template-Dekorationen nötig:
Hier ein Beispiel einer Dekoration mit dem Template 1199.
<decoaration id="3" type="template"> <data args=""> 1199 </data> <posx>outer 20</posx> <posy>top 20</posy> </decoaration>
Mit dem Skript einer Template-Dekoration können Sie das Template vor dem Einfügen bearbeiten.
Wenn die einzige Änderung darin besteht, dass Sie eine Seitennummer anpassen, ist keine Aktion nötig : Das Template wird automatisch mit der aktuellen Seitennummer im Ziel-PDF geöffnet. Sie müssen im Template lediglich eine Text-Variable für die aktuelle Seitennummer definieren (InDesign®-Menü Schrift -> Sonderzeichen -gt; Marken -> Aktuelle Seitennummer). Diese Variable wird beim Öffnen des Templates dann automatisch richtig ersetzt.
In allen anderen Fällen beachten Sie bitte: Auch wenn es auf den ersten Blick logisch erscheint, da Templates mehr als einen Rahmen enthalten können, ist die Variable gFrame in diesen Skripten nicht definiert!
Um Rahmen im Template zu finden und eindeutig zu identifizieren, gehen Sie wie folgt vor:
Da Templates im Skript geändert werden können, müssen die Templates bei jeder Verwendung neu geöffnet werden. Die Verwendung von Templates ist deshalb etwas zeitaufwändiger als andere Dekorationen. Wenn Sie mit einer Text-Dekoration das gleiche Ergebnis erzielen, sollten Sie diese Möglichkeit bevorzugen!
Das Template-Dokument darf vom Skript keinesfalls gesichert werden!
Eine vollständige Beschreibung aller in Dekorationsaktionen definierten Variablen und Konstanten finden Sie hier.
Das Skript zeigt die Aktion einer Template-Dekoration, die an den Rahmen mit der Kennung 'A' einen Seiteninformation anfügt.
#pragma plain
#include "internal/types.h"
int main ()
{
ItemList frames = itemlist::pageframes (1);
ItemRef fr = item::alloc (); // my frame
String label = string::alloc (); // label of fr
String name = string::alloc (); // needed for the short name of the input PDF
String txt = string::alloc (); // final text to append
if (itemlist::length (frames) == 0) return 0;
itemlist::get (frames, fr, 0);
frame::get_smart_item_data (fr, label);
printf ("Label = '%s'\n", label);
if (string::compare (label, "A") == 0)
{
string::set (txt, "%%!TT %s, pg. %d by %s",
file::shortname (name, gPDFPart),
gPageNumberInPart,
gPagePartAuthor);
frame::append (fr, txt);
}
return 0;
}
PDF-Dekorationen fügen eine Seite eines anderen Dritt-PDFs auf der aktuellen Seite des Ziel-Dokumentes ein. Folgende Angabe sind zur Defintion von PDF-Dekorationen nötig:
Auf der aktuellen Seite des Ziel-PDFs wird oben an der Außenkante die vierte Seite des PDFs $DESKTOP/profilbild.pdf eingefügt.
<decoaration id="4" type="pdf"> <data args="4"> $DESKTOP/profilbild.pdf </data> <posx>outer 20</posx> <posy>top 20</posy> </decoaration>
Alternativ zu einer festen Seitennummer in data.args können Sie hier auch einen einfachen arithmetischen Ausdruck zur Berechnung angeben. Der Ausdruck muß in gültiger cScript-Syntax definiert sein. Folgende Variablen sind in diesen Ausdrücken definiert:
| Variable | Typ | Beschreibung |
| pageNumber | int | Aktuelle Seitennummer im Ziel-PDF. |
| pageNumberInPart | int | Seitennummer des aktuellen Teil-PDFs - also die Seitennummer, die in part.pages steht, das diese Dekoration einfügt. |
Verwende auf rechten Seiten des Ziel-PDF die erste Seite des Dritt-PDFs und auf linken Seiten die zweite.
((pageNumber - 1) % 2) + 1
Mit dem Skript einer PDF-Dekoration können Sie den Pfad und die Seite des Dritt-PDFs bestimmen, die ins Ziel-Dokument eingefügt werden soll. Zusätzlich können Sie die Größe angeben, mit der die Seite platziert werden soll.
Die folgende Tabelle beschreibt die in Aktionen von PDF-Dekorationen unterstützten Ausgabevariablen. Eine vollständige Liste aller in Dekorationen-Aktionen unterstützten Ein- und Ausgabevariablen finden Sie hier.
| Variable | Typ | Beschreibung |
| gResultPDFPath | String | Vollständiger Pfad der Dritt-PDF. Der Pfad darf mit einem definierten $-Alias beginnen. |
| gResultPageNumber | int | 1-basierte Seitennummer im Dritt-PDF. |
| gResultWidth | float* |
Skaliere die Seite das Dritt-PDFs auf die angegebene Größe. Folgende Angaben sind möglich:
|
Das Skript definiert Pfad und Seite des Dritt-PDFs einer PDF-Dekoration. Die eingefügt Seite dabei proportional auf die Breite 100pt verkleinert.
#pragma plain
#include "internal/types.h"
int main ()
{
string::set (gResultPDFPath, "$DESKTOP/profilbild.pdf");
*gResultPageNumber = ((gPageNumber - 1) % 2) + 1;
*gResultWidth = 100.0; // Don't forget, it's a float*
return 0;
}
Die Positionierung der Dekorationen erfolgt über die Angaben decoration.posx und decoration.posy. Bei der Angabe fester Werte (z.B. 100 oder 100.0) wird die linke/obere Ecke der Dekoration an dieser Stelle im Ziel-PDF eingesetzt.
Alternativ können Sie Positionen auch dynamisch definieren. Die folgenden Angaben sind für decoration.posx möglich:
| Schlüsselwort | Beschreibung |
| left | Die Dekoration wird mit der linken Kante am linken Seitenrand platziert. |
| center | Die Dekoration mittig auf der Seitenmitte platziert. |
| right | Die Dekoration wird mit der rechten Kante am rechten Seitenrand platziert. |
| inner |
|
| outer |
|
Für decoration.posy sind die folgenden Angaben möglich:
| Schlüsselwort | Beschreibung |
| top | Die Dekoration wird mit der oberen Kante am oberen Seitenrand platziert. |
| center | Die Dekoration mittig auf der Seitenmitte platziert. |
| bottom | Die Dekoration wird mit der unteren Kante am unteren Seitenrand platziert. |
Alle dynamischen Platzierungen können mit einem Offset versehen werden. Die Angabe erfolgt blank-getrennt in Punkten hinter dem Positionsschlüssel, z.B. outer 20 oder outer 20.2. Die Angabe legt dabei jeweils den Abstand der entsprechenden Kante der Dekoration zum zugehörigen Seitenrand fest.
Platziere die Dekoration 20pt vom unteren Rand und 20pt von den äußeren Seitenrändern entfernt.
<posx>outer 20</posx> <posy>bottom 20</posy>
Dekorationen können (müssen aber nicht) das Element decoration.action definieren. Hier die allgemeine Syntax des Elementes decoration.action:
<<action id="1112"> <params> <param name="p1" value="my first variable" /> <param name="stParam2" value="Paul Klee" /> <!-- ... --> </params> </action>
| Element/Attribut | Beschreibung |
| id | ID der Aktion (des Skriptes) im aktuellen Datenpool |
| param.name param.value |
Name und Wert beliebig vieler Zusatzparameter.
Die Parameter werden jeweils unter dem angegebenen Namen in der Aktion definiert und sind jeweils vom Typ String. Zur Verwendung anderer Datentypen müssen die Werte im Skript mit geeigneten Skriptfunktionen umgewandelt werden. Die Parameternamen müssen eindeutig sein und der Syntax von Bezeichnern in cScript entsprechen (nur a-zA-Z0-0 und _, am Anfang darf keine Zahl stehen). Definierte cScript-Funktionsnamen etc. sind natürlich nicht erlaubt. Die Inhalte der Parameter dürfen nicht geändert werden! |
Neben den in den Parametern der Aktion definierten globalen Variablen sind in allen Dekorations-Skripten die folgenden Variablen definiert. Die Werte dieser Variablen dürfen nicht verändert werden!
| Variable | Typ | Beschreibung |
| gPDFPath | String | Vollständiger Pfad des Ziel-PDFs |
| gPageNumber | int | 1-basierte aktuelle Seitennummer im Ziel-PDF |
| gPageType | int | Typ der aktuelle Seite im Ziel-PDF
|
| gFirstPageType | int | Typ der ersten Seite des Ziel-PDFs
|
| gDoublePaged | int |
|
| gPDFPart | String | Vollständiger Pfad des Teil-PDFs, aus dem gerade Seiten in das Ziel-PDF übernommen werden. |
| gPageNumberInPart | int | 1-basierte Seitennummer des Teil-PDFs, die gerade in das Ziel-PDF übernommen wird |
| gPagePartTitle | String | Titel des Teil-PDFs, aus dem gerade Seiten in das Ziel-PDF übernommen werden. |
| gPagePartAuthor | String | Autor des Teil-PDFs, aus dem gerade Seiten in das Ziel-PDF übernommen werden. |
| gPagePartSubject | String | Beschreibung des Teil-PDFs, aus dem gerade Seiten in das Ziel-PDF übernommen werden. |
Alle Aktionen haben die gleichen Ausgabeparameter. Aber die unterschiedlichen Dekorationstypen werten die Ausgaben unterschiedlich aus. Mehr dazu siehe hier:
Setzen der priint-Dokument-ID. Die Dokument-ID wird als String angegeben und direkt nach dem Öffnen des Dokumentes im Root-XML-Element des Dokumentes im Attribut "documentId" abgelegt. Mit den Scriptfunktionen xml::get_document_attribute und xml::set_document_attribute kann auf den Wert zugegriffen werden. Der Wert wird außerdem in diversen Funktionen des Produktaufbaus in einer pubserver-Verbindung benötigt.
Ab v4.0.5 R13799 der Comet-Plugins werden die im InDesign®-Dokument verwendeten Farbprofile auch in die w2ml's des Renderers eingetragen und können von comet_pdf verarbeitet werden.
Farbprofile werden üblicherweise in sogenannten icc (oder icm) Profilen festgelegt. InDesign® verwendet zur Benennung der Profile meist die im Profil festgelegten Namen. Aber diese Namen können unter MacOS sprachabhängig sein (und werden dann auch so in InDesign® angezeigt). Bei einigen Profilen werden von InDesign® jedoch auch eigene Namen verwendet. Zudem sind einige der Profile direkt in InDesign® eingebettet und haben keine eigene ICC-Datei.
Um eine eindeutige Zuordnung zwischen Profilname und -datei zu gewährleisten, ist daher ein Zuordungsdatei nötig. Diese Datei liegt im Programmordner von comet_pdf und hat den Namen colorprofiles.xml. Fehlt die Datei, werden Profil-Zuordnungen ignoriert. Mit der Option --icc pfad kann die Datei auch an belieber anderer Stelle abgelegt werden. Erwartet wird in diesem Fall der vollständige Pfad auf eine gültige XML-Datei mit den Profil-Zuordnungen. Die Pfade dürfen mit $-Abkürzungen wie $DESKTOP beginnen.
ICC-Profile der Version 4 können verwendet werden, um Farben im richtigen Profil darzustellen. Zum Umrechnen von Farben in andere Farbräume, z.B. in den Funktionen table::get_fillcolor_cmyk und bei PDF-Exporten mit Farbkonvertierungen können Sie nicht verwendet werden.
Colorprofiles.xml muß einen NULL-Eintrag haben und den Typ des Profiles (rgb oder cmyk) angeben. Profile der
Hier ein Beispiel einer gültigen colorprofiles.xml
<?xml version="1.0" encoding="utf-8"?> <colorprofiles> <colorprofile name="" type="" version="-1" path=""></colorprofile> <colorprofile name="MyICC" type="rgb" version="3" path="ppp/MyICC.icc"></colorprofile> </colorprofiles>
Es ist ziemlich zeitaufwendig, zu jedem verfügbaren Profil die richtigen Angaben und die richtige Datei zu finden. Ist das Profil zudem direkt in InDesign® eingebettet, finden Sie gar keine Profil-Datei. Ab v4.0.5 R13799 von comet_pdf enthält die Installation daher eine vordefinierte colorprofiles.xml und den Ordner colorprofiles, in dem die zugehörigen Profile enthalten sind. Mit dem Skripbefehl document::export_color_profiles können Sie die im Dokument verwendeten Profile exportieren.
document::export_color_profiles (0, "$DESKTOP/aaabbb", "$DESKTOP/aaabbb.xml");
Farbprofile werden nicht automatisch angewendet. Um Farbprofile des Dokumentes anzuwenden, starten Sie comet_pdf mit der Option --apply_icc. Die Option benötigt keine weitere Angaben. In den folgen drei Screenshots sehen Sie die Wirkung der Option. Gezeigt werden jeweils Ausschnitte von zwei orange Rahmen. Im einen Rahmen ist die Farbe als RGB definiert, im anderen als CMYK. In InDesign® sind beide Farben gleich - die Konvertierung der Farbe wurde ja hier auch mit dem aktuellen Farbprofil gemacht.
In InDesign®
comet_pdf ohne Farbprofile
comet_pdf mit Farbprofilen
Voraussetzung für das Anwenden der Farbprofile ist:
Mit der Option
--compression [0-9]
können Sie die Komprimierung des Ausgabedokumentes beeinflussen. Mögliche Werte sind 0 (keine Kompression) bis 9 (maximale Kompression). Default ist 9. Da die Dateigröße der PDFs aber im wesentlichen von den enthaltenen Bildern abhängt und die meisten Bildformate bereits hochkomprimiert sind, hat der Kompressionsfaktor in der Regel leider keinen spürbaren Effekt. Erfolg versprechender ist hier eine Neuberechnung der Bilder.
Für die schnelle Anzeige in Web-Browsern empfiehlt sich neben möglichst kleinen PDFs auch die Option --linearize on.
Die Angabe --interactive N steuert, ob das PDF interaktive Elemente wie Buttons, Texteingaben etc enthalten kann und in welcher Tab-Reihenfolge diese Elemente aktiviert werden sollen. Default ist 0. Folgende Werte erlaubt:
| Wert | Beschreibung |
| 0 |
Interaktive Element ignorieren. |
| 1, 2, 3 |
Interaktive Elemente exportieren Tab-Reihenfolge ist die im Objekt hinterlegte Aktivierungsreihenfolge, siehe interactive::get_pdf_option (frameRef, kPDFTaborder, ...). |
| 4 |
Interaktive Elemente exportieren Tab-Reihenfolge ist Artikel-Reihenfolge aus dem Dokument, siehe interactive::get_pdf_option (frameRef, kPDFArticleorder, ...). Achtung : Diese Reihenfolge kann nicht per cScript gesetzt werden! |
Weitere Informationen zu den interaktiven Feldern finden Sie hier.
Die Optionen --pidstart und --piddone sind hilfreich bei asynchronen Aufrufen von comet_pdf. Das Programm legt die bei pidstart angegebene Datei direkt nach dem Start (und dem erfolgreichen Lesen der Programm-Optionen) an. Die unter piddone angegebene Datei wird direkt vor dem Programmende angelegt. Aus der Existenz der Dateien können dritte Anwendungen erkennen, ob ein geplanter Aufruf von comet_pdf gestartet bzw. beendet wurde.
In beide Dateien werden einige kurze Informationen geschrieben. Das Format beider Dateien ist gleich
App\t: Name Version Revision, based on ... and PDFlib ..., 64bit
Path\t: Pfad des ausführenden Programmes (oder --config_path)
User\t: Loginname des Benutzers
PID\t: Prozess-ID
Time\t: Start- bzw. Endezeit des Programmes im Format yyyymmhhhhmmss
Pages\t: Anzahl der PDF-Ausgabeseiten, -1 bei pidstart
Exit\t: Returnwert des Programmes, -1 bei pidstart
#Application arguments :
...
Hier ein Beispiel einer pidstart-Datei:
App : comet_pdf v4.1.6 R26966, based on Comet 4.1.7 and PDFlib 9.0.4, 64bit
Path : /Users/paul/Development/pdftest/comet_pdf
User : paul
PID : 8604
Time : 20200513120858
Pages : -1
Exit : -1
# Application arguments :
comet_pdf \
-s posters_place \
-l posters \
-i $DESKTOP/fifo/render/template_de.w2ml \
-e 1001 \
-q 2 0 0 '' \
-P fontnames.xml \
-L \
-v /Users/paul/Desktop/aaa.log \
--pidstart /Users/paul/Desktop/s1.txt
Wenn Sie alle oben beschriebenen Optionen richtig zusammengestellt haben, haben Sie möglicherweise einen recht langen Befehl. Damit Sie das nicht jedesmal tippen müssen, können Sie die Parameter dieses Befehles in eine XML-Datei schreiben und dann statt dessen auf dieses Setting verweisen. So gehen Sie dafür vor:
Ein so konfigurierter Shortcut kann mit
./comet_pdf -s NAME_OF_SHORTCUT
aufgefrufen werden. Weitere Programmoptionen nach dem Shortcut sind natürlich erlaubt. Wurde eine nachfolgende Programmoption bereits durch den Shortcut gesetzt, wird die neue Einstellung verwendet.
Hier ein Beipiel für einen Shorcut namens poster1, der den Aufruf
./comet_pdf -l posters -i \$DESKTOP/fifo/render/template_de.w2ml -e 1001 -q "2 0 0 ''" --compression 1
vereinfacht durch
./comet_pdf -s poster1
<shortcut> <name>poster1</name> <description>Place one poster of priint 5.5 using action 1001</description> <l>posters</l> <i>$DESKTOP/fifo/render/template_de.w2ml</i> <e>1001</e> <q>2 0 0 ''</q> <compression>1</compression> </shortcut>
Die Datei shortcuts.xml muß nicht existieren, aber wenn, dann wird sie im Ordner von comet_pdf gesucht.
Die Shorcut-Namen hello und alle Namen, die mit priint: beginnen sind reserviert!
Zu Testzwecken und im PubServer-Umfeld wollen Sie mglw. einige Einstellungen für alle comet_pdf Aufrufe ändern. Z.B kann es nützlich sein, die Logfiles an eine andere Stelle (oder überhaupt) zu schreiben oder die Bild-Kompression zu ändern. Dazu können die Standard-Shortcuts priint:args:pre und priint:args:post verwendet werden: Der :pre-Eintrag wird vor allen anderen Programmoptionen gelesen, der :post Eintrag wird ganz am Ende ausgewertet und überschreibt damit alle anderen entsprechenden Festlegungen. Mit beiden Definitionen sollten Sie vorsichtig umgehen - Sie ändern damit das Verhalten aller Aufrufe des zugehörigen comet_pdf.
Mit der folgenden Definition wird Ihr comet_pdf immer die (fast) schwächste Bildkompression verwenden. Das macht die Aufrufe bei bild-lastigen Dokumenten um den Faktor 2-3 schneller (aber die PDFs nur unwesentlich größer):
<shortcut> <name>priint:args:post</name> <description> This entry is called to fix the options of ALL your calls to comet_pdf. The definitions also override the options that are set in the current calls to comet_pdf. Think twice before inserting something here! </description> <compression>1</compression> </shortcut>
Auswahl der Shortcuts XML-Datei. Die Option erwartet die Angabe eines vollständigen Pfades inklusive des Dateinamens einer gültigen shortcuts.xml. Die Verwendung der integrierten $-Aliasnamen am Anfang des Pfades ist erlaubt
Optional kann nach dem Pfad ein mit ':' getrennter gültiger Shortcut-Name aus der definierten Datei folgen. Fehlt diese Angabe, kann der Shortcut auch mit -s myShortcut ausgewählt werden. Achten Sie in diesem Fall darauf, dass der Parameter -s nach der Defintion von -shortcuts steht.
Beide Aufrufe sind gleichwertig: Statt der Standard-Shortcuts wird die Datei scc.xml Ihres Desktops nach dem Shortcut color_frames234 durchsucht.
comet_pdf --shortcuts \$DESKTOP/scc.xml:color_frames234 comet_pdf --shortcuts \$DESKTOP/scc.xml -s color_frames234
[ab v1.0 R16600, EXPERIMENTELL] Wie die priint:comet Plugins kann auch comet_pdf im Playback-Modus betrieben werden. Verwenden Sie dazu die Programm-Option --playback mit folgenden Werten:
Den Datenordner geben Sie mit der Option --playback_path an.
Ist im Aufzeichnungsmodus (record) kein Zielordner angegeben, werden die Daten in den XCache geschrieben:
$CACHE/U12345/XDATA/verbindungs_name
12345 ist dabei die Prozess-ID des eben ausgeführten Renderers - der jüngste Ordner im XCache. Damit die aufgezeichneten Daten bei Programmende nicht gelöscht werden, muß der Renderer in diesem Fall mit der Option -VX gestartet werden.
In der Programmausgabe sehen Sie unter dem Punkt Fit Frames die Zeit, die das Programm zum Berechnen von Text-Oversets und zum Anpassen von Rahmen an ihren Inhalt benötigt hat. Insbesondere Textverkettungen über viele Seiten und Tabellen können sehr zeitaufwendig sein. Mit dem sogenannten Layzfit versuchen wir, diese Aufrufe zu minimieren. Dafür registriert das Programm Änderungen an Text bzw. Bild der Rahmen und ihrer Geometrie und führt die aufwendige Größenberechnung nur dann aus, wenn seit dem letzten Fitframe auch wirklich etwas geändert wurde. Das kann zu einer Zeitersparnis von bis zu 20% führen.
LazyFit ist standardmäßig abgeschaltet. Mit --lazyfit 1 schalten Sie das Feature ein. Mit --lazyfit 0 können Sie die Option (z.B. aus einem vorangegengenen Shortcut) wieder abschalten.
Das Feature ist noch im exprimentellen Status. Möglicherweise haben wir Situationen übersehen, in denen Sie Änderungen an Rahmen machen können, die sich auf die Rahmengröße auswirken. Bitte verwenden Sie LazyFit im Produktivbetrieb nur nach eingehender Prüfung ihres Projektes.
Soll vor der Verwendung von Web-Bildern geprüft werden, ob die lokale Datei noch aktuell ist?
Durch das Entfernen unbenutzer Stildefinitionen aus den Dokumenten kann die Geschwindigkeit von comet_pdf deutlich optimiert werden. Mit der Angabe --unused_styles gibt das Programm am Ende eine Liste aller unbenutzen Stile aus. Nach sorgfältiger Prüfung sollten Sie unebutzte Stile dann aus den Dokumenten entfernen:
In der Standard-Anwendung von comet_pdf werden die Ebenen des InDesign-Dokumentes lediglich zur Festlegung der Z-Order verwendet : Objekte weiter unten liegender Ebenen werden also vor den Objekten darüberliegender Ebenen ersellt. Zusätzlich wird die Ebenenfarbe zum Zeichnen der Adornments verwendet.
[Seit v4.2 R33238] Mit eingeschalteter Option --pdflayers 1 | on | yes werden die im InDesign-Dokument definieren Ebenen in der gleichen Reihenfolge und mit den gleichen Einsellungen auch im PDF-Dokument erzeugt. Beachten Sie aber bitte, dass "Gesperrt" in Acrobat nur heißt, dass die Sichtbarkei einer Ebene nicht geändert werden kann und dass die Ebene nicht gelöscht werden darf. Die Objekte gesperrter Ebenen dürfen aber im Gegensatz zu InDesign geändert werden.
Mit dieser Option wird der Python debugger server auf dem angegebenen Port gestartet.
Starten Sie das Programm mit der Option -v (--log) und der Angabe eines vollständigen Pfades zu einer Logdatei, um Logdaten zu schreiben. Existieren Pfad oder Datei nicht, werden sie automatisch angelegt.
Die Logdatei sollte (muss aber nicht) die Endung .log haben. Dateien mit dieser Endung werden unter Mac OS X bei Doppelklick automatisch vom Dientsprogramm Konsole geöffnet. Dieses Programm scrollt den Inhalt immer so, dass Sie das Dateiende sehen. Sie können hier also sehr gut den Progress der Arbeit sehen.
Die Logdatei ist im wesentlichen identisch zu den Logdaten der Comet-Plugins.
Im Produktivbetrieb sollten Sie das Schreiben der Logdatei abschalten. Es ist verlangsamt das Programm um etwa 10-20%.
Starten Sie das Programm mit der Option --logx und der Angabe eines vollständigen Pfades zu einer Logdatei, um Programmaufrufe in einer eigenen Datei mitzuschreiben.
Diese Option ist nützlich, um die Kommunikation einer Server-Komponente (z.B. PublishingServer) mit dem PDF Renderer zu überwachen. Neben Datum / Zeit und der vollständigen Kommandozeile werden auch die zur Verarbeitung benötigten Zeiten ausgegegen.
Die Option setzt den Pfad zur Logfile-Konfigurationsdatei, mit deren Hilfe gesteuert wird was und wie ins Logfile geschrieben wird.
Als Angabe wird der vollständiger Pfad der Logfile-Konfigurationsdatei erwartet. Heißt diese Datei log.xml, darf der Name weggelassen werden. Der Pfad darf mit einem der fest definierten $-Aliasse beginnen. Existiert die angegebene Datei nicht, wird die Programm-Option ignoriert und die Standarddatei log.xml Ihrer werkii-Präferenzen bzw. neben comet_pdf verwendet.
Die Angaben $DESKTOP und $DESKTOP/log.xml sind also gleichwertig und verweisen beide auf die Datei /Users/your_name/Desktop/log.xml.
[ab v1.0 R17778] Ist diese Option angegeben, wird automatisch der gesamte Datenverkehr zum und vom SOAP-Service mit geschrieben. Der Parameter hat nur bei aktiver SOAP-Verbindung eine Bedeutung. Die Logfiles werden immer auf den Desktop geschrieben. Bei Neuverbindung werden bestehende Logs zuvor gelöscht. Folgende Dateien werden geschrieben:
Ausgabe interner Daten in die Programmausgabe. Die Ausgaben dienen zur Fehlersuche und können in den einzelnen Releases des Programmes variieren.
Die Ausgaben zeigen den Inhalt der Texte zu verschiedenen Zeiten der internen Bearbeitung. Abweichungen in der Zuordnung der Stile (Tags) zum Text sind also normal. Beachten Sie bitte auch die von comet_pdf unterstützten Textattribute.
Achtung: Die Anweisungen können sehr viele Ausgaben erzeugen. Es ist sinnvoll, die Programmausgabe mit > in eine Datei umzulenken.
Folgende Angaben werden unterstützt:
| Flag | Kurze Beschreibung |
| i, m, c, q | Ausgabe der aktuellen Texte beim Einfügen von Text |
| r | Ausgabe der aktuellen Texte beim Ersetzen und Löschen von Text |
| e | Mit Silbentrennern versehener text direkt vor der Ausgabe ins PDF |
| b | Export von Aufzählungs- und nummerierten Listen ins PDF |
| x, y | Export von Texten ins PDF |
| w | Einfügen von Inlines |
| s | Platzhalter setzen |
| f | Platzhalter entfernen |
| o | Platzhalterprefix/postfix einfügen |
| t | Fehlende Absatzstile in Tabellenzellen eimgefügt |
| T | Schreibe die Texte, die an deepl zum Übersetzen geschickt werden. |
| * | Alles |
| X | $XCache nach Programmende nicht löschen |
Ausgabe einer speziellen Datei mit Logangaben des PDF-Exportes. Die Dateien können nur vom PDFlib-Support ausgewertet werden.
Ausgaben von Dialogen (alert, showmessage, showerror) werden in die Standardausgabe und in die Logdatei geschrieben. Im Log werden die Meldungen mit dem Hinweis Info, Warn bzw. Error versehen. In der Standardausgabe werden die Texte farbig markiert (Infos grün, Warnungen blau, Fehler rot).
Das Programm comet_pdf beendet seine Arbeit mit einem Rückgabewert. Das Ergebnis erscheint als letzte Zeile in der Programmausgabe:
Successfully finished.
Cannot open file '/Users/paul/Desktop/Unbenannt-2.w2ml'.
Programm canceled with <kCannotOpenDocument>.
EXIT CODE 4
Die folgende Tabelle beschreibt alle Rückgabewerte von comet_pdf:
| Wert | Name | Beschreibung |
| 0 | kReturnSuccess |
Erfolgreich beendet. Aber Achtung : Fehlende Schriften, Bilder und Skriptfunktionen und Textübersätze müssen nicht als Fehler betrachtet worden sein. Prüfen Sie daher die Warnungen, die das Programm gegeben hat. |
| 1 | kHyphenationsNotFound | Fehler beim Registrieren der verfügbaren Trennregeln, für weitere Informationen siehe hier. |
| 2 | kFontNamesXMLNotFound | Fehler beim Registrieren der verfügbaren Schriften, für weitere Informationen siehe hier. |
| 3 | kConnectionsXMLNotFound | Fehler beim Lesen der Verbindugnsdaten, für weitere Informationen siehe hier. |
| 4 | kCannotOpenDocument | Fehler beim Öffnen des Dokumentes aus Option -i. Prüfen Sie, ob die Datei existiert und korrekt ist. |
| 5 | kExecScriptError | Fehler beim Ausführen des mit Option -e gegeben Skriptes. Prüfen Sie, ob das Skript existiert und korrekt ist. |
| 6 | kCannotCreatePDF |
Fehler beim Erzeugen des PDFs. Das ist eine der Hauptaufgaben des Programmes und kann viele Ursachen haben. Hier eine (unvollständige) Liste der möglichen Ursachen:
|
| 7 | kCannotSaveAsW2ML | In den meisten Fällen wird dieser Fehler durch fehlende Datei-Berechtigungen verursacht. |
| 8 | kConnectionMissing | Keine Datenverbindung angegeben, für weitere Informationen siehe hier. |
| 9 | kConnectionsXMLNotValid | Die Datei mit den Verbindugnsangaben ist nicht korrekt, für weitere Informationen siehe hier. |
| 10 | kWrongConnectionType |
Falscher Verbindungstyp. Folgende Verbindungstypen sind erlaubt:
|
| 11 | kProductsXMLNotFound | Die Produktliste (items.xml) wurde nicht gefunden, für weitere Informationen siehe hier. Um einzelne Produkte zu importieren siehe hier. |
| 12 | kBuildProductsError | Beim Aufbau der Produkte sind Fehler aufgetreten, siehe dazu in den Logfiles. Um das Schreiben von Logfiles zu aktivieren, verwenden Sie die Optionen -v und/oder --logx. |
| 13 | kCannotConnectToDatapool | Die Verbindung zum Datenpool konnte nicht hergestellt werden. Prüfen Sie die Verbindungsdaten. |
| 14 | kProductsXMLNotValid | Die Produktliste (items.xml) ist nicht korrekt, für weitere Informationen siehe hier. Um einzelne Produkte zu importieren siehe hier. |
| 15 | kCannotMergePDFs | Die Komposition von PDFs ist fehlgeschlagen, für weitere Informationen siehe hier. |
| 16 | kColorspacesXMLNotFound | Fehler beim Registrieren der verfügbaren Farbraum-Definitionen, für weitere Informationen siehe hier. |
| 17 | kCannotInitServerSocket | Unbenutzt |
| 18 | kCannotBindSocket | |
| 19 | kListenerNotFound | |
| 20 | kClientRequestNotAccepted | |
| 21 | kClientSentExit | |
| 22 | kDefaultFontNotFound | Weder der Default-Font noch die lokale Alternative wurde gefunden:
Lokale Alternative : path_of_comet_pdf/Ubuntu-Regular.ttf |
| 200 | kHelpMessagePrinted | Exit code für -h or --help. |
Um den Exitcode eines Programmes zu erfragen, können Sie folgende Anweisung verwenden (Mac only):
comet_pdf ....; echo $?