Class RegexBasedLocationExtractionStrategy
java.lang.Object
com.itextpdf.kernel.pdf.canvas.parser.listener.RegexBasedLocationExtractionStrategy
- All Implemented Interfaces:
IEventListener
,ILocationExtractionStrategy
public class RegexBasedLocationExtractionStrategy
extends Object
implements ILocationExtractionStrategy
This class is designed to search for the occurrences of a regular expression and return the resultant rectangles.
Do note that this class holds all text locations and can't be used for processing multiple pages.
If you want to extract text from several pages of pdf document you have to create a new instance
of
RegexBasedLocationExtractionStrategy
for each page.
Here is an example of usage with new instance per each page:
PdfDocument document = new PdfDocument(new PdfReader("..."));
for (int i = 1; i <= document.getNumberOfPages(); ++i) {
RegexBasedLocationExtractionStrategy extractionStrategy = new RegexBasedLocationExtractionStrategy("");
PdfCanvasProcessor processor = new PdfCanvasProcessor(extractionStrategy);
processor.processPageContent(document.getPage(i));
for (IPdfTextLocation location : extractionStrategy.getResultantLocations()) {
//process locations ...
}
}
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final float
private final List
<CharacterRenderInfo> private final Pattern
-
Constructor Summary
ConstructorsConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionvoid
eventOccurred
(IEventData data, EventType type) Called when some event occurs during parsing a content stream.private static Integer
getEndIndex
(Map<Integer, Integer> indexMap, int index) Returns theRectangle
s that have been processed so far.private static Integer
getStartIndex
(Map<Integer, Integer> indexMap, int index, String txt) Provides the set of event types this listener supports.private void
removeDuplicates
(List<IPdfTextLocation> sortedList) protected List
<CharacterRenderInfo> toCRI
(TextRenderInfo tri) ConvertTextRenderInfo
toCharacterRenderInfo
This method is public and not final so that custom implementations can choose to override it.toRectangles
(List<CharacterRenderInfo> cris) ConvertsCharacterRenderInfo
objects toRectangle
s This method is protected and not final so that custom implementations can choose to override it.
-
Field Details
-
EPS
private static final float EPS- See Also:
-
pattern
-
parseResult
-
-
Constructor Details
-
RegexBasedLocationExtractionStrategy
-
RegexBasedLocationExtractionStrategy
-
-
Method Details
-
getResultantLocations
Returns theRectangle
s that have been processed so far.- Specified by:
getResultantLocations
in interfaceILocationExtractionStrategy
- Returns:
Collection
<IPdfTextLocation
> instance with the current resultant IPdfTextLocations
-
eventOccurred
Called when some event occurs during parsing a content stream.- Specified by:
eventOccurred
in interfaceIEventListener
- Parameters:
data
- Combines the data required for processing corresponding event type.type
- Event type.
-
getSupportedEvents
Provides the set of event types this listener supports. Returns null if all possible event types are supported.- Specified by:
getSupportedEvents
in interfaceIEventListener
- Returns:
- Set of event types supported by this listener or null if all possible event types are supported.
-
toCRI
ConvertTextRenderInfo
toCharacterRenderInfo
This method is public and not final so that custom implementations can choose to override it. Other implementations ofCharacterRenderInfo
may choose to store different properties than merely theRectangle
describing the bounding box. E.g. a custom implementation might choose to storeColor
information as well, to better match the content surrounding the redactionRectangle
.- Parameters:
tri
-TextRenderInfo
object- Returns:
- a list of
CharacterRenderInfo
s which represents the passedTextRenderInfo
?
-
toRectangles
ConvertsCharacterRenderInfo
objects toRectangle
s This method is protected and not final so that custom implementations can choose to override it. E.g. other implementations may choose to add padding/margin to the Rectangles. This method also offers a convenient access point to the mapping ofCharacterRenderInfo
toRectangle
. This mapping enables (custom implementations) to match color of text in redacted Rectangles, or match color of background, by the mere virtue of offering access to theCharacterRenderInfo
objects that generated theRectangle
.- Parameters:
cris
- list ofCharacterRenderInfo
objects- Returns:
- an array containing the elements of this list
-
removeDuplicates
-
getStartIndex
-
getEndIndex
-