All plug-ins and renderers can be started without Python. The Python installation is checked only when Python is really needed (i.e. when a script starts with #!py). If the installation is missing, Python scripts return the error 1. For the first Python script, a corresponding warning message is also shown. The following Python versions are expected:
Important note for InDesign 2024® ff. :
Unfortunately, the default installation of InDesign contains a Python 3.9 library since v19 (2024) of InDesign®.
From time to time, InDesign® uses this library to check your subscription.
In these cases, Python 3.9 obfuscates the functions of 3.12 and InDesign crashes when initializing 3.12:
1 libpython3.9.dylib 0x11be70250 _PyObject_GC_NewVar + 52
To solve the problem, please try the following:
• Reset your internet connection
• Restart your computer
• Re-install Python 3.12.x. Here you can find an installation package.
By the way, you can have any other, even newer Python version(s) installed. These versions are ignored by the priint:comet plug-ins and by comet_pdf.
Please note: In contrast to v4.x, v5.0 requires the Python version 3.12.
For the installation of the plug-ins we strongly recommend the installers provided by WERK II:
For information about the System Requirements for InDesign see here.
All plug-ins are supplied in the so-called Universal Architecture and run on both Intel and Silicon machines. At least macOS Version 12 (Monterey) is required for all priint:comet plug-ins.
All plug-ins are checked against malware by Apple. However, since you did not get the plug-ins from the App Store, it is necessary to change the security settings of your System Settings:
Because this file contains entries from our bug tracking system, the content of this file is partly in German.
The table describes the features and bug fixes of the priint:comet ID 5.0 plug-ins.
Revision | Case | Description |
v4.3 R37037 04.08.2025 |
Python Improvements |
New functions: |
<th> Tags HTML Support |
The HTML import using html::to_tagged or %!TT_html_... now also supports the <th> tag in HTML. See here for more information. |
|
<a> Tags HTML Support |
The HTML import using html::to_tagged or %!TT_html_... now also supports the <a> tag in HTML. See here for more information. please note that for creating the InDesign® hyperlinks the destination document is needed! |
|
Layout Rule at Continuation TW 3541776 |
Is it possible to react to the situation when a continuation frame is appended to the text chain of the previous subtemplates? I have tried the Layout Rules ‘OnUpdate’, but it is not called at all for continuation frames. Yes, it exists: The situation kAfterCreateContinue in the Build Support Script. The Layout Rules ‘OnUpdate’ are not executed at this point since the frame content has not been reloaded here - only the already loaded text now ‘simply’ continues to flow in this frame. In addition, we implemented a so-called Layout Rule derivative on Link Continuation. |
|
Netweight HTML Entities TW 3534500 |
I need to determine the plain text from an HTML text and have used the string::get_netweight function to do this. That works great. But unfortunately the text also contains HTML entities like ä. Could these also be replaced? We have implemented and added a corresponding parameter to the according functions: |
|
Hyperlink Dest Defns TW 3534525 |
How can I find the hyperlink destination definitions of a document? For example, if I create a new hyperlink to an URL in a document, InDesign® saves this URL in the document in a so-called HyperlinkDestinationDef. Is there any way to query these definitions via cScript? We improved the function hyperlink::find so that it also can collect given HyperlinkDestDefs. See the prefix defn: of parameter crossRefName. |
|
TW 3534766 - How to get a hyperlinks (crossrefs) key |
Is there a way to get the unique key of a hyperlink destination definition? I've implemented the new function link::crossref::key for that now. |
|
TW 3536290 - Notes about the use of DataRecording |
Is there anything to consider when making a data recording? Oh yes, of course. After logging in with Data Racording activated, an information is therefore now shown that briefly describes the data recording. |
|
TW 3542136 - Better handling of capslock when saving templates |
[Mac Only] Yesterday I had to help a customer who could not save a template because their capslock key was on. It took them a number of tries to even realize that their template was not being saved, and they were not able to determine on their own what the cause was. I have had a similar experience where It has a very long time to realize that my template was not being saved, and then much longer to realize that the capslock key was the source. In this particular case, the caps lock key was active on my laptop, but off on my external keyboard. Typing was normal, but saving was not. Can these save options be reworked in a way that does not use capslock as an option? If this is not possible, is there some way that the user can be alerted that their caps lock key is active? maybe A UI change? or an alert dialog? We're not sure if we're being taken for a ride here. But anyway, we've changed that from Caps Lock to Space Bar. |
|
TW 3492352 - Media Preview Panel Overriding Layout Rules |
I am having an issue with the media preview panel and swapping images within InDesign. We have fixed everything we found. See below for more information:
|
|
TW 3541720 - Creating inlines in hyperlinks removes the hyperlink |
I insert an inline into a document text (w2inline). This works perfectly. But if there is a hyperlink at the insertion point, this hyperlink is removed. This problem is solved now. The hyperlink is no longer removed. |
|
TW - Get comet group member of main template |
I use the function frame::get_cometgroup_member to find a frame of the Comet Group of gFrame with a certain ID: frame::get_cometgroup_member (gFrame, label, "C"); That works great. But in my case the frame is part of a continuation and I would like to have the frame ‘C’ from the main group. Is that possible? We have therefore added a new parameter to the frame::get_cometgroup_member function. This allows you to search the frames of the main group too (or only) :-) |
|
TW 3531775 - HTML entities of form × not correctly replaced |
If I try to replace the HTML entities of an HTML text, the hex entities of form &#x... are replaced by the according TaggedText letters like <0x00D7> and not by its letter. If I use the non-hex form of the same Unicode, I get the correct letter. FXD |
|
TW 3525413 - CFrame.getCometGroup not working |
The Python function CFrame.getCometGroup always generates an error message. The problem only occurs on the Mac. FXD |
|
TW 3525747 - What is the Template dropdown of the Previews panel for? |
What is the Template dropdown of the Previews panel for? The dropdown is no longer needed and we removed it now. The corresponding functionalities have long since been integrated into the Templates and Product Pool panels. |
|
TW 3525743 - Drag and Drop in Previews panel not working as expected |
I have a frame with a number of alternative images in the Previews panel. When I drag and drop such an image into another frame, the target frame is (somehow) reloaded or something. I would have thought that the dragged image would then be inserted into the frame. We have now implemented this in this way now. |
|
TW 3521579 - Previews in panel Previews re-created after every login |
Apparently the previews of the Previews panel are recalculated after each login. This can take quite a long time for URLs. (And the help text for the Reload Previews button actually states that this is only done if you click this button - and otherwise not). Yes, that's right. Previews of the Previews are no longer recalculated each time.
Please remember to delete the previews using the
|
|
TW 3519483 - Previews not reloaded if only the clipping path or alpha channel is changed |
Images are normally only reloaded if the file path of the image changes. However, there may be entries in the Previews panel that differ only in their placement information (position, clip path, alpha channel). Now you can. |
|
TW 3519437 - Previews in Preview panel sometimes wrong |
Sometimes image previews in the Previews panel are a little bit incorrect: ![]() Hint: In this case, we have an image that contains no alpha channel but four color channels. Hint: InDesign can at least use such images with InDesign Desktop and a little effort What a stress. But we were successful. The previews can now be generated correctly: ![]() |
|
TW 3518982 - Web Image : Alpha channel not applied |
If I call frame::image with a Web Images URL and an Alpha channel, the channel is applied. BUT: If the Web Image needs to be updated, it will be re-inserted without applying the Alpha channel. Yes, this information was not previously saved in the Web Image. This is now done and the Alpha channel details are now update-resistant. |
|
TW 3518865 - Web Image : Clip path not applied |
If I call frame::image with a Web Images URL and a clipping path, the path is applied. BUT: If the Web Image needs to be updated, it will be re-inserted without applying the clipping path. Yes, this information was not previously saved in the Web Image. This is now done and the path details are now update-resistant. |
|
TW 3518716 - Previews Panel : Customized placement not working |
The image entries in the Previews panel can be provided with their own placement information. See here for more information. Unfortunately, this does not seem to work - at least not for images with a URL (Web Images). We've implemented that feature now. |
|
TW 3476240 - Previews panel 'Prefer Existing Image Settings' does not work |
Unfortunately, the ‘Prefer Existing Image Settings’ setting of the Previews panel does not work correctly for Web Images. This should work now. |
|
TW 3514263 - Layout Rule "Fit Table Width" not working |
The Layout Rule Fit Table Width does not do anything when the table is right aligned. This is true for properly Right aligned text, and also when text is aligned Away from spine + on the right page. FXD FYI: It was an IEEE 754 rounding gap while comparing the cell co-ordinates with the frame co-ordinates. |
|
TW 3513084 - string::get_netweight ignores the parameter replaceTypos |
Whatever I do, the string::get_netweight function does not replace my different typographic quotation marks with simple double quotation marks ("). This problem is solved now. |
|
TW 3513092 - get_netweight_str with String (not char*) variables crashes InDesign |
The parameter description of get_netweight_str says that the parameters are strings - but if I do it this way, InDesign® crashes. No, the docu says that the parameters must be char*. The word String is only used in the description of the parameters and only to avoid the silly German word "Zeichenkette". And in the English version of the docu - hey, do you know another word for it? Anyway, we now support both the String and the char* data types in the function. |
|
TW 3512736 - Warn against incorrect and unsupported tags when importing HTML |
Would it be possible to warn about unsupported tags when importing HTML with html::to_tagged or %!TT_html_... ? I think that would be quite helpful. Yes, of course we can. The log now contains messages like this: # Unknown html tag '<ttt>' ignored # Unknown html tag '</ttt>' ignored |
|
TW 3505756 - W2ML import : Hyperlink color missing during W2ML import |
I'm using the following lines to create a hyperlink to a text anchor and set an orange frame around the created hyperlink: hyperlink::add_nameddest (anchorRef, 0, fr_dest, 10, 3); hyperlink::create_textdest (hyRef, 0, fr_src, 7, 23, anchorRef); color::define_rgb ("", 255, 128, 0, 0, colid); // Orange hyperlink::appearance (hyRef, 1, -1, colid, 1, 0); This is because the colors for the hyperlink are usually Stock colors of the UI. When importing an W2ML, we try to find the UI stock color from the color values of the hyperlink. But the given orange with (1, 0.5, 0) does not exist as an UI color. We therefore now automatically create a corresponding user-defined color. This solves the problem. |
|
TW 3503925 - W2ML import : Text anchors in tables not working |
Text anchors that point to a hyperlink target within a table unfortunately do not work when importing W2MLs. This is due to the fact that the table references in the InDesign text have different lengths. This shifts the hyperlink targets to a text position that is difficult to calculate. The problem has been solved. |
|
TW 3504090 - Text chains incomplete after W2ML import |
I have a W2ML with text concatenated over several frames in a so-called text chain. The import is correct - but the text chain is not completely re-created. This is fixed. |
|
v4.3 R36902 30.06.2025 |
Timestamp for Templates TW 3453929 |
A Timestamp for Templates can now be used to prevent changes to a template from being overwritten if another user is editing the same template at the same time. |
Hyperlinks in W2ML's |
When opening a W2ML file in InDesign®, all hyperlinks contained in it are now also restored:
The W2ML file must have been created with at least v5.0 R36887 of the priint:comet plug-ins or of comet_pdf. |
|
Python improvements |
General improvements
New modules:
New situations:
New functions: |
|
TW 3497564 - Cannot use emergency version of on-existing action |
I have placed an action in the $DESKTOP/emergency folder for testing purposes. This is great and makes testing much easier. Unfortunately, it only works for actions that also exist on the server. But ff I use an action that the server has not defined at server side at all, it unfortunately does not work. We have extended the behavior accordingly. It now also works with actions that the server has not defined at all. |
|
TW 3491879 - W2ML Import ignores text insets on on frames with rounded corners |
The W2MLImport ignores text frame insets for frames with rounded corners. FXD |
|
TW 3481925 - Publication Jobs Queue not working in third party SOAP connections |
Unfortunately, the Publications Jobs Queue
Yes, unfortunately that is correct. The selection of documents in the Publication panel is based on the IDs assigned in the priint:suite PubServer:
This can be completely different in customer-implemented systems. We can neither influence nor determine this in any way. In SOAP (Internet) connections, the jobs queue can therefore only be explicitly supported in priint:suite PubServer connections. See here for more information. |
|
TW 3467167 - hyperlink::find cannot find links to text anchors in other documents |
I have a document with hyperlinks to named text anchors in other documents. Unfortunately, the hyperlink::find function does not find these hyperlinks. Here is my function: int main () { LinkList lks = linklist::alloc (); int res = hyperlink::find (lks, 0, "", 0, -1, 0, 0, "", 1, 1, 1, 0, 0); Link lk; wlog ("", "\nCrossrefs in document\n"); for (lk = linklist::first (lks); lk; lk = linklist::next (lks)) { wlog ("", "'%s' --> '%s'\n", link::crossref::name (lk), link::crossref::destination (lk)); } linklist::release (lks); return 0; }Wow, that was really hard to fix. To search for the external links, InDesign® opens the target document in the background and then returns a reference to the anchor. Unfortunately, the target document is then immediately closed again - and the reference is worthless (or rather: as soon as you try to get e.g. the page number from this reference, InDesign® crashes. The problem is solved. |
|
v5.0 R36800 02.06.2025 |
Python Improvements |
General improvements
New functions:
|
TW 3457103 - Smoother handling of watermark |
As long as you have not used any priint:comet functionality, no watermark will appear. But once you use a priint:comet functionality, all already opened and all new documents will be marked with a watermark until you restart InDesign. With a valid license, the watermarks are automatically removed. To register the license, InDesign must be restarted. See here for more information. |
|
TW 3452926 - When calling panelstatement 125 (publication_after_checkout), the checked-out document is not yet the front document |
The panelstatemt 125 (after checkout publication) is apparently executed when the document is not yet visible. It is therefore not possible to customize the document (e.g. set layer names or something). FXD |
|
TW 3457817 - Short %!TT texts cause InDesign to crash |
I have a placeholder that should only insert an empty paragraph: %!TT<ParaStyle:><ParaStyle:> My InDesign crashes repeatedly with this placeholder. If I extend the text a little, e.g. by specifying a paragraph style, it works: %!TT<ParaStyle:My ParaStyle><ParaStyle:My ParaStyle> The solution was very difficult to find. It actually has to do with the length of the text (and not its content). The background to this is an implementation detail of the string implementation used (std::string of the C++ STL): Shorter strings are saved directly as char*, only longer character strings use a managed memory. The limit cannot be recognized from the outside and varies from system to system. Unfortunately, we fell into this trap at one point when evaluating the new placeholder.s text The error has been fixed now. |
|
TW 3457444 - Read Checkout scripts from '$DESKTOP/emergency' |
For testing purposes I can read actions of PubServer connections from the desktop folder 'emergency'. Would it be possible to have the same thing for the Publication checkout scripts (panel statements 111, 125, ...)? The solution was very difficult to find. It actually has to do with the length of the text (and not its content). The background to this is an implementation detail of the string implementation used (std::string of the C++ STL): Yes, this is possible. You can now put these scripts into the $DESKTOP/emergency too:
|
|
TW 3326595 - Python - Delimiter-Scripte (ClassId 50) |
Apparently the Python constants kDelimiterPrefix etc. are defined incorrectly. According to the documentation, they should have the values 1, 2, 4, 8, but in v5.0 they are currently defined as 0, 1, 2, 3. In v4.3 they are not defined at all. Both have been fixed. Please also note the different use of constants in v4.3 and from v5.0. |
|
TW 3431062 - Python constants not defined in v5.0 |
We keep getting requests because 'some' Python constants that were defined in v4.3 are no longer defined in 5.0.
That's not quite true: |
|
TW 3423067 - Zusatzmodule heißt jetzt Plug-ins |
Adobe hat das Menü Zusatzmodule im deutschen InDesign ®2025 umbenannt in Plug-ins (fast wie im Englischen, aber mit kleinem i). Leider verwenden alle Hilfetexte und die Doku weiterhin den Namen 'Zusatzmodule'. Na endlich, aber warum mit kleinem i? Abgesehen davon, ist schon ein bisschen Arbeit, das so hinzubekommen, dass ID 2022 - 2024 weiter den Begriff 'Zusatzmodule' verwenden und nur bei ID 2025 'Plug-ins' verwendet wird. Hilfetext und Doku sind angepasst. Die Hilfetext sind nur in v5.0. Das Delta zwischen 4.3 und 5.0 ist inzwischen zu groß, um die Änderungen kompatibel in beide Versionen einzubauen. Die Hilfetexte sind nur in v5.0. Das Delta zwischen 4.3 und 5.0 ist inzwischen zu groß, um die Änderungen kompatibel in beide Versionen einzubauen. |
|
TW 3423103 - Template name missing in document of PageTemplate |
When I open a page template, the document sometimes gets the name of the template as the title (good), and sometimes only the ID (not so good). What could be the reason for this? The reason is simple: If the name is shown, the original document of the page template is in the current InDesign version. If not, it is an older document. Of course, the name should be shown in both cases. We have now also fixed this. |
|
TW 3423049 - Page templates open multiple times |
If I double-click an already opened page template in the palette again, another document with this page template is opened. Shouldn't the document that is already open be used? This is fixed now. |
|
TW 3421320 - Double clicking an already opened PageTemplate shows an error message |
When I double-click on a page template that is already open, I always get an error message saying that the template document was not found. This is fixed now. We are simply bringing the document (back) to the foreground now. |
|
TW 3410319 - Cannot create QR code with version |
Apparently the function image::barcode does not evaluate all additional information correctly. The following statement generates a postscript error: image::barcode( gFrame, url, "my qr code text", 100, 100, // PS page size 0, 0 // offset , "eclevel", "M" , "version", "16" ); With the following call it works. The difference is that all additional options are summarized in the single attribute options. image::barcode( gFrame, url, "my qr code text", 100, 100, // PS page size 0, 0 // offset , "options", "eclevel=M version=16" ); Nevertheless we have fixed the error when using single options. The original call will now work (again). |
|
v5.0 R36601 24.04.2025 |
Just Tell Me |
![]() The new Just Tell Me panel translates your requests given in human language into machine-readable instructions for InDesign®. ChatGPT is used for the reply. See here for more information. The Just tell Me panel is experimental! |
UXP Script Support TW 3390982 |
With the new function run_uxpscript we now support the execution of UXP scripts. Attention: Many UXP functions and queries are executed asynchronously: For example, the question about the path to the file of a document, document.fullName, is answered asynchronously and only returns the answer [object promise] without any further information. To really obtain the actual path, you must retrieve the information with await. alert (doc.fullName); // shows '[object promise]' alert (await doc.fullName); // shows the path of the document' That's not too bad. But unfortunately InDesign® also aborts the current undo sequence after an await and the scripts can then no longer be undone in a single step (undo entire script) but only in the individual actions of the script. If this is acceptable to you ... Please note: If you execute run_uxpscript with Predefined Objects, the document path is required to determine the target document of the script, that means, we need to ask await doc.fullName. UXP scripts can therefore only be undone in individual steps when used with predefined objects. |
|
Jobs Queue TW 3404153 |
Unfortunately, editing many documents in a single script repeatedly leads to memory overflow (and crashing) of InDesign®. The problem here is that although you can open and close documents properly, InDesign® holds the closed documents in memory until the next idle time (i.e. at least until the end of the script). And there is no way to enter this intermediate world between life and death or to somehow get InDesign® to rest. Is there any way to somehow solve this situation? We have implemented a completely new cScripts module jobs. The Jobs Queue supported by the module solves this problem by executing each job in its own timer-controlled independent sequence. Once a job has opened a document (and closed it again), the sequence waits until InDesign® has closed the document in the background too. |
|
Javascripts with Arguments TW 3390686 |
run_javascript now supports the transfer of script arguments to the script. This eliminates the annoying search and replacement of any fixed words with current values in the script text. See here for more information. |
|
Upgrading Templates
TW 3363570 |
The fly-out menus Import... and Import Without Overwriting... of the Templates panel whether the template files should be upgraded to the current InDesign® version before importing (and then do so :-)) |
|
Python improvements |
General improvements
New modules:
New functions: |
|
Named Text Target TW 3373196 |
Currently the hyperlink::add_nameddest function only works for comet_pdf. Can we also have it for the InDesign® plugins? The function is now also available in InDesign®. |
|
Named CrossRef
TW 3379347 |
When I call textmodel::insert_crossref, the name of the target is always formed from the ClassID and the product ID. For example: <3 1 0 0 'myStringID' Can I also enter an own name? If you set the classID parameter of the function to -2, then only the StringID is now used as the name of the destination. |
|
TW 3404141 - app.comet.documentSave does not work with documents opened by path |
When I open a document with app.comet.documentOpen and its path, I cannot save this document with app.comet.documentSave later. If I use the document ID to open the document, it works. The error only occurs in v5.0. In v4.3 it also works with the path. Here's code snippet: var myPath = "/Users/paul/Desktop/aaa.indd"; app.comet.documentOpen (myPath, true, gOptions); app.comet.eval ("file:///Users/paul/Desktop/aaa.cpp", "", gOptions); app.comet.documentSave (myPath, gOptions); The error has been fixed now. |
|
TW 3395117 - publication::checkout_by_id always shows 'Missing Images' warnings |
I edit all the selected documents in the Publication panel in a loop. I could drink a coffee until this is finished. But I can't, because every document shows a warning that some images are missing. Is there any way to prevent this? When I check out manually, I can do this by holding down the Control button. We have added a corresponding parameter to the publication::checkout_by_id function. |
|
TW 3404147 - app.comet.documentSave does not work in InDesign Desktop |
If I have made changes to a document in a Javascript, saving the document with app.comet.documentSave unfortunately fails. The error only occurs in InDesign Desktop. The same script works with InDesign Server. The error has been fixed now. |
|
TW 3358778 - Four issues related to log.xml logging |
Please note that the problems described here also apply 1:1 to InDesign®. Wir bauen gerade ein Docker Image für priint cloud basierend auf Ubuntu 24.04. Da das Feature "support for log.xml" für priint cloud immer mal wieder nachgefragt wurde, habe ich mal wieder die Integration versucht. Ich bin auf vier Probleme gestossen (sowohl in comet5-R36258 als auch comet5-R36336). Bug #1 : Support for --logger broken Setzen der log.xml Konfiguration per --logger Option funktioniert nicht (comet_pdf v5.0 R36336 Linux) In priint cloud haben wir viele unterschiedliche XML Projekte auf einem Container. Der Kunde soll für sein Projekt eine projektspezische log.xml verwenden können - oder auch nicht.
Was derzeit geht ist die Kombination von
Eigentlich was die Option "--logger" dafür vorgesehen, dass sehr einfach hinzubekommen, nur wird das anscheinend völlig ignoriert. Bug #2 : Doubled log entries with active log.xml config Logs werden doppelt geschrieben, wenn log.xml definiert ist (comet_pdf v5.0 R36336 Linux)
Ich habe log.xml so konfiguriert, wie unter #1 geschrieben.
siehe Fall 3358778 Was ich nicht verstehe ist, dass die Optionen --log und --logger sich nicht ausschließen. Warum soll ich --log setzen müssen, wenn ich alles in log.xml definieren kann? Es erzeugt nur eine Unsicherheit darüber, was jetzt gültig ist, oder was passiert, wenn die Datei beidesmal identisch ist (blockiert sich ja/nein etc.). Bug #3 : Evaluation of command line options depends on order of options Auswertung der Optionen ist abhängig von deren Reihenfolge (comet_pdf v5.0 R36336 Linux) Eine Zufallsentdeckung: /opt/comet_pdf/comet_pdf \ --config_path /comet_xml \ --conn /comet_xml/data/connection.xml \ --out /comet_xml/data/test5c.pdf \ --log /comet_xml/data/comet5c.log \ --fontfolder /opt/comet_pdf/fonts \ --fontfolder /comet_xml/fonts \ --cache /comet_xml/data \ --exec /comet_xml/scripts/build.py \ --login test \ --in /comet_xml/master-documents/default.w2ml \ --metadata 0 \ --psnames /comet_xml/fontnames.xml \ --hyphens /opt/comet_pdf/hyphenations ist nicht gleich /opt/comet_pdf/comet_pdf \ --config_path /comet_xml \ --conn /comet_xml/data/connection.xml \ --out /comet_xml/data/test5c.pdf \ --fontfolder /opt/comet_pdf/fonts \ --fontfolder /comet_xml/fonts \ --cache /comet_xml/data \ --exec /comet_xml/scripts/build.py \ --login test \ --in /comet_xml/master-documents/default.w2ml \ --metadata 0 \ --psnames /comet_xml/fontnames.xml \ --hyphens /opt/comet_pdf/hyphenations \ --log /comet_xml/data/comet5c.log Das erklär mal jemandem! Im ersten Fall wird log.xml im Pfad /comet_xml/log.xml gefunden und interpretiert (wenn auch falsch -> Bug #2). Im zweiten Fall wird log.xml nicht "gesehen". Improvement #4 : Ugly formatting in new logs due to trailing newlines Problem ist hier die eingeschränkte Nutzbarkeit des log. Kurzer Log Auschnitt mit log.xml Konfiguration siehe Fall 3358778 Wir haben zwei sinnlose Leerzeilen hier. Sie erschweren das Lesen des logs. Grund: Einzelne Log Einträge enthalten Zeilenumbrüche am Anfang oder Ende. Es ist normalerweise nicht der Job einzelner Log Einträge, sich um die Formatierung des Logs zu kümmern. Dazu müssten sie wissen, was vorher oder nachher kommt. Das aktuelle Log zeigt implizite Abhängigkeiten zwischen den Einträgen. Ich würde das Trimmen aller Einträge, die aus C++ (nicht aus Skript) ins Log geraten, wenn log.xml aktiv ist (nicht für Legacy Logging). As far as possible and sensible, these has been repaired or implemented. |
|
TW 3379336 - hyperlink::create_textdest does not work with the results of hyperlink::find and "ANCHORS#" |
If I let hyperlink::find search for anchors (e.g. with crossRefName = ANCHORS#destname: '^3 [0-9]+ [0-9]+' ) and insert the found anchors into hyperlink::create_textdest, I unfortunately get an error. I would have thought that these are exactly the right objects. If you omit the ANCHORS#, you get hyperlink SOURCES and hyperlink::create_textdest queries its destination automatically from it. If you come directly with a hyperlink destination, this will of course not work at first. We have now fixed this - now hyperlink::create_textdest works with both source and destination references. Not quite sooo simple, hm? |
|
TW 3379320 - Wrong position and length of textmodel::insert_crossref |
When I run textmodel::insert_crossref, the text anchor is inserted one position too far to the right and reference is one character too short. This problem has been solved. |
|
TW 3371743 - Global Scripts missing on Front Row panel |
For some time now, the global scripts of the current data pool have been missing in the Front Row panel. Only the scripts from $DESKTOP/cscripts are shown. This is fixed now. |
|
v5.0 R36336 13.03.2025 |
TW 3350761 - Placeholders are shortened by simple mouse clicks |
Very amazing: I have a placeholder over the entire text of a table cell. Every time I click with the mouse in this placeholder, the placeholder at the front becomes one shorter. The error only occurs with v5.0 of the plugins and only when the placeholder palette is open. It is also very confusing that the error disappears immediately if I set a different placeholder to the cell text. I can then set the original placeholder back again - everything remains fine. Yes indeed, very surprising. We have fixed the bug now. Unfortunately, the error also occurs in other contexts, e.g. when updating all text placeholders in a frame. You should therefore replace all plugins of versions v5.0 R36001 - 36312 by at least this version! |
TW 3353404 - Saving templates crashes InDesign |
When I try to save a template with the plugins v5.0, InDesign unfortunately crashes immediately. The error only occurs under Windows. With the plugins v4.3 it works. The bug is fixed now. |
|
v5.0 R36258 03.03.2025 |
Python improvements |
General improvements
New functions: |
Build trace JPG output |
The build tracing function now defaults to JPG output instead of PNG, making writing twice as fast. The output format can be set using the scripting functions |
|
Python function product.setBuildTrace not accepting the default resolution |
When not providing an explicit value for the resolution parameter of product.setBuildTrace, the function raises a ValueError [Fixed] |
|
TW 3326520 - Python function comet.gTextModel.collectLinks does not work |
I just tried a Python function mentioned in the documentation (comet.gTextModel.collectLinks) and found that it doesn't seem to work. This is fixed. |
|
TW 3329958 - frame::set_alt should reset any user defined alt text |
If my frame has a user-defined alt text, frame::get_alt always returns this user-defined alt text regardless of the selected source (e.g. XMP:Title). Yes, that's right - and there's nothing we can do about it. This text is also used in Acrobat etc.. We have therefore added a parameter to frame::set_alt which can be used to control whether a user-defined alt text should be removed automatically. The default is 1 (=remove). |
|
TW 3329891 - frame::get_alt does always return an empty string |
Although I have set my object export options to use the image title of the XMP header as an alternative, the frame::get_alt function always returns an empty string. This problem is solved now. |
|
v5.0 R36169 15.02.2025 |
Python improvements |
New functions: |
TW 3316122 - Python Debugger does not work on Mac |
Unfortunately, I can't get the Python debugger to start on my Mac. I always get the line # Failed to initialize Python debugging server. in my log instead. This is fixed now and the Debugger (debugpy 1.8.12) will start properly. Please note : You also need Python 3.12.6 installed on Mac OS! Don't forget the comet.debug.breakpoint (True) at the beginning of you script! ![]() |
|
TW 3315689 - logger::debug unfortunately no longer works |
Unfortunately, the logger::debug command has not been working for some time now. The problem only occurs if the log.xml file is located directly in the priint:comet plugins folder. If the file is located one level higher in the InDesign Plug-Ins folder or in $PREFS, then it works. The error has now been fixed and log.xml can now be located in the priint:comet plugins folder again. |
|
TW 3313292 - wtlog does not work anymore |
Since the last release, the function wtlog does not write into the log anymore. Here's a very simple script: int main() { wlog("","%s","xxx by wlog\n"); wtlog("","%s","yyy by wtlog\n"); return 0; } But I only get this one line as a result: xxx by wlog Uuh, sorry, this is fixed now. |
|
v5.0 R36072 03.02.2025 |
Python improvements |
New functions: |
New Product Selection |
After recurring problems with the product selection when build-up via the panel and in the functions productlist::get and datapool::get_products, we have reimplemented the entire product selection. Please check carefully whether the selection of the installed products in your applications is also correct with the new implementation! A detailed description including a test system for the possibilities of automatic selection of sub-products during product build-ups can be found here. A complete description of the selection language for checking and loading products can be found here. Internal note: Search for gp2. |
|
Move Group to Layer TW 3297260 |
Inlines and frames from InDesign® groups cannot be moved separately from their parent object (the text frame frame or the group). In the fourth parameter of the Layout Rule Move To Layer you can now specify whether the parent object should also be moved in these cases. For grouped frames, all frames in the group are then moved to the specified level. With inlines, the containing text frame is moved. If the text frame is part of an InDesign® group, all frames in this group are also moved. |
|
Alt Text for Hyperlinks TW 3298591 - Assign alternative text for hyperlinks via scripting |
Is there a way to set the alternative text (Accessibility Text) of hyperlinks via cScript? Unfortunately, this is not possible via TaggedText or Javascript. The AltText is neither in the TaggedText nor is there a Javascript function. We have implemented the following two cScript functions for this purpose: |
|
TW 3299847 - Get the hyperlink of a given frame |
With nth = -1, >hyperlink::get_nth retrieves the hyperlink of the frame itself. But only with comet_pdf. Is this also possible for InDesign®? The index -1 now also fetches the hyperlink of the frame (if there is one) in InDesign®. |
|
TW 3298291 - Hilite 'Default' Template in Product Pool |
The entries of the Product Pool that do not have a template have 'Default' (German ''Standard') as their template name in the panel. Is there any way to highlight these entries, e.g. with a different color? The default template is now shown in pink color. ![]() |
|
TW 3281170 - InDesign crashes when calling a Java method from Python |
InDesign® crashes when I call a Java method from Python like that: #!py #pragma plain import comet pluginlib = comet.pyImport('[pubserver]/.../PythonLib.py') def main(): message = pluginlib.helloWorldWithContext() comet.showMessage(message) return 0 The reason for the crashes was most likely that the cache folder $CACHE/PyImport still contained old imports from another data connection. We now delete the contents of this folder every time a data connection is established or disconnected. That solved the problem for us. |
|
23.01.2025 Withdrawn |
Sudoku |
![]() This release contains the good old but improved Sudoku plugin again. Simply open the Sudoko panel, select a sufficiently large and empty text frame. Use the + button on the panel to create a Sudoku in one of 12 levels of difficulty. Und los gehts. ![]() |
Nullify Variables on Releases TW 3241101 |
If I release a char* string defined with alloc, the variable still points to the old, released memory. Yes, that is correct. The behavior corresponds to that of standard C and C++. Regardless of this, we have added a small extension: With the (new) cScript command prefs::set_script_nullify_on_release (1); you cause cScript to set the corresponding variable and all variables that point to the same memory address to the value 0 for releases (release, string::release, productlist::release, ...). To ensure that this also helps, these variables should also be checked for 0 before use :-) In any case, something like this still leads to a crash (or rather: precisely because of it): char * s = alloc (128);
prefs::set_script_nullify_on_release (1);
release (s);
wlog ("", "0X%x\n", *s);
|
|
TW 3291507 - article::members::add does not work |
Except for the current script frame, the function article::members::add always returns an error. This is fixed. The same applies to all document::members functions. |
|
TW 3286001 - Logger not working |
I’m trying to log messages in some scripts. To configure that, I’ve added a log.xml. But unfortunately none of my attempts are working and the the requestesd logfile is not written. To improve performance, we have revised the entire logging system in 5.0 R35824. Unfortunately, a few errors have crept in - including the fact that many messages are no longer written in the presence of a log.xml configuration. This is fixed now and the logging system should work as before (but significantly faster). |
|
TW 3270654 - R35868 - InDesign 2025 crashes on Mac |
The plug-ins of the Mac installer of v5.0 R35868 unfortunately cause InDesign® to crash immediately on startup. We have (hopefully) fixed that. |
|
TW 3248920 - ☢ Crash when logging into a Unicode SQL database |
When I try to log into a database with a Unicode character set, InDesign crashes immediately. The error appears in the log the first time a text is to be retrieved. The last entry in the log is: select hasstringids, statement from panelstatements where id = 92; The error only occurs from v5.0 and only under Windows. FXD |
|
TW 3273829 - itemlist::chained always returns empty list |
The itemlist::chained function unfortunately always returns an empty list with v5.0. In v4.3 the function works until the end. FXD. The function now also works again in v.5.0. |
|
comet.getVersionMajor and comet.getVersionMinor return str instead of int |
The Python functions comet.getVersionMajor and comet.getVersionMinor return str instead of int. [Fixed] |
|
TW 3290207 - comet.file.downloadWebImages wrong result entries on failed downloads |
The Python function comet.file.downloadWebImages returns a list of results containing error codes. [Fixed] |
|
TW 3290251 - Python - wrong parameter in comet.CFrame.setBarcode |
The Python function comet.CFrame.setBarcode has multiple problems:
[Fixed] |
|
v5.0 R35824 05.12.2024 |
Python improvements |
General improvements:
New classes: New functions:
|
Faster logfile writing |
We managed to refactor logfile writing, resulting in greatly improved performance. |
|
v5.0 R35572 16.10.2024 |
First Release of v5.0 |
We are pleased to present the First release of version 5 of the priint:comet ID plugins here. |
cScript Tracer |
With version 5.0, the priint:comet plugins offer a debugger-like tool to trace cScripts step by step. The tracer is running your Internet browser. More information can be found here. ![]() |
|
Python improvements |
General improvements:
Breaking changes: See porting guide for more information.
New modules: New classes: New functions:
|
|
Smaller 'Placeholder Options' TW 3084138 |
The panel Placeholder Options can now be reduced to a smaller size using the 'Details' button. The selected size is retained when restarting. ![]() |
|
Articles Structure to W2ML TW 3053960 |
In the InDesign® Articles panel, the frames of a document can be grouped into articles. This article structure is then used for the export to Accessible PDFs (PDF/UA). Since comet_pdf supports the Accessibility Tags for PDF/UA since v5.0, we also add the articles structure into W2ML now. |
|
Articles Script Support TW 3052499 |
For the accessibility structure of the final PDFs we also need to have script support of the articles structure of the documents. The following functions are available now for this purpose:
|
|
Alternative Text for Frames TW 3045637 |
In InDesign®, an 'Alt Text' can be defined for a frame via the Object Export Options ... -> Object Export Options dialog. This definition is inserted into the accessibility structure of the PDF in PDF export. We now also support this in cScript and in comet_pdf. |
|
string::rfind
TW 3149045 |
Using string::rfind you can search backwards in strings. Please note: Unlike string::find, this function does not support regular expressions! |
|
TW 3149041 - textmodel::get_frame_containing returns wrong column number |
Unfortunately, the function textmodel::get_frame_containing always returns the wrong number of columns. The results are always something like -4294967295 or -4294967296. The problem is solved now. |
|
TW 3060558 - The 'Reset' button of Placeholder Options crashes InDesign |
When I click the Reset button at the bottom left of panel Placeholder Options, InDesign crashes immediately and reproducibly. The error does not occur if a Python script was executed at least once before the reset. When the button is clicked, all cached Python information should also be reset (with a Python script). But without a previous call, Python is not yet initialized. The error has been fixed. |
|
TW 3090945 - What do the small arrows next to the panel names mean? |
There are always two small arrows next to the names of the panels: ![]() When I click on it, the size of the panel changes twice, the third time the panel is collapsed. Etc. The arrows are for the so-called detail views of the panels, which are shown in rotation.In the priint:comet plugins, this is only supported by the Placeholder Options panel. We have now removed these details arrows from the other panels. |
|
TW 3053984 - Username of frame missing in W2ML import of InDesign |
The so called username of a frame is not set into the W2ML export of a document. The username is shown (and can be set there) in the 'Layers' panel. By cScript you can use the functions frame::get/set_name and interactive::set/get_pdf_option with type kPDFFieldName. This is done now. To read/re-write this setting, you also have to use comet_pdf of v5.0. |