Skip to content

Feat/text multi signatures - #3

Merged
SebastienDenooz merged 6 commits into
developfrom
feat/text-multi-signatures
Oct 7, 2026
Merged

SebastienDenooz merged 6 commits into
developfrom
feat/text-multi-signatures

Conversation

@SebastienDenooz

Copy link
Copy Markdown
Contributor

No description provided.

Add stamps.py: the Stamp model (text or image, page / first / last /
every-page target), the bundled font registry, Pillow text rendering
with font, colour and size, freehand stroke rasterising, the
--signatures JSON loader and apply_stamps(), which paints the stamps
into an incremental writer at their exact size.

Six OFL fonts ship in fonts/ with their licences.
Add profile_store.py: profile.json under the user config dir (tolerant
load, atomic save, unreadable files set aside as .bak) and a
content-addressed store for imported and drawn signature images under
the user data dir. No PIN, token or credential is ever written.

CACHET_CONFIG_DIR / CACHET_DATA_DIR override both locations.
Core: RunConfig.stamps carries any number of text / image stamps. In
beid and azure mode they are applied in the same incremental writer
before the cryptographic signature; image mode applies them alone.
Template validation accepts a page-count mismatch only when every
element is anchored on the first or last page. Stamping an already
signed input is refused in beid/azure and flagged in image mode.

CLI: --text, --font, --color, --font-size and --signatures <file.json>;
existing invocations are unchanged.

GUI: step 6 becomes a multi-element editor (add text, add image, draw,
edit, delete, per-element placement with a to-scale preview). The
signature library, placements and wizard settings are reloaded at
startup. Report tables stretch their detail column.

Bump the version to 1.4.0.
The GitHub workflows gain the Xvfb GUI run, a frozen-binary smoke test
for text signatures and job timeouts. GitLab CI and Forgejo Actions run
the same headless and GUI suites.
@SebastienDenooz
SebastienDenooz merged commit a98975e into develop Oct 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant