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

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 pdf renderer 5.0.

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:

PDF Decorations

With the concept of decorations, PDFs can be provided with additional elements, the so-called the so-called Decorations. A frequent use case will be the insertion of correct page numbers into the target PDF. More information can be found here.

Page Layout for Merges

TW 3447004

With the --merge option, I can compose a PDF from various pages of other PDFs. This is a very nice option. Could it also be used to create double paged documents?

When composing the new PDF file, the /PageLayout option of the PDF preset is now taken into account. The PDF preset is defined as usual with the -z option.

TW 3447262 - Suppress using PDFBox for PDF compositions

Using the -m (or --merge) option I can merge pages from different PDFs into one large PDF. If all pages of all source PDFs are transferred, the Apache PDFBox is automatically used.

This is probably because PDFlib does not take over hyperlinks, form fields, etc. when transferring the pages. However, according to PDFlib Tutorial 10 (page 198), this is supported as of PDFlib 10.x.x. Couldn't the use of PDFBox be suppressed somehow - otherwise you still have to install it etc.?

We have now defined the program argument -M and --Merge for this purpose. The parameters are identical to -m, except that PDFBox is not used even if only complete PDFs are transferred.

TW 3450535 - Support of 'Show Document Title'

PDFs can contain information as to whether the file name or the document title should be shown in the window title. For whatever this is good for.

If you use the document title, Acrobat can no longer show you the file in the Explorer/Finder. However, the Accessibility guidelines require that the title is displayed (see PAC tool).

Can this option be implemented in the renderer?

The option is now read from the PDF preset and applied accordingly:

/DisplayDocTitle true|false

If the option is missing, the default is false.

TW 3447031 - Options -e and -q do not work

Using the options

 -e 1001 -q “2 0 0 ‘’”

I was able to place a single product with the help of the given action 1001. This no longer seems to work in v5.0. In v4.3 it still works.

FXD

TW 3441172 - comet_pdf --merge ... creates empty page only

I'm using comet_pdf --merge ... to merge pages from different documents into a single PDF. The number of pages and the documents and page numbers used are correct according to the log file. But unfortunately all pages of the output file are empty.

Oh, unfortunately that's true. The error has been fixed.

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.

v5.0 R36601

24.04.2025

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:

v5.0 R36336

13.03.2025

See History of v4.3

v5.0 R36258

03.03.2025

Python improvements

General improvements

New functions:

v5.0 R36169

15.02.2025

Python improvements

New functions:

v5.0 R36072

03.02.2025

Python improvements

New functions:

v5.0 R36001

23.01.2025

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 3291530 - Python Debugging Configuration

Unfortunately, I cannot start the Python debugging of comet_pdf. I always get the message that the (correctly installed) debugpy module could not be found.

The error has been fixed and the debugger can now be started. Information on the Python debugger can be found here.

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

Accessibility Structure

Comet_pdf now support the Accessibilty Structure (PDF/UA) of PDF. See here for more information.

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:

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.

TW 3168605

In InDesign®, an 'Alt Text' can be defined for a frame via the Apparently the function server::load_placeholder_str replaces ALL unknown <tags> with empty strings in comet_pdf v5.0. However, only the KNOWN tags should be replaced. This error does not occur in v4.3 and the InDesign plugins v5.0.

The problem is solved now.