gestion_table_tournante_libre/test
Mathieu Benoit 8fb80324e7 [ADD] pdf: badge sheet production with control page and draft mark
The badge sheet must print at true scale and read back exactly what the
model says. Page 1 is the control sheet: badge size, paper, counts,
namesakes, missing glyphs and a 100 mm ruler; it continues on extra control
pages when a long reprint overflows. One page per sheet follows, with cut
lines, embedded Noto Sans subsets and a ToUnicode map, no metadata, so the
same model yields the same bytes. A draft carries BROUILLON in outline on
every page; the word comes from the caller, never from src/pdf.
Checked: red first, text read back through pdfjs; 3541 node and 101 long
tests green from the index alone.

--- FR ---

[ADD] pdf : production de la planche, page de contrôle, brouillon

La planche de badges doit s'imprimer à l'échelle et se relire exactement
comme le modèle le dit. La page 1 est la feuille de contrôle : taille du
badge, papier, comptes, homonymes, glyphes absents et règle de 100 mm ; elle
continue sur des pages de contrôle quand une longue réédition déborde. Suit
une page par planche, avec traits de coupe, sous-ensembles de Noto Sans et
table ToUnicode, sans métadonnées : le même modèle rend les mêmes octets.
Un brouillon porte BROUILLON au trait sur chaque page ; le mot vient de
l'appelant, jamais de src/pdf.
Vérifié : rouge d'abord, texte relu par pdfjs ; 3541 node et 101 longues
vertes depuis l'index seul.

Assisted-by: Claude Opus 5.5
2026-10-09 15:26:53 -04:00
..
fixtures [ADD] docs: generated regions in README and guides, checked on build 2026-10-09 13:06:01 -04:00
navigateur [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
arborescence.test.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
bandes.js [FIX] core: bounded geometry, dated lock, empty seat, neighbour lists 2026-10-09 04:00:22 -04:00
chargements.js [ADD] tests: spec coverage guards, delivery checks, spec corrections 2026-10-07 17:51:49 -04:00
chargements.test.js [ADD] tests: spec coverage guards, delivery checks, spec corrections 2026-10-07 17:51:49 -04:00
chromium.js [FIX] web storage: refuse a name Chromium did not convert, UTF-8 launch 2026-10-07 02:35:12 -04:00
chromium.test.js [FIX] web storage: refuse a name Chromium did not convert, UTF-8 launch 2026-10-07 02:35:12 -04:00
construction.long.test.js [IMP] interface: Noto Sans everywhere, faces loaded before mounting 2026-10-09 13:01:49 -04:00
contrat_fichiers.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
coquille.test.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
electron_factice.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
fichiers_electron.long.test.js [FIX] core: bounded geometry, dated lock, empty seat, neighbour lists 2026-10-09 04:00:22 -04:00
fichiers_electron.test.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
fichiers_simules.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
fichiers_simules.test.js [FIX] core: bounded geometry, dated lock, empty seat, neighbour lists 2026-10-09 04:00:22 -04:00
fils.test.js [IMP] tests: watched series adapts to the core count, threads below 4 2026-10-06 04:54:01 -04:00
imprimante_simulee.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
imprimante_simulee.test.js [ADD] platform: print bridge, atomic byte writes, badge sheet file name 2026-10-09 15:26:13 -04:00
installation.test.js [ADD] run: make and ./run.sh, Electron start check, container matrix 2026-10-06 05:52:17 -04:00
lanceur.js [ADD] skeleton: Capacitor web app that shows its dated version 2026-10-05 13:13:13 -04:00
licence.test.js [ADD] interface: application shell — banner, sections, theme, about 2026-10-07 07:22:05 -04:00
livrable.test.js [FIX] interface: ghost labels, keyboard, valid HTML, closed data-* list 2026-10-09 04:02:03 -04:00
machine.js [FIX] interface: ghost labels, keyboard, valid HTML, closed data-* list 2026-10-09 04:02:03 -04:00
machine.test.js [FIX] interface: ghost labels, keyboard, valid HTML, closed data-* list 2026-10-09 04:02:03 -04:00
mutation.long.test.js [ADD] mutation: run one mutant through node --test with a loader hook 2026-10-09 13:04:14 -04:00
pdf.js [ADD] pdf: badge sheet production with control page and draft mark 2026-10-09 15:26:53 -04:00
pdf.test.js [ADD] pdf: badge sheet production with control page and draft mark 2026-10-09 15:26:53 -04:00
polices.js [ADD] outputs: pdf-lib, Noto Sans, paper sizes, badge imposition 2026-10-09 04:49:18 -04:00
polices.test.js [IMP] interface: Noto Sans everywhere, faces loaded before mounting 2026-10-09 13:01:49 -04:00
projets.test.js [ADD] skeleton: Capacitor web app that shows its dated version 2026-10-05 13:13:13 -04:00
rapporteur.js [FIX] interface: ghost labels, keyboard, valid HTML, closed data-* list 2026-10-09 04:02:03 -04:00
rapporteur.test.js [FIX] interface: ghost labels, keyboard, valid HTML, closed data-* list 2026-10-09 04:02:03 -04:00
sources_interface.test.js [ADD] interface: single sources for settings, shortcuts and CSV columns 2026-10-09 04:51:45 -04:00
temoin.js [ADD] outputs: pdf-lib, Noto Sans, paper sizes, badge imposition 2026-10-09 04:49:18 -04:00
version_voisine.js [ADD] electron: own shell, portable Windows exe built under podman 2026-10-05 13:13:32 -04:00