⚙️ Godking.print

📐 图形打印库 🖨️ 原生 GDI 引擎 📅 2024-06-30
v1.3 · 稳定版

针对 aardio 环境设计的轻量级打印扩展库,以 毫米为单位,提供精确到 0.01mm 的绘图能力。封装了打印机控制、坐标映射、预览生成等复杂流程,让打印编程回归简单。

✔ 即拿即用 · 零外部依赖
24+
绘图 & 控制 API
100%
GDI 原生性能
3.1x
预览缩放系数
📐 坐标系统 · 精度
  • 左上角原点 — 符合屏幕阅读习惯,Y 轴向下为正,降低学习曲线。
  • 毫米单位 — 所有绘制函数均以毫米为输入,自动转换为 0.01mm 的 GDI 逻辑单位。
  • 自动 Y 轴翻转 — 内部统一处理 HIMETRIC 映射模式,开发者无需关心底层坐标变换。
  • 精度 0.01 毫米级定位,满足印刷、标签、票据等精细场景。
✦ 坐标转换 : mm → ×100 → GDI 单位
🖨️ 打印机全生命周期
  • 设备选择 — 支持默认打印机、按名称指定、对话框交互选择三种方式。
  • 文档控制 — start() / end() / abort() 完整的事务管理,支持多页分页。
  • 属性系统 — 通过元属性暴露 PaperSize、Orientation、Duplex 等 12+ 项打印机设置。
  • 预览模式 通过 printview 参数一键生成 PNG 预览,不实际打印,节省耗材。
📄 多页文档 🔄 双面/单面 📏 自定义纸张

🎨 绘图基元 · 完整覆盖

▸ 矢量图形
  • 直线 · 折线 (drawLine / lineTo)
  • 矩形 · 圆角矩形 (draw/fill)
  • 椭圆 · 圆形 (draw/fill)
  • 点 (drawPixel)
▸ 文本 & 填充
  • 自由文本 (drawText) 支持自动换行
  • 居中文本 (drawTextCenter)
  • 渐变填充 (fillGradient) 水平/垂直
  • 纯色填充 (fillRect / fillEllipse)
▸ 位图 & 扩展
  • 位图绘制 (drawBitmap) 支持拉伸/等比
  • 位图句柄绘制 (drawBitmapByHandle)
  • 自定义绘图回调 (drawWithPaint / drawWithDc)
  • 画布缩放 & 坐标变换

⭐ 核心优点

  • 毫米级精度 — 印刷行业友好,无需手动换算像素。
  • 统一坐标体系 — 左上角原点 + Y轴向下,与屏幕绘制直觉一致。
  • 资源安全 — 自动管理 GDI 对象生命周期,正确释放画笔、画刷、字体。
  • 预览集成 — 无纸化调试,printViewPages 收集每页图像,便于预览或保存。
  • 轻量高效 — 直接调用 GDI,无额外渲染层,性能接近原生。

⚡ 设计特点

  • 🔹 aardio 原生风格 — 类设计,元属性,命名空间贴合 aardio 习惯。
  • 🔹 链式友好 — setPen / setBrush / setFont 顺序调用,状态持久。
  • 🔹 智能默认值 — 大多数参数提供合理默认,少量代码即可完成复杂打印。
  • 🔹 扩展回调 — drawWithBitmap / drawWithPaint 允许嵌入 GDI+ 或自定义绘制逻辑。
  • 🔹 错误隔离 — 各绘图函数前置设备检查,避免无效操作导致异常。
🔧 坐标变换内核 — 所有 Y 坐标统一取反,上下点交换,确保绘制方向正确。
🧹 GDI 资源 — 旧对象即时删除,nullBrush 复用系统对象,无泄漏风险。
📸 预览缓冲 — 3.1 倍缩放内存 DC,清晰呈现打印效果,支持多页收集。
核心类 godking.print
选择器 print.selectPrinter()
预览属性 .printViewPages
纸张属性 .PaperWidth / .PaperHeight
纯 GDI · 无额外 runtime
🖥️ Windows 全版本 · 打印机通用
📁 单文件 · 易于集成