我有一台 Peripage A4 连续纸卷热敏打印机,通过 USB-C 连接到装有 13.3.1 的 MacBook。在所有应用程序中以及通过命令行使用
lpr
: 打印工作正常
$ lorem --faust --lines 20 --randomize | lpr -P "PeriPage_A4" -o orientation-requested=1
打印 20 行随机(在本例中为随机 Goethe)lorem ipsum。
有没有一种方法可以告诉
lpr
“不要空无一物地填充A4纸”,而只是打印文本,停止(以便只打印包含文本的行),或打印“一行在一个时间”(当然,同样,不要在页面的其余部分填充任何内容)?除了这个例子之外,我不知道文本量,它随每次打印而变化。
Have: Want:
┌──────────────┐ ┌──────────────┐
│lorem ipsum │ │lorem ipsum │
│sit dolor et │ │sit dolor et │
│eniam unque. │ │eniam unque. │
│ │ └──────────────┘
│ │ ▲
│ │ │
│ │ │
│ │ │
│ │ │
│ │ printing stopped.
│ │
│ │
│ │ lots of blank paper
│ │ │
│ │ ◄─────────┘
│ │
└──────────────┘
我尝试过Python脚本,但打印机似乎不理解ESC/POS的东西:
#!/usr/bin/env python3
import sys
import time
from escpos.printer import Usb
# Configure the printer
printer = Usb(0x09c5, 0x0200, in_ep=0x81, out_ep=0x02)
# Reset the printer
printer.hw('reset')
# Read the input text from stdin
input_text = sys.stdin.read()
# Print the input text
printer.text(input_text)
# Add a small delay
time.sleep(1)
# Cut the paper
#printer.cut()
# Close the printer connection
printer.close()
您可以使用
lpoptions
来避免发送源消息,我猜这就是您正在经历的情况。
lpoptions -p printer/instance -o SendFF=false
更多选项请访问 https://opensource.apple.com/source/cups/cups-450/cups/doc/help/options.html