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 R36800

02.06.2025

Python improvements

General improvements

  • All logging functions, aswell as showMessage and showError now accept all data types for the 'message' parameter, implicitly converting the parameter to str
  • [Fixed] CHyperLink.getType always returns 0

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:

  • ps_111.cpp
  • ps_125.cpp
  • ...

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:

To make the debugger output easier to read, we have collected the constants in v5.0 under comet.constants. Otherwise the list of defined identifiers would always start with dozens of kSomething until the user's own identifiers appear. Here you will find a solution for the use of Python comet constants from v.5.0 onwards.

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

  • CFrame.setImage now removes the image when None is used as the path parameter
  • __repr__ functions are now more consistend and have unified line breaks for the result.
  • [Fixed] CFrame.setImageScale parameter names do not match documentation
  • [Fixed] CFrame.setImageScale indicates wrong function name on parameter exception

New modules:

  • strutils - comet related string utilities

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).

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

  • keine log.xml im Verzeichnis des Binaries (also neben dem comet_pdf executable)
  • log.xml in comet_xml Verzeichnis legen (also neben actions.xml etc)
  • "--config_path" explizit auf das comet_xml Verzeichnis setzen
  • "--log" auf eine entsprechende Datei gesetzt
Leider beeinflusst --config_path aber nicht nur das Lesen des log.xml, sondern auch anderer Konfigs (nicht so klar beschrieben in der Doku).

Eigentlich was die Option "--logger" dafür vorgesehen, dass sehr einfach hinzubekommen, nur wird das anscheinend völlig ignoriert.

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.

  • "--log" ist gesetzt "/comet_xml/data/comet.log"
  • in log.xml ist der stdlog Appender gesetzt auf $LOGFILE
Ich erhalte ein Log in /comet_xml/data/comet.log, in dem (nahezu) alle Einträge doppelt sind. Einmal im Legacy Format einmal mit dem Pattern aus log.xml. Immerhin schön abwechselnd.

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.).

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".

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.

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 - 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.