• CTAN update: pst-barcode

    From CTAN Announcements@manfred@ctan.org to ctan-ann on Fri May 15 12:18:20 2026
    From Newsgroup: comp.text.tex

    Herbert Vo|f submitted an update to the

    pst-barcode

    package.

    Version: 0.22
    License: lppl

    Summary description:

    Announcement text: --------------------------------------------------------------------------------
    0.22 2026-05-14 - fix for wrong number of lines 15->17
    0.21 2026-03-30
    - Alias option handling was simplified and improved.
    - The text rendering system was generalised to support up to 9 independent text groups. The existing text and extratext options are retained as aliases.
    - The position of the whitespace guards for EAN/UPC symbols was simplified and better aligned with the text.
    - The position of the whitespace guards for standalone EAN/UPC addons was fixed.
    - The text{x,y}align=justify options were fixed for the linear and matrix renderers.
    - The text processing for the Code 39 Extended and Code 93 Extended encoders was fixed.
    - The text renderer now centres each character using stringwidth and pathbbox for font-independent alignment in the direct text positioning path.
    - Text offsets were adjusted for EAN/UPC-based symbologies and addons to account for ink-centre anchoring. Non-EAN encoders with per-character text placement were converted to use centre-aligned single string rendering.
    - FMLY was added to the encoder metadata.
    - The C API and SWIG bindings were expanded with support for lazy loading of resource bodies.
    - Input validation was hardened across all encoders, including data length checks, empty data rejection, and implementation limit guards for large allocations.
    - The renderers now validate their input structures and the text renderer handles single-character justify alignment correctly.
    - All resources now clean up the dictionary stack when an error is raised, preventing dict stack leaks in caller contexts.
    - Renderer error handling was improved: correct graphics state restoration, operand stack cleanup for invalid colors, and redundant gsave/grestore removal from composite rendering paths.
    - Raw mode input validation was improved for Code 128, Code 16K, Data Matrix, PosiCode, Ultracode, PDF417 and Micro PDF417, including ^NNN format and codeword range checks.
    - Data exceeding the maximum symbol capacity is now rejected during encoding for QR Code, Data Matrix, Code One, PDF417 and JAB Code.
    - Codablock F, Code 16K and the matrix renderer now handle large symbols without overflowing the operand stack.
    - GS1 input validation was improved for DataBar Expanded, DataBar Stacked Omnidirectional, GS1 Composite Component and GS1 North American Coupon.
    - JAB Code now validates eclevel, mask, colors, rows and columns options. PRNG constants now avoid integer literals exceeding the signed 32-bit range.
    - PDF417 and Micro PDF417: Fixed text submode optimizer crash with long all-text inputs by increasing the sentinel value used in the Viterbi cost comparison.
    - JAB Code: Fixed crash in slave symbol mode where metadata encoding referenced an undefined variable.
    - The AusPost encoder now supports FCC 87 (Routing) and FCC 92 (Redirection) barcodes.
    - The renderers now support a `default_inkspread` global context setting.
    - The GS1 AI linter was realigned with the latest release of the GS1 Syntax Dictionary.
    - User option validation was improved for the Codablock F, Code 16K, Code 49, Micro PDF417 and PDF417 encoders.
    - User option validation was improved for the linear, matrix and maximatrix renderers.
    - The encoder for DotCode was fixed to ensure a minimum symbol dimension when the opposite dimension is large.
    - The performance of the PDF417, Micro PDF417, Code One, OneCode, Data Matrix and GS1 Composite Component encoders was improved.
    - The time to generate error correction polynomials was improved using a FIFO cache for the QR Code, Data Matrix, PDF47, Micro PDF417, MaxiCode, Dot Code, Han Xin and Ultracode symbologies.
    - The performance of the Code 128, Codablock F, Posicode and Code 16K encoders was improved.
    - Stack leaks during error handling were fixed for the Data Matrix, PDF417, Micro PDF417, ISBN, ISMN, AusPost and Telepen symbologies.
    - The performance of generating the error correction codewords for AusPost symbols was improved.
    - Several stack leaks were fixed for GS1 AI and DL data processing.
    - The debug and dontdraw options of all encoders must now be enabled using a pair of global switches.
    - The performance of generating the error correction codewords for Aztec Code, Han Xin Code, QR Code, Data Matrix, Code One, Maxicode, PDF417, Micro PDF417, Ultracode symbols was improved.
    - The Ultracode encoder was fixed so that colours are correctly selected for rendering.
    - The performance of the matrix renderer was further improved.
    - Common colour handling code was factored out of the renderers into its own resource.
    - The performance of the matrix renderer was significantly improved.
    - The QR Code encoder performance was enhanced by precalculating the mask function patterns and applying them simultaneously to the data bitstream.
    - A mechanism to "preload" the lazy variables via global context was added.
    - Switch from loadctx/unloadctx mechanism to a more direct method of preloading static state, with lazy initialisation.
    - The Two-Track Pharmacode encoder's text positioning was fixed.
    - The USPS Intelligent Mail encoder's text positioning was fixed.
    - Common text rendering code was factored out of the linear and matrix renderers into its own resource.
    --------------------------------------------------------------------------------

    This package is located at
    https://mirrors.ctan.org/graphics/pstricks/contrib/pst-barcode

    More information is at
    https://ctan.org/pkg/pst-barcode


    --------------------------------------------------------------------------------

    Thanks for the upload.

    For the CTAN Team
    Manfred Lotz


    CTAN is run entirely by volunteers and supported by TeX user groups.
    Please join a user group or donate to one, see https://ctan.org/lugs .
    --- Synchronet 3.22a-Linux NewsLink 1.2