前回の記事では、SVG形式による図(グラフ)を入れてみました。新しいウェブブラウザでご覧の方は表示されたことと思います。

私自身では、Safari 5とInternet Explorer 9で表示されることを確認しました。非対応のブラウザの方、ごめんなさい。見られなくても構わないと決めたので、別形式の画像の用意などといった救済策は行なっておりません。

そのグラフ、分かる方はすぐにピンと来たと思いますがExcelで作りました。「どうせならベクタ画像で貼りたいなあ」と、つい魔が差したのです。

そこで、とっさにクリップボードの中のEMFをファイルを出力するプログラムを書きました。GetClipboardData(CF_ENHMETAFILE)してCopyEnhMetaFileするだけです。意外なことにそのようなプログラムは軽くググった程度では見つかりませんでした。

あとはInkscapeでEMFからSVGへ変換、テキストエディタでSVGを開いてフォント指定をsans-serifに修正、gzipにかけてアップロードという手順を踏みました。余談ですが、InkscapeでExcelグラフを「貼り付け」したら、ビットマップ画像扱いになってしまいましたので使えませんでした。

せっかくなので、その「クリップボードの中のEMFをファイルを出力するプログラム」のソースはGitHubに置きました: egtra/cb2emf。GitHubとGitを使う練習です。


ついでなので、バイナリ(EXEファイル)も置いておきます: cb2emf.zip。おそらくNT系Windowsなら動きます。コマンドプロンプト上でcb2cmf output.emfのように出力ファイル名を引数に付けて呼んでやってください。

今回はSVGにしましたが、PDFやEPSに変換すればLaTeXで何か書くときにも使えると思っています。


2011年5月20日1時46分: コンパイルオプションを変更してビルドし直したため、cb2emf.zipを差し替えています。


スポンサード リンク

この記事のカテゴリ

  • ⇒ Excelのグラフ(EMF)をSVGにする
  • ⇒ Excelのグラフ(EMF)をSVGにする