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


51

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

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

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

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


@slhck:Vector graphicsを意味しました。私はInkscapeを使用しましたが、期待どおりに機能します。コメントを回答として入力してください。そうすれば、承認済みとしてマークできますか?
Devdatta Tengshe

回答:


49

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

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

LinuxではX11が必要です。ネイティブのWindowsバージョンもあります。

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


2
LinuxではX11が必要です-ネイティブのWindowsバージョンもあります(PDFからベクトル描画を抽出するのにうまく使用しました)。
マークレイトンフィッシャー

23

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を使用する方が簡単です。


+1コマンドラインですべてのテキストを削除します。しかし、すべての画像も削除する方法を知っていますか。ベクターグラフィックのみが残っているソリューションを探しています:)
clarkk

これはあなたのために働きますか?cat foo.eps | sed '/^8 dict dup begin$/,/^Q$/ c Q' > nobitmaps.eps
hackerb9

1
しかし、その後、epsファイルにベクターグラフィックが含まれているかどうかを確認することは可能ですか?:)
clarkk

1
Ghostscriptのeps2epsを使用して、最小の境界ボックスにそれを蒸留し、完全に空かどうかを確認できると思います。しかし、これは新しい質問になり始めています。気軽に質問してください。答えない場合は、誰かが答えます。
hackerb9

1
@ hackerb9おかげで、epsは読み取り可能になりましたが、画像の密度は非常に低く、周囲にはテキストが残っています。pdfはこちら、画像は7ページ目
rtrtrt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.