web-dev-qa-db-ja.com

PDFファイルからベクトルを抽出する方法は?

PDFファイル内にベクター画像が含まれています(インターネットからダウンロードしたため、オリジナルはありません)。

ベクターを抽出して他の画像にオーバーレイできるようにしたい。印刷媒体またはWebサイトで使用してください。

PDFファイルから特定のベクトルを抽出するにはどうすればよいですか?

PDFファイルからベクトルを抽出できるソフトウェアはありますか?(できれば無料です)。

55

Inkscape を使用できます。これは無料のオープンソースでクロスプラットフォームのベクターグラフィックアプリケーションです。 PDFファイルをインポートし、埋め込まれたベクターを選択することができます。その後、それらを編集して好きなように処理することができます。

詳細なドキュメント は、InkscapeのWebサイトで入手できます。

Linuxでは、X11が必要になることに注意してください。ネイティブのWindowsバージョンもあります。

または、Adobe Illustratorを試してみることもできます(有料ソフトウェア)。

50
slhck

Inkscapeはそれを行うための優れた方法ですが、X11が不足している場合は、コマンドラインでpoppler-utilsを使用してPDFの個々のページをSVG形式に抽出することもできます。たとえば、30ページだけを抽出するには:

$ pdftocairo -f 30 -l 30 -svg  somehugemanual.pdf  myextractedpage.svg

次に、お気に入りのベクターエディター(私はInkscape)を使用して、画像をテキストから分離できます。

または、ハードコアのコマンドラインユーザーであれば、EPS(カプセル化されたポストスクリプト)に抽出し、sedを使用してすべてのテキストを非表示にすることができます(pdftocairoのBT行とET行の間にある)。方法は次のとおりです。

$ pdftocairo -f 30 -l 30 -eps  manual.pdf  - | sed '/^BT$/,/^ET$/ d' > myimage.eps

また、X11の使用を本当に気が狂っている場合は、Ghostscriptのeps2epsコマンドを使用して、コマンドラインから画像の境界ボックスを縮小することもできます。

$ eps2eps myimage.eps myimage-bb.eps

私はこれをテストしましたが、うまくいきます。ただし、個人的には、Inkscapeを使用する方が簡単です。

25
hackerb9