所以我知道这a2ps
主要是为了将 ASCII 代码转换为 postscript 进行打印,但偶尔我喜欢为学校打印 .txt 或 .md 文件。通常,整个句子(甚至一个段落)会在一行上,并且a2ps
会在需要的任何字符处断行,以便正确换行。
这通常会在一行中留下尴尬的半个单词,或者在行首立即留下空格。我似乎找不到一个选项来防止在单词中间出现这种硬包装(即使使用--pretty-print
)。
是否有任何选项可以执行此操作,或者我是否使用了错误的工具来执行该任务?
答案1
根据我过去的经验a2ps
,它不能以智能方式处理包装。因此,您必须先提供已格式化为正确宽度和换行的文本文件,然后再将其交给a2ps
.
如果您的系统已enscript
安装,我会改用它。在 Google 上搜索“word wrap a2ps”会带您找到以下文章,标题为:打印纯文本,其中包括以下enscript
示例:
$ enscript --header='||Page $% of $=' \
--margin=72:72:72:72 -1 \
--word-wrap \
--media=A4 file.txt
笔记:(四面边距一英寸,向上 1 英寸,自动换行,A4 页面大小,右对齐标题显示页面信息)。
查看enscript --help
和 手册页以获取有关选项的更多信息,或通过 google 获取更多示例。我enscript
多年来一直用于打印各种文本文件和源代码,一旦您按照自己喜欢的方式进行切换,它就会“正常工作”。
答案2
我也曾为此苦苦挣扎,但找到了适合我的答案。
这是一个两步过程:
fmt inputfile.txt > outputfile.txt
a2ps outputfile.txt
当然,这可以全部发生在一行上:
fmt inputfile.txt > outputfile.txt; a2ps outputfile.txt
如果您愿意,您也rm
可以outputfile.txt
.
我已经这样做了好几次了,并且格式在默认模式下效果很好。