2012年9月15日土曜日

svgはpdfとも競合する技術かも知れない→知れなかった

前々から感じていたことに,svgの文書としての特性を考えると,出力装置の解像度に依存しない点やハイパーリンクを貼ることが出来たりする点でpdf形式の文書にも近い点がある.もちろんpdfの方が目次を挿入することが出来たりと高機能なんだけれども.

ここでpdfの使い方を考えてみると,仮想的なプリンターを導入し印刷結果を紙ではなくpdf形式に出力するツールが思い浮かぶ.印刷レイアウトを確認する場合に紙を無駄にしないため便利な機能なんだけれど,ちょっと調べてみるとinkscapeではpdfファイルをインポート出来るっていうじゃない.

inkscapeはsvgを編集するためのツールだ.これはつまりpdfをsvgに変換することが出来るってことじゃないか.ここまでを総括すると,任意のプリンタ出力結果はsvgに変換できるということだ.svgはpdfと異なりwebブラウザだけでプラグインなしに表示することが出来,この点はsvgの方が使い勝手が良い.

ここまでは机上の空論なので,実際に試してみた.当方の環境はubuntu12.04なので,
  1. chromeでこのブログを表示し,cups-pdfで導入した仮想プリンタを使ってpdfファイルに印刷出力する.
  2. 上で得られたpdfファイルをinkscapeでsvgに変換する.
    なお,変換可能な範囲はpdfにおける任意の1ページのみ.
としたところ,次のような結果が得られた.
  • 得られたsvgは多少レイアウトが狂うものの,そのままwebブラウザ(firefox,chrome,opera)で表示可能だった.
  • ファイルサイズは638.5kbから938.2kbに増大した.
windows環境でどうなるかは判らないが,結構興味深い動作だと思う.

それで,これが何の役に立つかというと・・・正直何に応用出来るかイメージが沸かないけれど,もしpdfを介さず直接svgに印刷出力することが出来るなら,pdfにこだわる必要が無くなるなぁと思った次第.もちろんpdfの存在意義はそれ以外にもあるが,印刷出力に関しては選択肢が広がる可能性があるなぁと.

追記)
ubuntuだと直接svgに印刷出力する機能が有るみたいだが,調べてみるとsvg1.2を使っているようで,page要素やらpageSet要素やらこれはもしや幻のsvgPrintではないか?
http://dev.w3.org/SVG/modules/print/master/SVGPrint.html
やっぱりコレだ.立ち消えになった仕様だ.

つーことは,元々はこのような使い方を想定はしていたんだな.それで何らかの問題が発生して,無かったことにされたわけで.つまりsvgをpdfっぽく利用するのは理屈上は出来るかも知れんけれど,pdfでいいんじゃね?って判断されたのかも知れん.

もそっと調べてみるとああ,pdfが標準化されたタイミングと時期が一致する.なるほど,これは逆に考えるとsvgをpdfっぽく使う(≒印刷出力として用いる)のは止めておけってことになるな.あくまでsvgはグラフィックを描く為の仕様というわけか.

0 件のコメント:

コメントを投稿