近期需要将数学笔记打印出来复习,才发现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稳定版收录的软件还会出现一启动就漰溃的情况。这些现象对于直接参与相关开源项目的程序员来说也许不是什么大问题,但是对于软件的最终用户或者也包括不直接从事该软件开发的程序员来说,则是难以接受的。

在Linux下使用命令行打印文件的更多相关文章

  1. linux下通过命令行把文件拷贝到U盘上

    常用linux,往U盘拷贝文件是常用的一种方法.下面这个方法是笔者亲测有效,暂时记录下来. 1.插入U盘,fdisk -l查看U盘是哪个设备(比如/dev/sdb1)然后mount  /dev/sdb ...

  2. Ubuntu使用命令行打印文件

    Ubuntu使用命令行打印文件 正文 环境: Ubuntu 16.04.3 LTS HP Deskjet InkAdvantage 4648 准备步骤 安装Common UNIX Printing S ...

  3. Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身

    Linux下的命令,删除文件夹下的所有文件,而不删除文件夹本身 rm -rf *

  4. 在linux下用命令行编译 java的eclipse项目

    由于jdk的版本问题导致在windows上编译打包好的jar包放在linux服务器上运行的时候出现一点小异常,所以决定在linux上进行一次项目编译,这有两个选择1.在相同的linux环境下安装lin ...

  5. 在GNU/Linux下使用命令行自动挂载与卸载USB磁盘

    在命令行环境下如果每次都是靠手动敲入mount与umount命令来挂载与卸载USB磁盘是件很麻烦的事情.尤其是mount命令的参数非常多.比如,磁盘的分区类型(vfat.ntfs等),挂载的目录节点, ...

  6. Linux下基于命令行的抓包方法

    大家可能都已经对著名的抓包工具Ethereal比较熟悉了,这里再介绍一种基于命令行的抓包工具tcpdump. 举例:抓本机1813端口上的数据,并将抓包结果保存在test.cap文件中 然后在本地可以 ...

  7. Linux下dos2unix命令将windows文件编码格式dos转换成Unix格式

    问题描述: 在Windows系统下面使用文本编辑器notepad后传到Linux系统下的话 Linux下处理和执行一般都存在一些问题,我们可以通过命令查看文件是否是dos格式的, 如果有如图所示的M标 ...

  8. Linux下使用命令行配置IPMI

    ipmitool是什么: 百度百科给的解释已经够用了,简单说就是“IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能 ...

  9. linux下通过命令行上传文件到百度网盘

    一.环境: centos release 6.9 python 2.7.13 二.安装工具bypy sudo pip install bypy 三.使用bypy 3.1 授权 [root@ineedl ...

随机推荐

  1. IDEA 一次启动多个微服务模块项目

    1,打开IDEA项目 .idea 下 的workspace.xml 2,查找“RunDashboard” 节点 3,添加如下内容 <option name="configuration ...

  2. Linux下面MariaDB 管理命令基础使用

    MariaDB 是 MySQL 的一个分,由于某些原因,使之取代了Mysql成为了 RHEL/CentOS 7 的默认数据库.针对数据库的操作我们经常做的操作就是增删查改,接下来就介绍下 MariaD ...

  3. [转帖]RSA算法与DSA算法的区别

    RSA算法与DSA算法的区别 https://cloud.tencent.com/developer/news/254061 文章来源:企鹅号 - SuperFullStack 本文译自:StackE ...

  4. 【6.18校内test】T1多项式输出

    日常题前废话: 首先so amazing 的一件事,因为在洛谷上立下了的flag,然后这次考试前两道题都是刚刚做过不久的题emmm(相当于白送200吗qwq,但是这阻挡不了我第三题不会的脚步qwq) ...

  5. goods商品类

  6. Android 调用摄像头功能【拍照与视频】

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/ma_hoking/article/details/28292973 应用场景: 在Android开发 ...

  7. java使用Callable创建又返回值的线程

    并发编程使我们可以将程序分为很多个分离的,相互之间独立的任务,通过使用多线程的机制,将每个任务都会有一个执行线程来单独的驱动,一个线程是 进程中一个单一顺序控制流,一个进程可以拥有多个线程,也就相当于 ...

  8. python接口、抽象类与抽象方法

    接口: -url -数据类型,python不存在 class 类名 1.类中的方法可以写任意多个 2.如果想要对类中的方法做约束,就需要写接口 接口中定义一个方法f1,可以约束继承他的子类 class ...

  9. CSS 相对定位 绝对定位

    css中的相对定位和绝对定位. 定位标签:position 包含属性:relative(相对) absolute(绝对) 1.position:relative; 如果对一个元素进行相对定位,首先它将 ...

  10. Jquery复习(四)之text()、html()、val()

    三个简单实用的用于 DOM 操作的 jQuery 方法: text() - 设置或返回所选元素的文本内容 html() - 设置或返回所选元素的内容(包括 HTML 标记) val() - 设置或返回 ...