lpr:在现代连续纸打印机上从命令行打印而不浪费纸张?

问题描述 投票:0回答:1

我有一台 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()
python cups lpr
1个回答
0
投票

您可以使用

lpoptions
来避免发送源消息,我猜这就是您正在经历的情况。

lpoptions -p printer/instance -o SendFF=false

更多选项请访问 https://opensource.apple.com/source/cups/cups-450/cups/doc/help/options.html

© www.soinside.com 2019 - 2024. All rights reserved.