• ANNOUNCE: tclpdf 1.7 released

    From =?UTF-8?Q?Alexander_Sch=C3=B6pe?=@[email protected] to comp.lang.tcl on Fri Oct 16 20:34:39 2026
    From Newsgroup: comp.lang.tcl

    ANNOUNCE: tclpdf 1.7 released
    =============================

    tclpdf is a pure Tcl extension for creating PDF documents: pages and
    graphics, embedded fonts in four formats plus Type 3 and colour fonts,
    JPEG, PNG and TIFF images, SVG drawn as vectors, flowing text with bold, italic, underlined and struck runs, links, headings and lists - written
    as a run list, with tags or in Markdown -, tables, layers, interactive
    form fields, tagged and accessible documents up to PDF/UA-2, encryption, digital signatures and timestamps, and electronic invoices as ZUGFeRD / Factur-X in PDF/A-3B. It also reads: a page of an existing PDF is taken
    over as a form, a finished file is continued by an incremental update. Developed by Alexander Schoepe, it requires Tcl 8.6.11+ and runs under
    Tcl 9 as well; tdom is needed only for the XMP metadata of a PDF/A,
    PDF/UA or ZUGFeRD document, http and tls only to request a document
    timestamp, and Tk is not used.

    Built on and measured against ISO 32000-1 and -2, ISO 19005-2 and -3
    (PDF/A), ISO 14289-1 and -2 (PDF/UA), EN 16931 with ZUGFeRD 2.3 /
    Factur-X 1.09.2 and Order-X, ETSI EN 319 142-1 and RFC 5652 for
    signatures, RFC 3161 for timestamps, ISO/IEC 14496-22 for fonts. What
    claims a profile is checked against it on every run: veraPDF,
    Mustangproject, qpdf and pdfsig over every document. 4672 tests in 91
    files, green under Tcl 8.6.18 and Tcl 9.0.4 alike; 88 examples writing
    97 documents, every one run, validated and looked at.

    Since 1.5, a table cell carries what a paragraph carries. 1.6 brought
    runs and the two notations into cells; 1.7 brings lists. The API grew
    and nothing was withdrawn.

    Wiki (manual, tables, markup, accessibility, test tools): https://fossil.sowaswie.de/tclpdf/wcontent
    Examples, every script with its finished PDF: https://fossil.sowaswie.de/tclpdf/wiki?name=examples
    Tech notes: https://fossil.sowaswie.de/tclpdf/timeline?y=e
    Download / Repository: https://fossil.sowaswie.de/tclpdf

    Author: Alexander Schoepe <[email protected]>


    New since 1.5:

    * 1.7: a cell may hold a list - "item bullet|number" in a run, "ul",
    "ol" and "li" under "markup tags", "- " and "1. " under "markup
    markdown" - indented and labelled as in flowing text, the row as tall as
    the items make it; in a tagged document the TD holds an L with LI, Lbl
    and LBody, green under veraPDF for PDF/UA-1. A heading in a cell is
    still refused by name.
    * 1.6: a cell takes "runs", the list of {text options} pairs of "text
    -runs 1", written by a program from its data; the style key "markup plain|tags|markdown" - said once for a column, a section or the table, a
    cell may say otherwise - names the notation its text is written in. A
    bold word is measured in its face, the first baseline is the baseline of
    the plain cell beside it, and a plain table sets the same bytes as before.
    * 1.6: "io read", "head" and "write" open, transfer and close under try/finally and report a missing file or a directory by name after the
    fact - no channel is left open on failure. With thanks to Ralf Fassel
    for the suggestion.

    Changed since 1.5:

    * 1.6.1: every module changed since an earlier release carries a new
    version, and the modules that call new code require it, so two releases installed side by side load the files of the newer one; the test suite
    checks every module version against every release tag. Whoever installed
    1.6 beside an older release takes 1.6.1 or later.
    * 1.7: a list paragraph drawn inside a form, a pattern or a repeated
    table head no longer leaves an empty list element in the structure tree.

    Notes:

    * Installing: the release archives tclpdf1.7.zip and tclpdf1.7.tar.gz
    hold one directory tclpdf1.7 with the modules, pkgIndex.tcl and the ICC profiles - nothing to build; extract it into a directory on your
    auto_path and "package require tclpdf" finds it. The source archive
    builds the TEA way in the source directory: ./configure, make test, make install.
    * No font is part of the package. The faces under examples/assets/fonts
    travel in the source archive alone; "make install" installs none.
    * Not coming, each for a measured reason: a heading inside a table cell, nested lists, runs that change the size or the colour, PDF/X, RC4 and
    the older encryption revisions, EPS, GIF and BMP.
    --- Synchronet 3.22a-Linux NewsLink 1.2