SetaPDF_Extractor_Strategy_Word Extraction strategy for single words.

File: /SetaPDF v2/Extractor/Strategy/Word.php

The result of this strategy is sorted from top-left to bottom-right.

Each word is represented by an instance of SetaPDF_Extractor_Result_Word or SetaPDF_Extractor_Result_WordWithGlyphs.

This class allows you to receive a words boundary through the getBounds() method of the word instance.

Class hierarchy

Summary

Constants

DETAIL_LEVEL_DEFAULT

const string SetaPDF_Extractor_Strategy_Word::DETAIL_LEVEL_DEFAULT = 'default'

Detail level constant.

Default detail level resulting in instances of SetaPDF_Extractor_Result_Word.

DETAIL_LEVEL_GLYPHS

const string SetaPDF_Extractor_Strategy_Word::DETAIL_LEVEL_GLYPHS = 'glyphs'

Detail level constant.

Extended detail level resulting in instances of SetaPDF_Extractor_Result_WordWithGlyphs.


Static Properties

$characters

static public string SetaPDF_Extractor_Strategy_Word::$characters = '-‐−—‑²­'

Additional UTF-8 sequences that should be handled as word characters

In outdated PHP 5.2 version this property could be used to extend the character classes.

"\x2D" 'HYPHEN-MINUS' (U+002D) "\xE2\x80\x90" 'HYPHEN' (U+2010) "\xE2\x88\x92" 'MINUS SIGN' (U+2212) "\xE2\x80\x94" 'EM DASH' (U+2014) "\xE2\x80\x91" 'NON-BREAKING HYPHEN' (U+2011) "\xC2\xB2" 'SUPERSCRIPT TWO' (U+00B2) "\xC2\xAD" 'SOFT HYPHEN' (U+00AD)


Properties

$_cleanStreamCallback

protected callable SetaPDF_Extractor_Strategy_Word::$_cleanStreamCallback

A callback that is called before processing a stream.

$_contentParser

protected SetaPDF_Core_Parser_Content SetaPDF_Extractor_Strategy_Word::$_contentParser

$_detailLevel

protected string SetaPDF_Extractor_Strategy_Word::$_detailLevel = 'default'

The detail level.

$_filter

protected null|SetaPDF_Extractor_Filter_FilterInterface SetaPDF_Extractor_Strategy_Word::$_filter

A filter.

$_graphicState

protected SetaPDF_Core_Canvas_GraphicState SetaPDF_Extractor_Strategy_Word::$_graphicState

The graphic state instance.

$_items

protected SetaPDF_Extractor_TextItem[] SetaPDF_Extractor_Strategy_Word::$_items = array()

The text items.

$_lastMatrix

protected SetaPDF_Core_Geometry_Matrix[] SetaPDF_Extractor_Strategy_Word::$_lastMatrix = array(...)

Used matrixes.

$_resources

protected SetaPDF_Core_Type_Dictionary SetaPDF_Extractor_Strategy_Word::$_resources

The stream resources dictionary.

$_sorter

protected SetaPDF_Extractor_Sorter SetaPDF_Extractor_Strategy_Word::$_sorter

The sorter instance.

$_textCount

protected int SetaPDF_Extractor_Strategy_Word::$_textCount = 0

A text item counter.

$spaceWidthFactor

public float SetaPDF_Extractor_Strategy_Word::$spaceWidthFactor = 2.0

A factor to calculate whether a distance can be seen as a character separator.

The fonts space character width is devided by this factor to define the minimum space for a character separator.


Static Methods

_isNonWordCharacter()

protected static SetaPDF_Extractor_Strategy_Word::_isNonWordCharacter (
string $character
): bool

Checks whether the character is a non word character.

Parameters
$character : string

$character

getWords()

public static SetaPDF_Extractor_Strategy_Word::getWords (
$text [, string $encoding = 'UTF-8' ]
): array

Helper method to split a string into words.

This helper allows you to split a string into words with the same logic that is used to resolve words by text items resolved from a PDF document.

Parameters
$text
 
$encoding : string
 

Methods

__construct()

_accept()

Proxy method that forwards the call to a filter instance if available.

Parameters
$textItem : SetaPDF_Extractor_TextItem
 
See

_cleanResult()

Callback to clean up the resulting text.

Parameters
$result
 

_getParser()

Creates the content stream parser.

Parameters
$stream : string
 

_getSubInstance()

Get an instance of the same strategy for processing an other stream (e.g. a Form XObject stream).

Parameters
$gs : SetaPDF_Core_Canvas_GraphicState
 

_onAfterShowText()

public SetaPDF_Extractor_Strategy_Plain::_onAfterShowText (
string $rawString
): void

Callback that is called after a show text operation was invoked.

Parameters
$rawString : string
 

_onBeforeShowText()

Callback that is called before a show text operation is invoked.

_onBeginOrEndText()

public SetaPDF_Extractor_Strategy_Plain::_onBeginOrEndText (
array $arguments, string $operator
): void

Callback for begin or end text operators (BT/ET).

Parameters
$arguments : array
 
$operator : string
 

_onCurrentTransformationMatrix()

public SetaPDF_Extractor_Strategy_Plain::_onCurrentTransformationMatrix (
array $arguments, string $operator
): void

Callback for ctm changes (cm).

Parameters
$arguments : array
 
$operator : string
 

_onFormXObject()

public SetaPDF_Extractor_Strategy_Plain::_onFormXObject (
array $arguments, string $operator
): void

Callback for painting a specified XObject.

Parameters
$arguments : array
 
$operator : string
 
Exceptions

Throws SetaPDF_Exception_NotImplemented

_onGraphicStateChange()

public SetaPDF_Extractor_Strategy_Plain::_onGraphicStateChange (
array $arguments, string $operator
): void

Callback for graphic state changes operators (q/Q).

Parameters
$arguments : array
 
$operator : string
 

_onInlineImage()

public SetaPDF_Extractor_Strategy_Plain::_onInlineImage (
array $arguments, string $operator
): void

Callback for inline image operator

Parameters
$arguments : array
 
$operator : string
 

_onTextPosition()

public SetaPDF_Extractor_Strategy_Plain::_onTextPosition (
array $arguments, string $operator
): void

Callback for text position operators.

Parameters
$arguments : array
 
$operator : string
 

_onTextShow()

public SetaPDF_Extractor_Strategy_Glyph::_onTextShow (
string $arguments, mixed $operator
): void

Callback that is called if a text should be shown.

Parameters
$arguments : string
 
$operator : mixed
 

_onTextState()

public SetaPDF_Extractor_Strategy_Plain::_onTextState (
array $arguments, string $operator
): void

Callback for text state operators.

All states has to be passed to the current graphic state as defined in PDF 32000-1:2008, Table 52 on page 121.

Parameters
$arguments : array
 
$operator : string
 
Exceptions

Throws SetaPDF_Extractor_Exception

_processLine()

Process all text items of a line.

Parameters
$items : SetaPDF_Extractor_TextItem[]
 

_saveLastMatrix()

protected SetaPDF_Extractor_Strategy_Plain::_saveLastMatrix (
string $type
): void

Saves the last matrix by a specific type.

Parameters
$type : string
 

_showText()

protected SetaPDF_Extractor_Strategy_Glyph::_showText (
$string
): void

Method that shows text.

Parameters
$string
 

_showTextStrings()

public SetaPDF_Extractor_Strategy_Glyph::_showTextStrings (
array $textStrings
): void

Callback that is called if text strings should be shown.

Parameters
$textStrings : array
 

getCleanStreamCallback()

Get the callback that is called before a stream is processed.

getDetailLevel()

Get the detail level of the expected result.

getGraphicState()

getResult()

Get all resolved words.

Parameters
$stream : string
 
$resources : SetaPDF_Core_Type_Dictionary
 

getSorter()

Get the sorter instance.

If none was set a base line sorter is created automatically.

process()

Processes a stream through the plain text strategy.

Parameters
$stream : string
 
$resources : SetaPDF_Core_Type_Dictionary
 

setCleanStreamCallback()

public SetaPDF_Extractor_Strategy_AbstractStrategy::setCleanStreamCallback (
[ callable|null $callback = null ]
): void

Set a callback that is called before processing a stream.

Parameters
$callback : callable|null
 

setDetailLevel()

public SetaPDF_Extractor_Strategy_Word::setDetailLevel (
string $detailLevel
): void

Set the detail level of the result.

Parameters
$detailLevel : string
 

setFilter()

setGraphicState()

Set the graphic state.

Parameters
$graphicState : SetaPDF_Core_Canvas_GraphicState
 

setSorter()

Set a sorter instance.

Parameters
$sorter : SetaPDF_Extractor_Sorter