标签整页排版
用于小商家/创作者已确认短标签文字、内部代码和纸张规格,直接交付整页SVG与逐张位置CSV。一次统一尺寸/方向,不混排不同大小、不旋转优化,不生成条码、不读商品系统/客户名单、不打印或修改库存。
先读输入与物理试印边界,正常样例、非法纸位样例、恶意标签字面样例。Python3.9+标准库:python3 -B scripts/run.py references/sample.json,或stdin严格JSON,stdout JSON;退出0只代表草案,2为整份拒绝且files为空。
SVG用户文字XML转义,无脚本/外部资源。files中的sheet-001.svg等页和labels.csv可在用户指定路径保存,避免覆盖原文。毫米坐标是声明的数学布局,不是打印机已校准;必须先普通纸试印、量尺寸/边距/间距并核对100%缩放,按纸张与打印机厂家规定进纸。start_slot仅在首张预留不画对象,不授权重复进纸;禁止重新送入的已剥离/使用过标签纸须改新纸并设0。
标题最多16字符、代码ASCII16,超过标签文字空间整份拒绝,不能靠无声截字或缩字体凑齐。脚本只读JSON、不联网、不写成果、不执行文字指令、不调用打印机。用户内容和匿名代码仍需人工核实事实/隐私/商标及公开权限,不把“脚本离线”当云端平台隐私保证。
1.0.1仅补Unicode检查视图的已知联系方式/短密钥及AKIA凭据识别,不规范化安全标题/代码/ID,不改毫米布局。不是完整DLP,姓名/未知秘密仍须人工匿名;实体试印与厂家进纸要求不变。
1.0.3补作者字段并收紧路径输入为最多4MiB的普通文件,拒绝最终软链、目录、FIFO/socket等特殊文件;父目录软链仍支持。同fd核对普通文件、设备/inode与大小,有限读取并关闭。POSIX缺O_NONBLOCK开前拒绝,可用时O_NOFOLLOW。stdin仍保留用户明确管道输入、最多MAX_INPUT+1字节并等待EOF的原合同,不强制stdin普通文件、不承诺无等待。非POSIX仅代理模拟,不是Windows实机认证、文件系统沙箱或全部路径竞态证明;排版/整数解析与实体试印要求不变。