LoginSignup
2
2

More than 5 years have passed since last update.

Google Drive にアップしたテキストファイルの見栄えをよくする (1.PDF化)

Last updated at Posted at 2013-11-17

ここ1-2ヶ月で Google Drive を使いはじめたのですが
あまりの便利さに, すっかり手放せなくなってしまいました.

PC で作成したメモ書きを, ところ構わず iPhone で読めるのがいいです
ファイルの同期も一瞬ですし

Google Drive を使う前は, 作成したメモをメールに貼付けて 自分宛にメールしていましたが
今後はドライブにファイルをガンガン突っ込んで,
スマホで閲覧というスタイルでメモを運用しようと思います.

さて そのテキストファイルなのですが, 実は iOS 上でみるとあまりきれいに表示されません.
一手間かけて PDF 化すると少しだけ読みやすくなります.

左が iOS Google Drive アプリ上で見たテキストファイル, 右が PDF ファイルです.

compareTxtPdf_.png

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 作成ツールで
ghostscripttxt2pdf.pl も試してみたのですが
日本語の変換(とフォント指定の面倒さ)がうまくクリアできませんでした.
また, 必要なリソースをインストールしなければならない, というのも不採用理由です.

次回に続きます.

余談 : CUPS について


ウィキペディアのリンク:
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
$ 
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2