markdown-pdfで画像を挿入する

前回のエントリーでmarkdownファイルをpdfファイルにすることができ、めでたしめでたしとなったはずなのですが、一点困ったことがありました。 画像の挿入です。インターネット上の画像に関してはURLを貼り付けることで画像が挿入されるのですが、ローカルの画像の場合にはうまくいきません。ちなみにKobitoなどは画像をドロップすると専用サイトに画像がアップロードされるため、このようなことは発生しないのだそうです。 ネットを検索すると「画像の存在する場所のフルパスで記載すれば大丈夫」というようなisuueも見つかるのですが、どうやってもうまくいかず。

仕方ないのでいくつ回避策を考えてみました。

  • 画像をネット上のストレージ(OneDriveやDropboxなど)に配置する
  • そもそもmarkdown-pdfではなくpandocなどに乗り換える

この2つの手法で考えてみました。

画像をネット上のストレージ(OneDriveやDropboxなど)に配置する

一番手っ取り早いかもしれない方法でかつ利点も多そうな気がする手法。

まずはOneDriveにて実験。画像をアップロードし、共有リンクを作成しURLを入力してみたのですが、うまくいきません。 作成される共有リンクが単なるURLに加えて認証キー関連の情報も付加しており、そこで処理がうまくいかないのだと思われます。

次はDropbox。Publicフォルダにファイルをアップロードして、公開リンクを作成します。このリンクをmarkdownに張り付ければ無事に画像が張り付けられます。(右クリックで【公開リンクをコピー】が表示されるのでそれを使います。)

f:id:ueponx:20160324230435j:plain

そもそもmarkdown-pdfではなくpandocなどに乗り換える

 いろいろ悩みながら、それでもいいような気もしました。Pandocなどはdocx形式にも出力することができるので、pdfへの出力にこだわらず、docx形式を経由し、その後Wordなどでpdf化してもいいのかも。特にWindows10では仮想pdfプリンタが標準で組み込まれているのでそれらしい体裁で印刷まで持っていければ問題ので。

とはいえ、個人的には意外とこのmarkdown-pdfの使い勝手がよく、気に入っていることもあったので何とかできないかと思って、もやもやしていました。

(注)Pandocはpdfにも対応はしているのですが、pdfに出力するためには別途TeXをインストールする必要があるのでかなり躊躇します。(昔TeXに苦労したため)

別の方法も検討

少々の手間はかかるものの何とか目的を果たすことはできそうです。

Dropboxを使えばスマートフォンの写真アップロード連携機能などとも合わせてかなり便利につかえるはずです。

あとは個人的な理由になるのですが、 自分の作業するスペースが常に安定してネットが使えないこと(新幹線など)も考慮すると、もう少し違う手法もあるのかなと思って思いついたのが次の方法。

  • ローカルサーバを開いて、そこに画像ファイルを設置しアクセスする。

一番最初の方法と大きく変わりはないので、なんとなく気が付くのが遅れたって程度のアイデア。ただ、作業上はネットの接続に依存しなくてもよいのは利点と思えます。

最初は仮想マシンなども考えてみたのですが、特別な処理が必要でもないのでローカルにWWWサーバを開設できるフリーソフトを使わせてもらっています。個人的には「BlackJumboDog」を使わせてもらっています。(←他の機能もあるのでお勧めです)

ということでnode.js + markdown-pdf + BlackJumboDogで快適なmarkdown生活がはじめられそうです。 それにしても、この手の情報って直接的に書いてあるところがなかったんですが、需要がないのでしょうか?

/* -----codeの行番号----- */