PDF Clownライブラリの "Annotation.getBox"メソッドを使用して、テキストのハイライトの位置を取得します。このようにして、ボルトまたはイタリック体の位置も検索されます。どのようにこれを避けることができますか?本当のハイライトからRetancle2Dだけを取得したい。pdfドキュメント内のハイライトから位置を取得するClown
答えて
残念ながら、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参照)。テキストは、点(X、Y )及び(X、Y )を接続するエッジ に対して配向されなければなりません。
注釈辞書のAPエントリが存在する場合、QuadPointsに優先 を講じなければなりません。参照表168および12.5.5、「外観ストリーム。」
は、指定されたけれども、Adobe Readerは、頂点を注文しない、を用心して指定されたとして、それはさらに、適切順に座標を持つハイライトを表示しません。 。 stackoverflow Q & A "PDF Spec vs Acrobat creation (QuadPoints)"これは古いですが、それでも現在のAdobe Acrobatバージョンに適用されます。
あなたannotation
がTextMarkup
のインスタンスである場合は、快適にTextMarkup
方法getMarkupBoxes
を使用して四角形を取得することができます。
さらに、Annotation
の方法getAppearance
を使用してアピアランスストリームを取得できます。しかし、出現ストリームがどの領域をハイライト表示するかを決定することは、それほど重要ではないかもしれない。
お返事ありがとうございます。申し訳ありませんが、別のファイルで問題を再現することはできません。私は、問題は実際に私のPDFファイルにあると思う。 – godani
- 1. PDFからテキストへの位置データの取得方法
- 2. PDF Clown:リストの作成
- 3. Android:SimpleCursorAdapterから位置を取得
- 4. マウス位置からDataGridセルを取得
- 5. UIButtonから位置座標を取得
- 6. iframe内の要素のドキュメント位置
- 7. PDF Clownはテキストをレンダリングしません
- 8. リスト内の位置を取得してからWebビューを表示する
- 9. スクリプトを使用してpdfドキュメントからテキストを取得
- 10. iOS - ウィンドウ内のビューの位置を取得しますか?
- 11. コントローラのナビゲータからユーザの位置を取得する
- 12. 別のドメインを表示している別のウィンドウからドキュメントの位置を取得する
- 13. アダプタの位置から値を取得する方法
- 14. jQueryからレスポンスヘッダの位置を取得するには?
- 15. .getSelectedItem()の文字列から位置を取得する方法
- 16. iOSのマップピンから位置を取得する方法
- 17. MySQL:クエリからレコードの位置番号を取得する
- 18. JMapViewerワールドマップからマウスのクリック位置を取得する方法
- 19. Googleマップから位置の座標を取得する方法
- 20. ドキュメント本体に対する現在のウィンドウの位置の先頭を取得
- 21. iframe内の要素のY位置を取得する
- 22. <telerik:RadGanttView>内のGanttPresenterSplitterの位置を取得する
- 23. OnCreate()内のオブジェクトのスクリーン位置を取得する
- 24. コールスタック内の関数の位置を取得する方法は?
- 25. qt内のラベルのマウスクリック位置を取得する
- 26. div内のdivの位置情報を取得する
- 27. リスト内の要素の位置を取得する方法は?
- 28. 配列内のキーの位置を取得する方法
- 29. リスト内のオブジェクトの数値位置を取得する
- 30. CALayer内の点の絶対位置を取得する方法
あなたのしていることを理解できるように、いくつかの重要なコードをご記入ください。問題を再現できるサンプルPDFにリンクしてください。 – mkl
PageAnnotationsアノテーション= page.getAnnotations(); (注釈注釈:注釈)のための \t \t \t { \t \t \t \t highlightArea = annotation.getBox();} ...私は、PDFのページの注釈を取得し、そこに位置を取るが、私はの位置もいつか取得します太字またはイタリックのテキスト。 申し訳ありませんが、サンプルPDFは機密ファイルのためリンクできません。 – godani
次に、問題を再現できる、機密ではない別のファイルを探してみてください。あなたが何かを見つけることができない場合は、チャンスはあなたのPDF自体に問題があります。 – mkl