pdfcer 0.44.0
Single-folder portable Windows x64 build. Unzip and run pdfcer.exe — no installer, no registry writes, no network access required.
This release clears every open request from the pdfcer-gui project.
Comment review, end to end
- Replies. A comment thread could be read and never added to.
add-replywrites/IRT+/RT /R, on the parent's page, in the parent's colour so a thread reads as one conversation. - Review status — Accepted / Rejected / Cancelled / Completed / None, and the
Markedmodel. Three things here came from reading ISO 32000 §12.5.6.3 rather than assuming, and each changed the design:/Stateand/StateModelare text strings, not names;/StateModelis derived from the state so the one non-conforming pairing cannot be expressed; and a second status by the same author must reply to that author's previous status, not to the annotation. That last is ashall, and getting it wrong is invisible — a star of status annotations renders identically to a correct chain in every viewer.attached_toandchain_depthare reported so it is checkable. - No resolver for which status is "current", deliberately: the standard says nothing about ordering, and
/Mis optional and empirically ties. Shipping none is spec-correct. - Sticky note icon and colour are editable in place (
set-text-annot-style), keeping the note's object identity — delete-and-replace was the only route before, which lost/M, the object id and any reply. /Cand/Nameare readable on every annotation (list-annotationsprintscolor=andicon=). A colour swatch or a sort-by-colour was impossible purely because nothing could read the current value.- Pop-up open/closed state (
set-annotation-open) — pdfcer had written/Opensince Pass 6.2 and could read back neither copy.
A text file becomes a PDF
place-text paginates a .txt into as many pages as it needs — the missing other half of text export. This required a page-creation primitive the crate never had; everything before could only copy an existing page.
Unmappable characters refuse the import and name every one rather than dropping them silently (--drop-unmappable is an explicit opt-in that reports each lost code point). U+000C is a hard page break, matching extract-text's own separator, so text out and back in keeps its pagination.
CAD drawings
The hairline / "line weights off" display mode now reports how many strokes it actually thinned, so "no visible change" is distinguishable from "the setting isn't working". A page whose strokes are already sub-pixel renders byte-identically with the mode on or off and reports zero — the mode is a ceiling, not a set.
Also
Annotation gains open, color, icon, state and state_model. StickyIcon gains from_name and a public name.
Full detail in docs/ROADMAP.md (Passes 252.0, 253.0–253.3, 254.1).