mirror of
https://github.com/Donkie/Spoolman.git
synced 2026-10-22 01:52:17 -05:00
Adds a third mode to the label print panel, alongside Sheet and Label printer: Image files. It saves one PNG per selected spool at the design's label size, using the same Konva rasterizer that printing uses. Sheet geometry and the copy count are ignored there — an exported image is meant for a label printer or an image editor, where a tiled A4 page would just have to be cut apart again, and copies would be byte-identical files. Up to ZIP_THRESHOLD (5) labels download as individual PNGs, spaced apart because browsers throttle bursts of programmatic downloads; past that they arrive as a single zip built with fflate, dynamically imported so it stays out of the main bundle and stored rather than deflated since PNG is already compressed. Also adds a per-design DPI setting that applies to printing as well as export. Printing rasterizes through the same path, so a 300 dpi raster sent to a 203 dpi thermal printer gets resampled by the driver either way — that resolution mismatch, not the file format, is what issue #730 was actually describing. Designs saved before this pick up the default via the DEFAULT_LAYOUT spread in api/labelDesigns.ts; the v1 migration sets it explicitly. Claude-Session: https://claude.ai/code/session_014Cwk5Yyze9yPvkYkUtMAP4
38 lines
980 B
JSON
38 lines
980 B
JSON
{
|
|
"name": "spoolman-client-v2",
|
|
"private": true,
|
|
"version": "0.0.1",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite dev",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
"format": "prettier --write .",
|
|
"lint": "prettier --check ."
|
|
},
|
|
"devDependencies": {
|
|
"@inlang/paraglide-js": "^2.18.2",
|
|
"@sveltejs/adapter-static": "^3.0.6",
|
|
"@sveltejs/kit": "^2.8.1",
|
|
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
|
"@types/qrcode": "^1.5.6",
|
|
"prettier": "^3.3.3",
|
|
"prettier-plugin-svelte": "^3.2.7",
|
|
"svelte": "^5.1.9",
|
|
"svelte-check": "^4.0.5",
|
|
"typescript": "^5.6.3",
|
|
"vite": "^5.4.10"
|
|
},
|
|
"dependencies": {
|
|
"@lucide/svelte": "^1.25.0",
|
|
"fflate": "^0.8.3",
|
|
"konva": "^10.3.0",
|
|
"qr-scanner": "^1.4.2",
|
|
"qrcode": "^1.5.4",
|
|
"svelte-dnd-action": "^0.9.74",
|
|
"svelte-konva": "^1.0.1"
|
|
}
|
|
}
|