类似于在 Stack Overflow 上使用 markdown 创建monospace output
,我该如何为我的程序做到这一点。
我尝试了 lp filename.txt 并很高兴地发现它能够使用本地网络打印机并“按原样”打印
问题是输出不是等宽的。
有没有比...更快的选择
1) copy the text
2) paste into a text doc
3) format the document as mono
4) print it
我很想找到一些选择,例如lp filename.txt -format=mono
;)
答案1
您可以使用 vim 编辑器漂亮地打印 vim 可以读取的任意文件。使用以下命令创建 PostScript 文件。
vim \
-c 'hardcopy > output.ps' \
-c quit <input_file>
如果您想要 PDF 文件,请添加&& ps2pdf output.ps
到命令行。
您还可以编写一个小脚本,将当前剪贴板内容粘贴到临时文件中,在该文件上运行 vim,打印结果文件并删除临时文件。
答案2
这里最短的路径可能是使用a2ps
,它默认生成等宽的后记。
可以a2ps
用brew安装,iebrew install a2ps
根据其设置,它将直接将输出发送到 stdout 或 lp,并用-o
.此外,还a2ps
可以识别多种编程语言并漂亮地打印它们。
a2ps -o output.ps infile.text
--pro=color
如果颜色可用,则使用:
a2ps --pro=color -o output.ps infile.text
对于 HTML 输出,我倾向于使用vim
的2html
功能。
答案3
a2ps
就是答案。我用brew安装了它:
brew install a2ps
现在我可以a2ps myfilename
并且有效。
不幸的是,它以横向显示,如果我尝试将其设为纵向,它会被挤到左侧,而且很小,只占页面的 50%。 [更新 - 找到了使用参数 -1 修复此问题的方法(对于在一张纸上查找的页数 - 默认值为 2)
然而,随着景观的设计,它起作用了,并且代码具有fixed format
我正在寻找的风格。