# PrintZD888TA **Repository Path**: tikizhang/PrintZD888TA ## Basic Information - **Project Name**: PrintZD888TA - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-11 - **Last Updated**: 2026-06-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 太平祥云标签打印系统 (Zebra ZD888TA) 这是一个使用 Python 编写的桌面 GUI 标签打印小程序,专为**中药煎药档签(太平祥云标签)**场景设计。该小程序适配经典 **Zebra ZD888TA (203 DPI) 热敏/热转印打印机**,提供美观 of Windows 11 风格操作界面、实时打印预览,并能够自动生成含有“患者姓名+单据流水号”的二维码。 --- ## 🌟 核心特性 1. **现代化 UI 界面**:采用 `CustomTkinter` 构建,支持 Windows 11 Fluent 风格,可自适应操作系统的深色与浅色模式。 2. **高保真预览 (WYSIWYG)**:在界面右侧提供实时高分辨率预览。任何输入的修改都会即时渲染在画布上,确保所见即所得。 3. **中文防乱码渲染**:使用 Python `Pillow` 图形库在内存中渲染出 `800 × 480` 像素(对应 10cm × 6cm 标签 @ 203 DPI)的高清晰二值单色图,配合系统级字体绘制中文,彻底避免斑马打印机因缺少中文字体而导致的乱码问题。 4. **反显高亮警示**:对“先煎”、“后下”、“包煎”等核心药性煎煮要求,自动以**黑底白字**的标签(Badge)形式反显渲染,极大提高药房配药时的可视性,防止调剂失误。 5. **智能流水号与快捷输入**: - 自动根据当前日期生成 `YYYYMMDD0001` 格式流水号。 - 打印成功后,流水号自动递增(+1),并自动清空姓名输入框,方便录入员连续作业。 - 预设科室下拉菜单、多选煎药要求矩阵,省去大量打字时间。 6. **跨平台原生打印支持**: - **Windows**:通过 `pywin32` (win32print) 绕过图形驱动,直接将 ZPL 的 `^GF`(图形直接载入)指令发送到 USB 打印队列进行 RAW 打印,保证最高效的打印速度与最清晰的条码。 - **macOS**:利用 CUPS 系统 `lp` 命令发送 ZPL 字节流,支持调试与直接打印。 --- ## 📂 项目结构 * [main.py](file:///Users/tiki/opt/PrintZD888TA/main.py) - 程序主入口,负责 GUI 界面的构建、事件绑定、定时器以及状态控制。 * [label_renderer.py](file:///Users/tiki/opt/PrintZD888TA/label_renderer.py) - 负责标签图像绘制、二维码集成、中文字体加载以及二值化图像转 ZPL `^GF` 编码的实现。 * [printer_manager.py](file:///Users/tiki/opt/PrintZD888TA/printer_manager.py) - 负责与系统底层打印子系统进行通信(Windows win32print 或 macOS CUPS lp)。 * [requirements.txt](file:///Users/tiki/opt/PrintZD888TA/requirements.txt) - 项目运行所需的第三方库列表。 * [run_app.bat](file:///Users/tiki/opt/PrintZD888TA/run_app.bat) - Windows 下的双击一键启动脚本。 * [run_app.sh](file:///Users/tiki/opt/PrintZD888TA/run_app.sh) - macOS 下的一键启动/调试脚本。 --- ## 🛠️ 运行方法 ### 方案 A:Windows 11 下运行 (推荐) 1. 确保您的电脑中已安装 [Python 3.10+](https://www.python.org/downloads/)。**安装时请务必勾选 "Add Python to PATH"(将 Python 添加到系统环境变量)**。 2. 将斑马 ZD888TA 打印机通过 USB 插入电脑,开机并安装好 Zebra 官方驱动。 3. 双击运行工作目录下的 [run_app.bat](file:///Users/tiki/opt/PrintZD888TA/run_app.bat)。程序会自动创建虚拟环境,下载依赖包,并拉起打印系统界面。 ### 方案 B:macOS 开发调试下运行 1. 打开终端,进入项目目录。 2. 运行如下命令赋予脚本执行权限并启动程序: ```bash chmod +x run_app.sh ./run_app.sh ``` --- ## ⚙️ 斑马 ZD888TA 规格设定 (10cm × 6cm 标签) * **物理规格**:宽度 100 毫米,高度 60 毫米。 * **物理分辨率**:203 DPI (8 点/毫米)。 * **渲染分辨率**:宽 `100 / 25.4 * 203 ≈ 800` 像素,高 `60 / 25.4 * 203 ≈ 480` 像素。 * **打印原理**:通过 `ImageDraw` 对 800 × 480 像素的画布进行点阵绘制,随后转为 1-bit 二进制流,并以 ZPL `^GFA` 原始字节指令发送。该方案不需要向打印机固件下载汉字库,即便打印机处于出厂配置状态,也能打印出完美的中文字体和高解析度二维码。