ここ1-2ヶ月で Google Drive を使いはじめたのですが
あまりの便利さに, すっかり手放せなくなってしまいました.
PC で作成したメモ書きを, ところ構わず iPhone で読めるのがいいです
ファイルの同期も一瞬ですし
Google Drive を使う前は, 作成したメモをメールに貼付けて 自分宛にメールしていましたが
今後はドライブにファイルをガンガン突っ込んで,
スマホで閲覧というスタイルでメモを運用しようと思います.
さて そのテキストファイルなのですが, 実は iOS 上でみるとあまりきれいに表示されません.
一手間かけて PDF 化すると少しだけ読みやすくなります.
左が iOS Google Drive アプリ上で見たテキストファイル, 右が PDF ファイルです.
PDF ファイルが ちょっとだけ見栄えがいいですね.
(PDF は後述の手順で作成したもの. PDF のほうが行間詰まっていて, ページ単位で画像になっているのでピンチズームしたときの見えかたが自然)
とは言え
テキストファイルを編集するたびに PDF を作成するのはめんどうくさいです.
そこで, Google Drive 上の所定のフォルダに テキストファイルを配置すると
閲覧用 PDF ファイルが自動作成される処理を仕掛けてみることにしました.
二回に分けて, 方針とサンプルを記します.
方針
- 処理のトリガーは, PC上の所定フォルダにファイルを配置したタイミング. フォルダアクションでこれを実現する
- テキストファイルから PDF ファイルの作成処理は, Mac OS X デフォルトで利用できる
cupsfilter
を利用
1. テキストファイルから PDF を作成する
以下のコマンドで 作成できます.
cupsfilter input.txt > output.pdf
対象がテキストなので, 処理は一瞬です.
# 実行時のコンソール出力
$ cupsfilter memo.txt > memo.pdf
DEBUG: argv[0]="cupsfilter"
DEBUG: argv[1]="1"
DEBUG: argv[2]="tgck"
DEBUG: argv[3]="memo.txt"
DEBUG: argv[4]="1"
DEBUG: argv[5]=""
DEBUG: argv[6]="memo.txt"
DEBUG: envp[0]="<CFProcessPath>"
DEBUG: envp[1]="CONTENT_TYPE=text/plain"
DEBUG: envp[2]="CUPS_DATADIR=/usr/share/cups"
DEBUG: envp[3]="CUPS_FONTPATH=/usr/share/cups/fonts"
DEBUG: envp[4]="CUPS_SERVERBIN=/usr/libexec/cups"
DEBUG: envp[5]="CUPS_SERVERROOT=/private/etc/cups"
DEBUG: envp[6]="LANG=en_US.UTF8"
DEBUG: envp[7]="PATH=/usr/libexec/cups/filter:/usr/bin:/usr/sbin:/bin:/usr/bin"
DEBUG: envp[8]="PPD=/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/Resources/Generic.ppd"
DEBUG: envp[9]="RIP_MAX_CACHE=8m"
DEBUG: envp[10]="USER=tgck"
INFO: cgtexttopdf (PID 13078) started.
DEBUG: Page = 612x792; 17,19 to 595,773
DEBUG: No italic font!
DEBUG: No bold-italic font!
DEBUG: No bold font!
INFO: cgtexttopdf (PID 13078) exited with no errors.
$
そもそも cupsfilter って何者? って疑問がありますが
Unix で標準化された印刷システム である, CUPS に含まれるツールとのこと.
$ which cupsfilter
/usr/sbin/cupsfilter
cupsfilter
の他の PDF 作成ツールで
ghostscript
、txt2pdf.pl
も試してみたのですが
日本語の変換(とフォント指定の面倒さ)がうまくクリアできませんでした.
また, 必要なリソースをインストールしなければならない, というのも不採用理由です.
次回に続きます.
余談 : CUPS について
ウィキペディアのリンク:
[ Common Unix Printing System ] (http://ja.wikipedia.org/wiki/Common_Unix_Printing_System)
→ Web共有できる PDF 生成サーバらしい
ブラウザで次の URL にアクセスすると, 設定画面が表示される
http://localhost:631/
# デーモンはこれですかね
$ ps -ef | grep cupsd | grep -v grep
0 13009 1 0 0:00.02 ?? 0:00.03 /usr/sbin/cupsd -l
$