近期需要将数学笔记打印出来复习,才发现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. 【VS开发】【图像处理】V4L2 pixel format

    目录(?)[-] v4l2_pix_format定义 2 具体Pixel Format定义 1. v4l2_pix_format定义 [cpp] view plain copy /* *  V I D ...

  2. 深入理解java:4. 框架编程

    了解 Servlet 和 Filter Servlet(即servlet-api.jar) 是 J2EE 最重要的一部分,有了 Servlet 你就是 J2EE 了,J2EE 的其他方面的内容择需采用 ...

  3. get、set快捷键那码事儿

    今天发现一个省时间的方法.get一下,哈哈 在快捷get/set.或其他那个页面上的方法时,只需Shift+Alt+s 然后,选择哪个方法,就按该方法字母下有横线的那个字母(只按单个字母就行) 在ge ...

  4. 注解@Slf4j的作用

    lombok.extern.slf4j 代码: @Slf4j public class LogExample { } 产生以下代码: public class LogExample { private ...

  5. PMP几种说明书

    信息系统的生命周期包括5个阶段:系统规划(可行性分析与项目开发计划).系统分析(需求分析).系统设计(概要设计.详细设计).系统实施(编码.测试).运行维护等阶段. 系统规划阶段:初步调查组织环境目标 ...

  6. Spring Cloud 使用Feign调用服务传递Header中的参数

    1.使用Feign 调用其他微服务,尤其是在多级调用的同时,需要将一些共同的参数传递至下一个服务,如:token.比较方便的做法是放在请求头中,在Feign调用的同时自动将参数放到restTempla ...

  7. <<C++ Primer>> 第四章 表达式

    术语表 第 4 章 表达式 算术转换(arithmetic conversion): 从一种算术类型转换成另一种算术类型.在二元运算符的上下文中,为了保留精度,算术转换通常把较小的类型转换成较大的类型 ...

  8. Android热修复、插件化、组件化

    模块化:项目按照独立的模块进行划分 组件化:将项目按照单一的组件来进行划分结构 项目组件化的重要环节在于,将项目按照模块来进行拆分,拆分成一个个业务module和其他支撑module(lib),各个业 ...

  9. Hdu 4738【tanjan求无向图的桥】割边判定定理 dfn[x] < low[y]

    题目: 曹操在长江上建立了一些点,点之间有一些边连着.如果这些点构成的无向图变成了连通图,那么曹操就无敌了.刘备为了防止曹操变得无敌,就打算去摧毁连接曹操的点的桥.但是诸葛亮把所有炸弹都带走了,只留下 ...

  10. mycat 笔记

    Mycat读写分离.主从切换.分库分表的操作记录   系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库 ...