如何使用 CUPS 可配置地打印文本文件

如何使用 CUPS 可配置地打印文本文件

当我尝试使用 CUPS 打印文本文件时,它的字体非常小,边距可以忽略不计:

head -n 450 /usr/share/dict/words | tr '\n' " " > t
/usr/lib/cups/filter/texttopdf 1 1 1 1 1 t > t.pdf

无边距的文本

如何配置用于打印文本文件的字体和边距?是否有系统配置文件或我可以执行的一些命令行魔法来执行此操作?例如,我可能想要 12 号字体,四周边距为 1 英寸。

答案1

关于过滤器的文档texttopdf很少,有时必须推断出信息,但例如,当您在texttopdf不带任何参数的情况下调用时,从使用输出本身,

Usage: texttopdf job-id user title copies options [file]

和一些资源,例如cups-filters Github 页面Debian wiki 关于 texttopdf 过滤器人们可以猜测它texttopdf接受与 lp(1)/lpr(1) 的-oswitch 相同的参数,但附加的限制是所有选项都需要通过引用聚集到单个参数中。lp 杯(1)列出了 CUPS 中所有接受的选项。例如,一些更有趣的选项是:

  • landscape,它将输出设置为横向模式
  • cpi=<value>,设置每英寸的字符数(默认为 10,根据lp 杯(1)
  • lpi=<value>,设置每英寸的行数(根据lp 杯(1)

必须根据纸张尺寸和字体字形尺寸计算出适合您需求的确切值,也许通过反复试验更容易发现lpi=它们。cpi=

对于 stdin/stdout,它的texttopdf功能也与任何 Unix 命令一样,因此不需要中间文件。

例如,您可以使用:

head -n 450 /usr/share/dict/words | tr '\n' ' ' | \
    /usr/lib/cups/filter/texttopdf 1 1 1 1 'cpi=15 lpi=8 landscape' \
    > words.pdf

相关内容