Lobsters | 原文链接 | 2026-09-10 收录

把墨水屏阅读器改装成一台真正的打印机:从一行行送进打印机的动画到自带出纸托盘

来源: nishantjosh.dev — 2026-09-07

概述

Nishant 本想给一台名为 Xteink X3 的可编程墨水屏阅读器加个小功能,结果冒出个念头:既然它看起来像纸,就该像纸一样工作——于是我该能朝它「打印」。他跑去搞清楚 macOS 打印时到底在找什么,落到了互联网打印协议 IPP 上,用 ESP-IDF 的 mDNS API 发布一个 `_ipp._tcp` 驱动型服务,广告成一台 300dpi、单面单色、只接受 Apple/PWG raster 的打印机。真正的麻烦在内存:一页 8.4MB 的位图要塞进只有 400KB RAM、跑着 Wi-Fi 和打印服务器的主控。他的解法是把显示器的屏幕缓冲区直接当作「出纸通道」,让解码、缩放、抖动后的每一行像素边到边落进屏显图像,把页图像内存从 113KB 压到 62KB,给网络栈腾出套接字缓冲。最终 Preview 里真的出现了叫 penguin 的打印机,点下打印、约一秒钟漫画页就显在了屏上,保存的打印件还能在阅读器里翻看——出纸托盘其实是一个文件夹。

核心要点

金句

If it looks like paper, it should act like paper. I should be able to print on it.
返回 Lobsters 首页