如何打印格式良好的代码

Mic*_*ant 23 command-line osx printing

类似于在 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 
Run Code Online (Sandbox Code Playgroud)

我很想找到一些选项,例如lp filename.txt -format=mono;)

Mar*_*rco 26

您可以使用 vim 编辑器漂亮地打印 vim 可以读取的任意文件。使用以下内容创建 PostScript 文件。

vim \
  -c 'hardcopy > output.ps' \
  -c quit <input_file>
Run Code Online (Sandbox Code Playgroud)

如果需要 PDF 文件,请添加&& ps2pdf output.ps到命令行。

您还可以编写一个小脚本,将当前剪贴板内容粘贴到临时文件中,在该文件上运行 vim,打印生成的文件并删除临时文件。


Tho*_*hor 12

这里最短的路径可能是使用a2ps,它默认生成等宽后记。

你可以a2ps用brew安装,即brew install a2ps

根据其设置,它会将输出直接发送到 stdout 或 lp,并使用-o. 此外,a2ps识别几种编程语言并漂亮地打印它们。

a2ps -o output.ps infile.text
Run Code Online (Sandbox Code Playgroud)

使用--pro=color如果颜色可供选择:

a2ps --pro=color -o output.ps infile.text
Run Code Online (Sandbox Code Playgroud)

对于 HTML 输出,我倾向于使用vim2html功能。


Mic*_*ant 5

a2ps就是答案。我用brew安装了它:

brew install a2ps

现在我可以a2ps myfilename并且有效。

不幸的是,它以横向显示,如果我尝试将其设为纵向,它会被挤到左侧,而且很小,只占页面的 50%。[更新 - 找到了使用参数 -1 修复此问题的方法(对于在一张纸上查找的页数 - 默认值为 2)

然而,随着景观的设计,它起作用了,并且代码具有fixed format我正在寻找的风格。