私はpdfから画像抽出を自動化するために約1週間試してきました。残念ながら、私がここで見つけた答えは役に立たなかった。 pypdf2を使用して同じコードで複数のバリエーションを見たことがありますが、いずれも['/XObject']
であり、結果はKeyError
となります。Pythonを使用してPDFでストリームを検索して識別する
pypdf2
の辞書では見つからないストリームに隠れているようです(再帰的に構造全体を調べても、私が見つけることができるすべての間接オブジェクトに対して.getObject()
が呼び出されます)。
pypdf2
を使用しています。フィルタを使用してストリームを検索するには、Notepad++
を使用してpdfから1ページを書き込んで開きました。
pdfrw
は私がストリーム(他の人を取得する方法がない手がかり)を取得するためにPdfReader(path).pages[page].Contents.stream
を使用できるように、やや役立ちました。私が見つけることができるものから
(それはまた、正と負の両方の、浮動小数点数を多く含む)
/Part <</MCID 0 >>BDC
:zlib
を使用して
は、私はそれを解凍し、始まる何かを得ました、BDC
にはghostscriptと関係があります。
この時点で私はあきらめて助けを求めることにしました。
、少なくとも、すべてのストリームを抽出し(とFlateDecode
タグを識別?)するためのPythonのツールがあります
そして、私はそこに隠されているものを識別するための方法ですが?私はいくつかのイメージフォーマットの開始タグを期待していましたが、これは明らかにそうではありません。この結果をさらに解析して、そこに隠れる可能性のある画像を見つけるにはどうすればよいですか?
私は適切に表示されているPDFに適用できるものを探しています。さらに解析するツール、ストリームの意味を理解するのに役立つツール、さらには何が起こっているのかを理解するのに役立つリファレンスもあります。
編集:パトリックが指摘したように、間違った木を鳴らしていたようです。 Notepad++
でPDFを開くときや、PDFを解析するためのさまざまなPythonスクリプトを実行しているときに、xObjects
が見つからなかったので、私はストリームに行きました。私はxObject
タグなしで、画像であると思われるものを見つけることができましたが、情報は圧縮されていませんが、ストリームタグのように見えます。
多くのツールがPDFファイルを生成しています(境界線の多くは欠陥です)、問題を引き起こす特定のドキュメントのサンプルを見ることなくアドバイスをするのは難しいです。共有できるサンプルはありますか? –
@PauloScardine申し訳ありませんが、私は自分の言葉が特定のPDFのヘルプを探していることを意味することを認識しています。 PDF文書は正しく読者に表示され、問題のないページを抽出することができます。ストリームの内容の参照を見つけることができません(または、私にとって簡単に行うことができるすべてのPythonツール。これもうまくいくでしょう)。 とにかく、適切に表示されているPDF文書で動作するものを探してください。 – user1999728
あなたは*から始まる何かを得ました: '/ Part <> BDC' *と*この時点で*を諦めましたか?どうして? PDFコンテンツストリームに正常に到着しました。ストリームコンテンツを解釈するためには、PDF仕様ISO 32000-1を採択するだけでした。 – mkl