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:

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:

If a manual installation is necessary for any reason, it is important to replace all (but not more) plug-ins. Replacing individual plug-ins of different releases will crash InDesign®. Here you can find complete zip sets of the plug-ins:

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:

  1. Choose Privacy & Security in the sidebar
  2. Click General on the top.
  3. Under the point Allow apps downloaded from select Choose App Store and identified developers.

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

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.

v5.0 R36001

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 - Comet 5.0 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.
When an invalid URL has been provided, the resulting error code is still 0 (success).

[Fixed]

TW 3290251 - Python - wrong parameter in comet.CFrame.setBarcode

The Python function comet.CFrame.setBarcode has multiple problems:

  • The 'options' parameter expects a str but raises an error saying it expects list[str].
  • Even when the 'options' parameter is correctly passed, the function raises an error.
  • The default values for parameters width, height, offsetX and offsetY do not seem to work.

[Fixed]

v5.0 R35824

05.12.2024

Python improvements

General improvements:

  • Omitting a return value from the main function now no longer causes an error, but a warning is put into the logfile and a return value of 0 is assumed.
  • CProduct.getAttribute now supports the constants.kProductProductOriginals constants, returning a list of built page items.
  • CProduct can now be tested for equality against other products.
  • product.create now has an ID parameter to directly initialize the product ID.

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:

  • All plug-ins now use Python 3.12. For more information see here.
  • Debugging is now available. For more information see here.
  • Performance improvements of up to several hundred percent when running many scripts.
  • Support for serial placeholders.
  • Improved documentation - Added dark mode, improved readability, added several examples, restructuring.
  • CPageItem.getType can now return whether a pageitem is a text on a path.
  • CFrame.setImage has new constants for image placement (backwards compatible).

Breaking changes:

See porting guide for more information.

  • Constants moved from comet module to comet.constants module.
  • prefs.setPanelEnabled has been deprecated.
  • CGroup.getGroup has been removed.

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.