Package org.apache.pdfbox.text
Class PDFMarkedContentExtractor
java.lang.Object
org.apache.pdfbox.contentstream.PDFStreamEngine
org.apache.pdfbox.text.PDFMarkedContentExtractor
This is an stream engine to extract the marked content of a pdf.
- Author:
- Johannes Koch
-
Constructor Summary
ConstructorsConstructorDescriptionInstantiate a new PDFTextStripper object.PDFMarkedContentExtractor
(String encoding) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
beginMarkedContentSequence
(COSName tag, COSDictionary properties) Called when a marked content group beginsprotected float
computeFontHeight
(PDFont font) Compute the font height.void
Called when a marked content group endsboolean
void
processPage
(PDPage page) This will initialize and process the contents of the stream.protected void
This will process a TextPosition object and add the text to the list of characters on a page.void
setSuppressDuplicateOverlappingText
(boolean suppressDuplicateOverlappingText) By default the class will attempt to remove text that overlaps each other.protected void
Called when a glyph is to be processed.void
Methods inherited from class org.apache.pdfbox.contentstream.PDFStreamEngine
addOperator, applyTextAdjustment, beginText, decreaseLevel, endText, getAppearance, getCurrentPage, getGraphicsStackSize, getGraphicsState, getInitialMatrix, getLevel, getResources, getTextLineMatrix, getTextMatrix, increaseLevel, operatorException, processAnnotation, processChildStream, processOperator, processOperator, processSoftMask, processTilingPattern, processTilingPattern, processTransparencyGroup, processType3Stream, registerOperatorProcessor, restoreGraphicsStack, restoreGraphicsState, saveGraphicsStack, saveGraphicsState, setLineDashPattern, setTextLineMatrix, setTextMatrix, showAnnotation, showFontGlyph, showFontGlyph, showForm, showGlyph, showText, showTextString, showTextStrings, showTransparencyGroup, showType3Glyph, showType3Glyph, transformedPoint, transformWidth, unsupportedOperator
-
Constructor Details
-
PDFMarkedContentExtractor
Instantiate a new PDFTextStripper object.- Throws:
IOException
-
PDFMarkedContentExtractor
Constructor. Will apply encoding-specific conversions to the output text.- Parameters:
encoding
- The encoding that the output will be written in.- Throws:
IOException
-
-
Method Details
-
isSuppressDuplicateOverlappingText
public boolean isSuppressDuplicateOverlappingText()- Returns:
- the suppressDuplicateOverlappingText setting.
-
setSuppressDuplicateOverlappingText
public void setSuppressDuplicateOverlappingText(boolean suppressDuplicateOverlappingText) By default the class will attempt to remove text that overlaps each other. Word paints the same character several times in order to make it look bold. By setting this to false all text will be extracted, which means that certain sections will be duplicated, but better performance will be noticed.- Parameters:
suppressDuplicateOverlappingText
- The suppressDuplicateOverlappingText setting to set.
-
beginMarkedContentSequence
Description copied from class:PDFStreamEngine
Called when a marked content group begins- Overrides:
beginMarkedContentSequence
in classPDFStreamEngine
- Parameters:
tag
- indicates the role or significance of the sequenceproperties
- optional properties
-
endMarkedContentSequence
public void endMarkedContentSequence()Description copied from class:PDFStreamEngine
Called when a marked content group ends- Overrides:
endMarkedContentSequence
in classPDFStreamEngine
-
xobject
-
processTextPosition
This will process a TextPosition object and add the text to the list of characters on a page. It takes care of overlapping text.- Parameters:
text
- The text to process.
-
getMarkedContents
-
processPage
This will initialize and process the contents of the stream.- Overrides:
processPage
in classPDFStreamEngine
- Parameters:
page
- the page to process- Throws:
IOException
- if there is an error accessing the stream.
-
showGlyph
protected void showGlyph(Matrix textRenderingMatrix, PDFont font, int code, String unicode, Vector displacement) throws IOException Called when a glyph is to be processed. The heuristic calculations here were originally written by Ben Litchfield for PDFStreamEngine.- Overrides:
showGlyph
in classPDFStreamEngine
- Parameters:
textRenderingMatrix
- the current text rendering matrix, Trmfont
- the current fontcode
- internal PDF character code for the glyphunicode
- the Unicode text for this glyph, or null if the PDF does provide itdisplacement
- the displacement (i.e. advance) of the glyph in text space- Throws:
IOException
- if the glyph cannot be processed
-
computeFontHeight
Compute the font height. Override this if you want to use own calculations.- Parameters:
font
- the font.- Returns:
- the font height.
- Throws:
IOException
- if there is an error while getting the font bounding box.
-