]
トップ «前の日記(2013-01-11) 最新 次の日記(2013-01-13)» 編集

Yukiharu YABUKI の tDiary



このtDiaryを検索します。

2013-01-12 [長年日記]

_ [Debian] ソースコードを印刷する

前回 bottle.py を紹介したが、だいたい2000行ぐらいのソースコードなので、印刷をして手元でパラパラをめくってみようと、HP Officejet K8600DN で python のソースコードを印刷しようとしたので、その顛末を書いておこうと思う。これから書く内容は、Debian Squeeze と HP Officejet K8600DN の話であり、将来ソフトウェア環境が変更になったり、違う機種ならば当てはまらない場合もある。参考にしてもらう場合があったら、結果だけじゃなくて過程をチェックしてほしい

とはいえ、印刷をしている時に、本当はこうなって欲しいのだが、なんでならないのかなあ。という場面はあった。私の理解がおいついていないからだろうと思うので、ツッコミ欄やメールなどでご指導ご鞭撻を頂けると幸いです。

承前

単純にソースコードを「小冊子風」に印刷したかった。のだが、自分がどんくさいのか手間が掛かったので、記録に残して次回同じようなことをするときに時間の節約を行う。

最初のイメージは、A3を小冊子印刷でA4風味にして、1ページに入る情報量を見やすい範囲で詰め込んで、ページ枚数を減らそうと思っていた

MS-DOSの時代、レーザプリンターなどにソースコードを印刷するときに、行番号を付けたり用紙によってフォーマット、ヘッダー/フッターなど自由に付加したりできるソフトウェアがあった。vectorの印刷用ユーティティというジャンルに行けば、判るだろうか。PRTというソフトウェアを周りの人が使っていたのを覚えている。あんな風にソースコードを印刷して手元でみたいというのは、最近は流行らないのかもね

で、気がついたのですが、コメントを含めて英語なら、UTF-8なエンコードを指定せずになんだろうが、印刷できるなあと

利用したソフトウェア

  • 使ったソフトウェア
    • a2ps 上記のように日本語がないソースコードならこれが便利かな。cat -n で行番号を付けてから整形する(つまり標準入力経由)と、ファイルを指定してps出力すると明らかに印字のフォーマッティングが異なります。ソース読んでませんが、ファイルの拡張子で、強調すべき所を把握しているのでしょうね。
  • 試行錯誤の中で、最初のイメージそぐわないと判断したソフトウェア
    • gnome-u2ps --- utf8 を扱うならコレかなあと思って、一番最初に使った。a2psからの派生だが、a2psほどのオプションは制御できないので、今回はパス。ソースコードが英文だけなので、utf8を絶対使う必要がないので、がんばれなかった。
      余談ですが、オプションをソースコードで確認しようと、ソースを見たら フォント名にkochi gothicとか直に書いてあって、フォントを扱う人は実体がどうであても、kochi gothicのフォント名が別のgotichフォントを指すようにしておかないと、こういう時に困るんだろうなあと重いながらソースを見てました。
  • 思い出せなかったソフトウェア。--- gotom さんが印刷の時に便利に使っていたコマンドの記事を読んだ記憶があるのだが、どうしても思い出せなくて、Google先生にお伺いをたてても、検索キーワードが悪くて引っかからない。prnとかいう名前だったような気がするなあ。
  • 取り上げてなかったソフトウェア --- pr そういえば pr というコマンドもありましたね。比較的使い慣れた a2ps に飛びついてしまい使ってないなあ。ほかにも私が知らないだけで良い印刷用フォーマッターソフトウェアがあるんだろうなあ。多分。
PDFの作成方法
  1. 最初に、a2psで、psファイルに変換
    $ export LANG=C; a2ps /usr/share/pyshared/bottle.py -1  -o /tmp/bottle.ps
    [/usr/share/pyshared/bottle.py (Python): 30 pages on 30 sheets]
    [Total: 30 pages on 30 sheets] saved into the file `/tmp/bottle.ps'
    [27 lines wrapped]
  2. 小冊子用にページを並び替え
    $ psbook bottle.ps > bottle-book.ps
    [*] [1] [2] [*] [30] [3] [4] [29] [28] [5] [6] [27] [26] [7] [8] [25] [24] [9] [10] [23] [22] [11] [12] [21] [20] [13] [14] [19] [18] [15] [16] [17] 
    Wrote 32 pages, 132307 bytes
  3. psからpdfへ変換
    ps2pdf bottle-book.ps
  4. evinceや場合応じて、windowsのacrobatなどで内容を確認する。
印刷の設定

印刷時には、下記のチェックリストを確認しながら印刷に備えること

a2psはA4を意識しているのか、A4を2つ並べて、A3の両面印刷をしようとすると、なぜか上手く行かない。仕方ないのでA4を半分にすることで今回は問題を解決した。

  • 用紙のサイズは適切か? --- 用紙のサイズの中に、両面印刷可能かどうか決定する要素があるので間違えないように
  • 1枚の紙に2つのページを印刷する。 --- 紙の短い方の辺で折り返す指定をする。長い方の辺で折り返すと天地が表と裏で逆になる
  • 印刷一回毎に既定値に戻る場合があるので、印刷前には再度確認せよ。
最後に

とりあえず、これだけ書いておけば、次回はもうちょっと楽に印刷できるはず。何枚紙を無駄にしたか。

_ 歯ブラシ大量購入

自分好みの歯ブラシで言及していた、サンスター/バトラー歯科用 #211 12本 ふつうコンパクトヘッド6色 一般用(3列フラット) [ヘルスケア&ケア用品] サンスター/バトラー歯科用 #211 12本 ふつうコンパクトヘッド6色 一般用(3列フラット) [ヘルスケア&ケア用品]だが、楽天でEメールマーケティングを受けないように無事購入した。が、Amazonが送料無料で、買った所より安かった。ちょっと凹んだが、注文を取り消すほどではない。国内の景気の浮揚に少し貢献したと思っておくか。あんまり頑張っても時給分損だよね。(負け惜しみ(苦笑))