Class TextHighlighter

  • All Implemented Interfaces:
    DocumentPanelListener, PagePanelListener

    public class TextHighlighter
    extends ViewerFeature
    implements DocumentPanelListener, PagePanelListener

    A feature that allows the highlighting of text in the viewer. This takes a fairly simplistic approach, allowing words to be matched manually via the addWord(java.lang.String) method, or to a regular expression via the setPattern(java.util.regex.Pattern) method. A highlight will then be applied whenever a page containing that word is displayed.

    The SearchPanel has similar functionality but takes a more integrated approach, using the TextTool to highlight text. Although both TextTool and this class can be used to highlight text matching a regular expression, this class does not allow you to copy the selected text to the clipboard. This difference means the selection can be done page by page, whereas TextTool has to extract all the text from the document first.

    Given the non-interactive nature of this class it's likely that this class will be used in a more standalone environment. Here's an example of how to do this:

       Pattern pattern = Pattern.compile("(apples|oranges|[a-z]*berries)");
       TextHighlighter hl = new TextHighlighter();
       hl.setPattern(pattern);
       final Collection<ViewerFeature> features = new ArrayList(ViewerFeature.getAllFeatures());
       features.add(hl);
       SwingUtilities.invokeLater(new Runnable() {
         void run() {
           PDFViewer viewer = PDFViewer.newPDFViewer(features);
           viewer.loadPDF(new File("CropReport.pdf"));
         }
       });
     }
     
    The following initialization parameters can be specified to configure this feature.
    highlightColorA 32-bit color value, eg 0x80FF0000 (for translucent red)
    highlightTypeOne of block, underline, outline, doubleunderline, strikeout or doublestrikeout
    highlightMarginA floating point value >= 0
    highlightMarginA floating point value >= 0

    Here's an example showing how to set those attributes:

     java -Dorg.faceless.pdf2.viewer2.TextHighlighter.word0=apples \
          -Dorg.faceless.pdf2.viewer2.TextHighlighter.word1=oranges \
          -jar bfopdf.jar
     
    The name of this feature is TextHighlighter

    This code is copyright the Big Faceless Organization. You're welcome to use, modify and distribute it in any form in your own projects, provided those projects continue to make use of the Big Faceless PDF library.

    Since:
    2.8.1
    See Also:
    SearchPanel, SearchField, TextTool