PDFファイルから背景画像を抽出しますか?


8

私が働いている建物の地図を含むPDFファイルがあります。ここ:

http://www.libsys.und.edu/dev/FloorPlans_All.pdf

元のソースファイルが失われ、マップ画像を抽出するよう求められました。できれ、それらの上にオーバーレイされたテキストとアイコンはありません。これは厄介なほど難しいことが判明しています。

これまでに、次のGUIプログラムを試しました。

  • Adobe Reader:テキストは選択できますが、背景画像は選択できません
  • FoxIt PDF Viewer:テキストを選択できますが、背景画像は選択できません
  • Ubuntu 10.10のXPDF:mesはテキストを選択できますが、背景画像は選択できません

また、次のコマンドラインプログラム:

  • pdfimages:バスルームを示すアイコンを抽出しますが、背景画像は抽出しません
  • pdftohtml:pdfimagesと同じですが、マークアップが不十分なHTMLドキュメントになります
  • pdfextract:pdfimagesと同じ
  • 変換:画像は正常に保存されましたが、テキストが焼き付けられています

テキストエディターで手動でPDFを開き、ストリームオブジェクトを新しいファイルに貼り付け、.jpg、.png、または.bmp拡張子を付けて保存することで、ストリームオブジェクトを抽出しようとしました(それぞれ順に)。PDFファイルの内部構造について私がほとんど知らないことを考えると、これが機能しなかったのは当然のことです。

それで...テキストとアイコンを取得せずにこのものから地図画像を取得する方法はありますか?


私が通常この種のタスクを解決する方法:(1)qpdfバイナリ部分をできるだけASCIIに変換するために使用します。(2)私は(トグルすることにより、容易かつ外部参照テーブルに損傷を与えることなく達成することができ、画面上やプリントアウトに表示したくないことをすべてのテキストを非表示にするには、テキストエディタを使用見えないフラグ)。(3)Ghostscriptを使用して結果を再蒸留し、そのサイズをできるだけ小さくします。-残念ながら、手順を説明するためにファイルをダウンロードすることはできません...
Kurt Pfeifle

回答:


7

XPDFライブラリは、LinuxおよびWindows用のhttp://www.foolabs.com/xpdf/download.htmlからダウンロードできます。次に実行するpdfimages -j input.pdf outputと、あなたが得るべきであるoutput-000.jpgoutput-001.jpgなど。また、チェックアウトhttp://linuxcommand.org/man_pages/pdfimages1.htmlをより多く使用オプションのために。


1
訂正、画像はPDFに直接埋め込まれたベクターグラフィックであるように見えます。ベクトルグラフィックスを処理するInkscapeやAdobe Illustratorなどで開いてみてください。
mybluevan '27年

ああっ!地図はベクターグラフィックです-私がそのような問題を抱えているのも不思議ではありません!Inkscapeは問題なく開いたようで、心ゆくまで編集できます。ありがとう!
マーティンは

2

わかりました、これを5分間いじってみたところ、私の分析では、PDFは当初考えていたよりもさらに奇妙で、それは何かを言っているということです。

予算はわかりませんが、Acrobat Pro Extended 9では次のものを使用できます。

A.ツール、高度な編集、タッチアップテキストツール

-Select All
-Right click, Properties
-Text tab
-Select a standard font (e.g. Arial), close
-Hit Delete

B.ツール、高度な編集、タッチアップオブジェクトツール

-オブジェクトを選択し(すべてではなく、ほとんどを取得できます(たとえば、学生のコンピューターのアイコンは選択できません))、削除します

簡単なクリーンアップ後のページ1は次のとおりです。http//dl.dropbox.com/u/7434256/p1test.pdf


奇妙な表現は控えめです。このファイルの履歴はわかりませんが、Acrobat Pro 8で問題が発生しました。Inkscapeはトリックをしました、しかし、善に感謝します。次に、すべてを適切なSVGに変換して、ラスターグラフィックを生成できるようにします...
Will Martin

1
元のPDFで行った仕事(残念ながら、私にはもう利用できません)は最高ではありません。あなたのファイルはまだ〜3メガバイトです。たくさんの未使用のオブジェクトが含まれています。/AAオペレーターのインスタンス(自動アクション)も含まれ、潜在的に危険なPDFファイルになります。Ghostscriptは、表示されているコンテンツを失うことなく、60 kByteまで圧縮できました。(ファイルに含まれるメタデータは17の異なるオブジェクトに広がっています。メタデータalsは、2011-01-18に作成されて以来、そのファイルには17の異なるリビジョン/変更があることを示唆しています。)
Kurt Pfeifle

@pipitasこれをもう一度チェックしてよかった。Apacheがそのサーバーでダウンしていたことがわかりました。元のPDFが再び利用可能です。それでもまだ迷惑です。その後、マップがAutoCAD DXFファイルから生成されたことを発見しました。これは、非常に醜いベクターグラフィックスを作成します。各マップには数百の個別のパスがあり、各パスは2つの終点を持つ1本の線です。これにより、建築家が壁などの個々の部分を変更するのが容易になったと思われますが、それ以外の場合はお尻の痛みです。
マーティンは

@Will Martin:痛い!、これは内部の隠しファイルの更新を多く含むかなり大きなPDFファイルです(そのため:ユーザーの観点からのゴミ)。-16 Mバイトの16ページは、単純に見えるベクトルグラフィックスではかなり「重い」。少なくとも16の異なるレイヤー(PDF用語では「オプションコンテンツ」)、各ページに1つ。テキストエディターだけでこの混乱を
回避したく

2
@pipitas:ありがとう-公正なポイント。私が「仕事」として何をしたかは説明しませんが、私はAcrobatで可能であることを(数分間遊んだ後)実証しているだけでした。返金保証とそのすべて。;)
クレイグH

1

Craig Hによって作成されたPDFを取得し、Ghostscriptで実行して少し最適化します。Windowsでは、コマンドラインは次のとおりです。

gswin32c.exe ^
   -o p1test-gs-optimized.pdf ^
   -sDEVICE=pdfwrite ^
   -dPDFSETTIINGS=/prepress ^
    p1test.pdf

Linux / Unix / Mac OS Xの場合:

gs \
   -o p1test-gs-optimized.pdf \
   -sDEVICE=pdfwrite \
   -dPDFSETTIINGS=/prepress \
    p1test.pdf

これにより、コンテンツを失うことなく、ファイルのサイズが3.000 kByteから約60 kByteに下がります。次に、それをInkscape(またはInDesign、Illustratorなど)にインポートすると、はるかに高速になります。


1

...あなたはPhotoshopを試すことができます。それはPDFを読み込み、それはPSで発生した「可能」であり、おそらくまだレイヤーがあります...しかし、それは非常に長いショットです。


0

Linux環境では、pdfmodを使用してすべての画像を一度に抽出しました。https://wiki.gnome.org/Apps/PdfModを参照してください。Ubuntuユーザーの場合は、https://apps.ubuntu.com/cat/applications/pdfmod/

Ubuntuにダウンロードしてインストールするには、と入力するだけで十分sudo apt-get install pdfmodです。

  • pdfmod GUIを起動します(pdfmodダッシュボードまたはコマンドライン端末に入力します)。
  • PDFドキュメントを開く
  • すべてのページ(または画像を抽出するページ)を選択します
  • [編集]メニュー項目には、選択した範囲内で抽出できる限り多くの画像を抽出するオプションが表示されます(export n imagesnは適切な数)。このコマンドにアクセスするには、選択部分をマウスでホバーし、ローカルメニューをアクティブにします(右利きの場合は右クリック)。
  • これを続行すると、画像を保存する場所を選択する新しいウィンドウが開きます。

お役に立てれば。


ソフトウェアの推奨方法については、「ソフトウェアの推奨方法」を読んでください。リンクだけでなく、たとえばソフトウェア自体に関する追加情報や、問題の問題を解決するためにそれを使用する方法を提供します。コマンドラインの例をいくつか含めることもできます。
DavidPostill

@DavidPostill。これを指摘してくれてありがとう。できたと思います。
XavierStuvw 2016

はるかに良い...;)
DavidPostill

私は自分の投稿への回答から何を要求できるかを理解しています:-)
XavierStuvw

-1

画面でドキュメントを開き、画像を拡大してできる限り大きくしますが、すべて表示されます。alt + prnt scrn(またはオペレーティングシステムの同等のキー)を押すと、プログラムのスクリーンショットが表示されます。次に、ペイントを開くか、お気に入りの画像エディター(photoshop、gimpなど)を画像に貼り付けて、不要なものを切り取ります。


これには、スクリーンショットの画像の背景画像の上にあるアイコンも含まれ、さらに画面の解像度が使用されます。もっと良い方法があるはずです。
ザキエル2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.