これが PDFBox でどのように/できるかはわかりませんが、この機能は Logical Structutre/Tagged PDF と呼ばれる PDF 仕様のセクションに関連していると言えます。 .
使用しているツールでサポートされていると仮定すると、この情報を取得するには 4 つの主な手順に従う必要があります (次の説明のために投稿したサンプル PDF ファイルを使用します)。
PDF ファイルの内部構造にアクセスできると仮定すると、次のことを行う必要があります。
1- ページ コンテンツを解析し、関心のある画像をラップする Tag 要素の MCID 番号を見つけます。
ページの内容:
BT
/P <</MCID 0 >>BDC
/GS0 gs
/TT0 1 Tf
0.0004 Tc -0.0028 Tw 10.02 0 0 10.02 90 711 Tm
(This is an image test )Tj
EMC
ET
/Figure <</MCID 1 >>BDC
q
106.5 0 0 106.5 90 591.0599976 cm
/Im0 Do
Q
EMC
あなたのイメージ:
2- ページ オブジェクトで、キー StructParents を取得します。
3- ここで、構造ツリー (すべての PDF ファイルのルート オブジェクトであるカタログ オブジェクトのキー StructTreeRoot) を取得し、その中にある ParentTree を取得します。
4- ParentTree は、要素のペアを見つけることができる配列で始まります (詳細については、PDF 仕様の Number Trees を参照してください)。この特定のツリーでは、各ペアの最初の要素は手順 2 で取得した StructParents キーに対応する数値であり、2 番目の要素はオブジェクトの配列であり、インデックスは手順 1 で取得した MCID 値に対応しています。 、ここで画像の MCID 値に対応する要素を検索すると、PDF オブジェクトが見つかります。このオブジェクト内に、代替テキストがあります。
簡単ですね。
この回答で使用したツール:
PDF Vole (iText に基づく)
Amyuni PDF Analyzer