Repository navigation
SuniPDF 0.41.0
New in 0.41.0
-
Manual plan counts. In Comment choose Manual count, set an equipment/type group and click items on the plan. Each real Stamp marker represents one item. Move/delete with normal annotation tools and Undo/Redo. Regroup through the register while preserving identity and geometry. Totals are recomputed from actual markers, with no symbol recognition implied.
-
Document-wide annotation register. Search standard/custom fields, apply named filters, sort and navigate to the actual markup. Keep business statuses and disciplines separate from standard PDF Review states. Add up to 16 custom text fields; each edit has one Undo step and refuses stale snapshot targets.
-
Traceable CSV/JSON snapshots. Export every filtered row and marker-linked group totals. Preserve unknowns; escape spreadsheet formula prefixes. Malformed/unsupported SuniPDF records or ambiguous count identities refuse complete export. New-copy guards retain original PDFs, existing files and AES permissions.
-
PDF permissions. Shared annotation writers enforce the annotation right for moves, deletion, replies and other edits; page-geometry maintenance retains its separate modification authorization. Incomplete page inventories and malformed count identities refuse register export.
-
QA dependency maintenance. Replace test-only Pillow with pinned 13.0.0 Windows wheels; retain all previous image and independent-reader checks. Local tools remain free and open source.
-
Retained migrations and PDF checks. Published 0.40.0 ZIP/MSI packages join earlier baselines. No new third-party runtime package was introduced; serde is already in the locked dependency tree.
Validation
Main CI and release workflow passed on 8e36a4bf2d2396e6cff92cea4fd006c8c964c62f: 643 tests, zero failures, 10 default ignored; 1198 EN/FR keys, 33 portable scenarios, 27 MSI baselines/135 logs. CodeQL Rust/Python/Actions passed with zero open alerts.
The independent page-decoration gate passed 100 cases, 339 CLI calls and 14 qpdf checks, covering rotations, cropped geometry, transparency, six text zones, numbering, protected documents and refusals. The actual downloaded CLI also passed retained security, local-review, object-order, PDF 2.0, 14 PDF-inspection and 20 visual-signature image cases. Independent readers, software rendering, OCR, corpus, Office and mutation gates remain included. Hosted full-workspace tests cover the new headless dialog behavior; they do not qualify native Windows interaction. The identical application code passed local core/CLI Clippy before the final test-only fixture corrections. A previous feature revision passed 372 local core/CLI tests, desktop compilation and 100 CLI scenarios; later local test compilation exhausted workstation memory. The final complete workspace tests and Clippy passed in hosted Windows CI.
Scope and limits
- Counts are explicit manual SuniPDF markers, one item per marker. No visual symbol detection, automatic counting or proprietary count metadata import is claimed.
- Register limits are 1000 pages, 10000 annotations in total, 4096 per page, 4 MiB of metadata and 64 levels of replies. Unsupported or malformed SuniPDF metadata refuses the complete export. Register viewing/export requires PDF copy permission.
- Named filters use exact text; search includes custom fields. Modification dates retain PDF syntax and sort lexically, without timezone normalization. Custom fields are text only, maximum 16; typed/formula columns and sorting by arbitrary custom keys remain future work.
- Exports describe the current in-memory PDF snapshot. JSON preserves null values and count-to-marker references. CSV uses empty cells for unknowns, quotes all values and escapes spreadsheet formula prefixes. Existing output files and originals are never replaced.
- Local functions stay free and open source. Projects edits remain deferred.
- Packages remain unsigned without an independent publication key. ARM64 is cross-built only. Native hardware, physical printing, Narrator, installed updater interaction, broader hostile/customer corpus and PDF/A/PDF/UA conformance remain separate 1.0 qualification.
Projects edits remain deferred at the owner's request; repository roadmap and evidence are updated, without a fresh Projects synchronization claim.
Français
Repères de comptage persistants placés par clic sur les plans PDF locaux, regroupement, déplacement/suppression avec Annuler, changement de groupe sans changer l’identité et export des totaux reliés aux repères. Le tableau de toutes les annotations ajoute recherche, filtres nommés, tri, navigation, statuts métier, disciplines et champs texte personnalisés, avec exports CSV/JSON protégés. Les changements refusent les cibles périmées et préservent originaux et permissions. Pillow 13.0.0 remplace la dépendance vulnérable réservée aux tests. Les paquets 0.40.0 rejoignent les migrations. Les écritures communes vérifient le droit PDF d’annotation pour déplacements, suppressions, réponses et autres modifications ; l’export refuse aussi les inventaires de pages incomplets et les identités de comptage malformées.
Plan counts and markup register · Image stamps and decorations · Guide français · Full changelog