2017-01-01 63 views
1

C#を使用してPDFの注釈のみを抽出して読み込む必要があります。PDFの注釈を抽出する

私はPDFBoxとitextsharpの両方を使用することで問題なくファイルを抽出できますが、注釈テキストまたは下線付きまたは色付き(強調表示された行)を読む必要があります。

+0

。もちろん、コードは異なります。注釈領域から抽出するには、ソースコードのダウンロードからPrintURLsの例を参照してください。 –

+0

@TilmanHausherr PrintURLのC#コードはありますか? – Ahmad

+0

いいえ、javaのみ。しかし、C#とjavaはかなり似ています。 –

答えて

1

ページの実際のコンテンツ(ページのコンテンツストリームのPDF構文を使用して記述されたコンテンツ)とページに追加された注釈ページ辞書の/Annotsエントリ内のアノテーション辞書に記載されているコンテンツ)。

これまでのところ、アノテーション辞書のコンテンツを抽出していますが、アノテーションの/Rectエントリを使用して、その場所が特定されたコンテンツストリームからコンテンツを抽出することも必要です。それを行うには、ページのコンテンツストリームを解析する必要があります。

official iText web siteに行くとよくある質問を読んで、より具体的にしてください:How to read text from a specific position?

readerがあなたのPdfReaderインスタンスであるとし、rectはあなたが抽出したいテキストの場所、およびpage対応するページを定義Rectangleです数は、その後、あなたはRenderFilterを作成し、このようLocationTextExtractionStrategyを使用することができます:PDFBoxのための答えは同じ再PDFファイルの内部で

RenderFilter[] filter = {new RegionTextRenderFilter(rect)}; 
ITextExtractionStrategy strategy = 
    new FilteredTextRenderListener(
     new LocationTextExtractionStrategy(), filter); 
String text = PdfTextExtractor.GetTextFromPage(reader, page, strategy)); 
+0

実際に注釈の種類によっては、** QuadPoints **が** Rect **より簡潔です。マークアップアノテーションの場合、** AP **アピアランスストリームは依然としてテキストの異なるサブセットをマークすることがあります。しかし、誰もこれらの外観によってテキスト範囲を試してみたいと思うでしょう... – mkl

+0

@Bruno Lowagie私は注釈によって追加されたpdfファイルでハイライトされた文章を取得する必要があります – Ahmad

関連する問題