2016-08-05 16 views
-1

PDF Clownライブラリの "Annotation.getBox"メソッドを使用して、テキストのハイライトの位置を取得します。このようにして、ボルトまたはイタリック体の位置も検索されます。どのようにこれを避けることができますか?本当のハイライトからRetancle2Dだけを取得したい。pdfドキュメント内のハイライトから位置を取得するClown

+0

あなたのしていることを理解できるように、いくつかの重要なコードをご記入ください。問題を再現できるサンプルPDFにリンクしてください。 – mkl

+0

PageAnnotationsアノテーション= page.getAnnotations(); (注釈注釈:注釈)のための \t \t \t { \t \t \t \t highlightArea = annotation.getBox();} ...私は、PDFのページの注釈を取得し、そこに位置を取るが、私はの位置もいつか取得します太字またはイタリックのテキスト。 申し訳ありませんが、サンプルPDFは機密ファイルのためリンクできません。 – godani

+0

次に、問題を再現できる、機密ではない別のファイルを探してみてください。あなたが何かを見つけることができない場合は、チャンスはあなたのPDF自体に問題があります。 – mkl

答えて

0

残念ながら、OPはサンプルPDFを共有できませんでした。彼はまた、ごくわずかなコード断片を提供していました。

PageAnnotations annotations = page.getAnnotations(); 
for (Annotation annotation : annotations) 
{ 
    highlightArea = annotation.getBox(); 
} 

このように、彼は最終のBox値に変数highlightAreaを設定します。したがって、以下ではこれだけのようなコメントにOPによって提供さ

コードフラグメントが見えます...推測することができます指定されたページのアノテーションの要素。最後の注釈は、おそらく完全にハイライト注釈されていないことを

  • が、いくつかの:highlightAreaが強調表示されたテキスト以外のコンテンツ(OPの場合は時々いくつか太字や斜体)を含有してもよい理由

    考えられる理由の他のタイプ。

  • 最終的なアノテーションがハイライトアノテーションであると仮定すると、そのボックスのすべてのコンテンツが強調表示されているわけではなく、アノテーション辞書エントリまたはアノテーションのアピアランスストリームによって定義されたいくつかのカスタム領域の四角形のみで表示されます。 PDF仕様の後者の場合与えるセクション12.5.6.10 "テキストマークアップ注釈" は、

QuadPointsアレイ(必須)を指定する8×N番号のアレイデフォルトのユーザー空間でn四角形の座標。各四角形は、注釈の基礎となるテキスト内の単語または連続する単語のグループを含むものとする。各四角形の座標は、順序

XYXYXY 3に与えられなければなりませんx反時計回りの順 に四辺形の4つの頂点を特定4Y

(図64参照)。テキストは、点(XY )及び(XY )を接続するエッジ に対して配向されなければなりません。

注釈辞書のAPエントリが存在する場合、QuadPointsに優先 を講じなければなりません。参照表168および12.5.5、「外観ストリーム。」

は、指定されたけれども、Adobe Readerは、頂点を注文しない、を用心して指定されたとして、それはさらに、適切順に座標を持つハイライトを表示しません。 。 stackoverflow Q & A "PDF Spec vs Acrobat creation (QuadPoints)"これは古いですが、それでも現在のAdobe Acrobatバージョンに適用されます。


あなたannotationTextMarkupのインスタンスである場合は、快適にTextMarkup方法getMarkupBoxesを使用して四角形を取得することができます。

さらに、Annotationの方法getAppearanceを使用してアピアランスストリームを取得できます。しかし、出現ストリームがどの領域をハイライト表示するかを決定することは、それほど重要ではないかもしれない。

+0

お返事ありがとうございます。申し訳ありませんが、別のファイルで問題を再現することはできません。私は、問題は実際に私のPDFファイルにあると思う。 – godani

関連する問題