Hasty Briefsbeta

双语

Writing your own CUPS printer driver in 100 lines of Python

a year ago
  • #ticket-printing
  • #cups-driver
  • #python
  • pretix 1.8版本引入了通过平邮管理票务的运输功能,非常适合高质量的实体票券。
  • 测试过的热敏票券打印机:BOCA Lemur和Practical Automation uITL+2003CF,最终选择uITL+因其经济性和设计。
  • uITL+没有网络端口且仅支持Windows驱动,与BOCA的多平台支持形成对比。
  • 两款打印机均使用FGL(友好幽灵语言)进行通信,需为Linux开发定制驱动。
  • 用Python开发了CUPS打印机驱动(rastertofgl),将CUPS光栅格式转换为uITL+所需的FGL指令。
  • 选择Python开发驱动以避免交叉编译问题,并利用Pillow库处理图像(抖动、旋转)。
  • 使用CUPS的ppdc工具创建PPD文件定义打印机设置,包括纸张尺寸和切刀选项。
  • 提供Arch Linux和Debian的驱动安装包,源代码已发布在GitHub。
  • 已知问题:基于GTK的PDF查看器会导致过滤器失效,但命令行打印正常。
  • 通过pretix提供票券打印及邮寄解决方案,包括打印机和纸张销售服务。