PDF変換ツールとしてのGhostscript(ベクタ画像出力編)

何回か紹介してきた,Ghostscriptですが,
今回も再度、その続編です。

Ghostscriptのマニュアル等では,以前紹介した

  • JPEG
  • PNG
  • PNM
  • TIFF
  • BMP

といった,ラスタ画像しかサポートしていないように見受けられますが,
実は,Ghostscriptは,SVG出力ができるようです.(最近気づきました)

《 Ghostscriptヘルプのサポートデバイスを"svg"で検索》

> gs -h | grep svg
   st800 stcolor sunhmono svg t4693d2 t4693d4 t4693d8 tek4696 tiff12nc
>

ですから,前回のJPEG生成の時のように,

《 GhostscriptコマンドラインでPDFファイルからSVGファイルを生成》

> gs -dSAFRE -dBATCH -dNOPAUSE -sDEVICE=svg -sOutputFile=gsSvgTest.svg gsSvgTest.pdf

とするとで,SVGの出力を得ることができます.

変換元のPDFファイル  変換後の画像ファイル

(上左)PDFファイル から (上右)JPEG画像ファイル が生成されます
(上画像クリックで元のPDFファイル・変換された画像ファイルが開きます)

しかし,まだ開発途上のようで,複数ページPDFの場合に,
JPEG等の場合のようにページ毎の画像ファイル生成ができません.

《 Ghostscriptコマンドラインで複数ページのPDFファイルから,ページ毎のJPEGファイルを生成》

> ls
> gs -dSAFRE -dBATCH -dNOPAUSE -sDEVICE=jpeg -sOutputFile=Test-%d.jpg Test.pdf
> ls
Test-1.jpg            Test-2.jpg
>

《 Ghostscriptコマンドラインで複数ページのPDFファイルから,ページ毎のSVGファイル生成を試みるも失敗》

> ls
> gs -dSAFRE -dBATCH -dNOPAUSE -sDEVICE=svg -sOutputFile=Test-%d.svg Test.pdf
> ls
Test-1.svg
>

ですから,この場合,

《 Ghostscriptコマンドラインで複数ページのPDFファイルから,ページ毎のSVGファイル生成する方法》

> ls
> gs -dSAFRE -dBATCH -dNOPAUSE -sDEVICE=svg -dFirstPage=1 -sOutputFile=Test-1.svg Test.pdf
> ls
TestResult-1.svg
> gs -dSAFRE -dBATCH -dNOPAUSE -sDEVICE=svg -dFirstPage=2 -sOutputFile=Test-2.svg Test.pdf
> ls
Test-1.svg    Test-2.svg

のように,ページ毎にSVG画像を生成するように指定してあげなければいけません.
SVGへの対応は,Ghostscript 8.xの辺りから対応したようなので,
もう少し,育つのを待つ必要があるのかもしれません.

biz-Stream詳細情報  biz-Stream資料請求

超高速!!高機能!! Web帳票ソリューション biz-Stream

オンデマンドかつリアルタイムにビジネスドキュメントを生成する帳票ソリューション