# WJDT Printer Installer (Map UI) Forked from `PrinterInstaller/` on branch `feature/printer-map`. ## Why a fork The web flow at `printerinstallermap.asp` -> `installprinter.asp` (which downloads a per-selection `.bat` that invokes the original `PrinterInstaller.exe /PRINTER=...`) is blocked by current Edge policy: `.bat` downloads disallowed, unsigned `.exe` runs disallowed. This variant replaces the web map UI with an in-installer wizard page so the operator never touches a browser. Same drivers, same install logic, same `/PRINTER=` silent path - all that changes is the selection UX. ## What's new vs PrinterInstaller 2.0 - **New wizard page**: site-map bitmap with clickable printer markers placed at `printers.mapleft, maptop` coords from ShopDB. Click toggles selection; selections feed the existing checkbox page. - **Bundled site map**: `sitemap2025-dark.png` (2550 x 3300, sourced from `shopdb/images/`) baked into `[Files]`, extracted to `{tmp}` at install start. - **API call extended**: `api_printers.asp` now returns `mapleft, maptop` per row (additive; older clients ignore). - New `AppId` GUID, new `OutputBaseFilename=PrinterInstallerMap`, new `AppName` so the two installers coexist on the same PC without UninstallString collision. ## What's unchanged - Driver bundle (HP UPD, Xerox UPD, Brother MFC, HID FARGO). - `Install-PrinterDriver` + `Install-NetworkPrinter` install logic. - `/PRINTER="..."` and `/VERYSILENT /NORESTART` silent-install path - existing bat-file deployments would still work if pointed at this EXE binary, but the whole point of the fork is to retire that flow. - ShopDB API base URL (`http://192.168.122.151:8080/api_printers.asp`). - Custom branding (`gea-logo.ico`, `patrick.bmp`, `patrick-sm.bmp`). ## Status Stub. `.iss` header renamed; map wizard page not yet implemented. Tracked work: - [ ] Extend `api_printers.asp` to return `mapleft, maptop`. - [ ] Add `sitemap2025-dark.png` to `[Files]`. - [ ] Implement `MapPage` Pascal procedure (TScrollBox + TImage + click-to-toggle hotspots). - [ ] Wire selected printer IDs into the existing `SelectedPrinters` array used by the checkbox page. - [ ] Code-signing cert (separate task - see project memory). - [ ] Rebuild + sign + bake into PXE image. ## Build / sign / deploy Same as `PrinterInstaller/`. See `../PrinterInstaller/README.md` for the build matrix.