web-dev-qa-db-ja.com

適切にフォーマットされたコードを印刷するにはどうすればよいですか

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;)のようなオプションを見つけたいです

21
Michael Durrant

a2psが答えでした。私はそれをbrewでインストールしました:

brew install a2ps

今私はa2ps myfilenameと動作します。

残念ながら、それは横向きになり、私がそれを縦向きにしようとすると、ページの50%しか占めず、左に小さく押しつぶされます。 [更新-パラメータ-1でこれに対する修正が見つかりました(1つのシートで検索するページ数の場合-デフォルトは2でした)

ただし、ランドスケープとして機能し、コードにはfixed format探していたスタイル。

3
Michael Durrant

Vimエディターを使用して、vimが読み取ることができる任意のファイルをきれいに印刷できます。以下を使用してPostScriptファイルを作成します。

vim \
  -c 'hardcopy > output.ps' \
  -c quit <input_file>

PDFファイルが必要な場合は、&& ps2pdf output.psをコマンドラインに追加します。

現在のクリップボードの内容を一時ファイルに貼り付け、そのファイルに対してvimを実行し、結果のファイルを印刷して一時ファイルを削除する小さなスクリプトを書くこともできます。

24
Marco

ここでの最短パスは、おそらくa2psを使用することです。デフォルトでは、等幅ポストスクリプトが生成されます。

a2psはbrewでインストールできます。つまり、brew install a2ps

その設定に応じて、出力をstdoutまたはlpに直接送信し、-oでオーバーライドします。また、a2psはいくつかのプログラミング言語を認識し、それらをきれいに出力します。

a2ps -o output.ps infile.text

色が利用できる場合は--pro=colorを使用します。

a2ps --pro=color -o output.ps infile.text

HTML出力では、vim2html機能を使用する傾向があります。

12
Thor