在Linux下使用命令行打印文件

时间:2022-04-14 00:22:44

近期需要将数学笔记打印出来复习,才发现Linux KDE环境下的默认PDF软件Okular根本无法将我在GoodNotes B5大小的页面写下的内容自适应地放大到A4纸上,只能以页面的原始尺寸打印。然后,用Firefox浏览器打开PDF文件,结果只能使用人为指定的缩放比例打印,而没有自适应纸张的功能。于是,便想到用纯命令行试试看。搜索了一下,发现这里总结出的常用打印命令比较全面,且经过测试后,完全能够满足我的需求。例如,缩放页面以自适应纸张且只打印奇数页的命令如下:

lpr -o page-set=odd -o portrait -o fit-to-page -o media=A4 file-name

常用的打印相关命令也一并列在下面供今后参考:

  • 列出当前系统已安装的所有打印机

    lpstat -p
  • 列出当前系统的默认打印机

    lpstat -d
  • 显示打印队列

    lpstat
  • 删除打印任务

    lprm job-id
  • 使用默认打印机打印文件

    lpr file-name
  • 使用指定打印机打印文件

    lpr -P printer-name file-name
  • 显示默认打印机选项

    lpoptions -l
  • 显示指定打印机选项

    lpoptions -p printer-name -l
  • 指定纸张大小、方向

    lpr -o landscape -o fit-to-page -o media=A4 file-name
  • 使页面自动缩放至纸张大小

    lpr -o fit-to-page file-name
  • 指定打印份数

    lpr -#number-of-copies file-name
  • 只打印奇数页

    lpr -o page-set=odd file-name
  • 只打印偶数页

    lpr -o page-set=even file-name
  • 设置页码范围

    lpr -o page-ranges=1-4,5,6-12 file-name
  • 设置标语页

    lpr -o job-sheets=start,end file-name

    其中,start与end可以替换为classified、confidential、secret、standard、topsecret与unclassified。

附记:由此也可以看出,虽然Linux下的命令行工具提供了完善和强大的功能,但是图形界面软件不注重细节、用户体验差的毛病一直都存在。像这里提到的软件基本功能缺失的问题还算是好的。更有甚者,一些被Linux稳定版收录的软件还会出现一启动就漰溃的情况。这些现象对于直接参与相关开源项目的程序员来说也许不是什么大问题,但是对于软件的最终用户或者也包括不直接从事该软件开发的程序员来说,则是难以接受的。