Skip to content

v2.5.2

Latest

Choose a tag to compare

@lxman lxman released this 30 Jul 01:49

Fixed

  • Reserved process-name Separations/DeviceN now apply their colourant directly on the CMYK
    soft-proof path
    — an unregistered [/Separation /Cyan …] (or an all-reserved DeviceN) paints
    its process plate directly, ignoring the alternate's tint transform, in every painting context:
    fills, strokes, shadings, images, and stencil masks (ISO 32000-2 §8.6.6.4; matches Adobe).
    Previously such spaces flattened through their alternate, so a lying alternate painted the wrong
    plate. /None components in such spaces still paint nothing. The RGB rendering path is
    unchanged (it correctly keeps reverting through the alternate).
  • Atomic file saves retry transient Windows locks — the final rename in PdfDocument.Save
    (and all atomic writes) now retries with backoff when antivirus/Search-indexer scans transiently
    hold the destination (IOException/UnauthorizedAccessException), instead of failing the save.
    Persistent locks still throw after the retry budget.
  • GetPageColorants logs when a malformed resource graph truncates the inventory instead of
    swallowing the fault silently (the partial-result contract is unchanged).

Known limitations (colour rendering)

Tracked, each pinned by a baseline test so no fix can land unnoticed — see
Docs/colour/rendering-conformance.md (gap entries G-8 … G-14) for mechanisms and pins:
/None shadings used as patterns still paint; /All images/stencils get no spot planes on the
CMYK path; a /None fill in text mode 4 drops the add-to-clip half; a bare /Pattern cs carries
over the previous colour instead of painting nothing; cs+sc costs 4 colour-space resolves
(uncached tint-transform parse); Indexed images over all-reserved bases still flatten.