public class PDFParser extends AbstractParser implements Initializable
EmbeddedDocumentExtractor
to handle them.
As of Tika 1.6, it is possible to extract inline images with
the EmbeddedDocumentExtractor
as if they were regular
attachments. By default, this feature is turned off because of
the potentially enormous number and size of inline images. To
turn this feature on, see
PDFParserConfig.setExtractInlineImages(boolean)
.
Please note that tables are not stored as entities within PDFs. It
takes significant computation to identify and then correctly extract
tables from PDFs. As of this writing, the PDFParser
extracts
text within tables, but it does not compute table cell boundaries or
table row boundaries. Please see
tabula for one project that
tries to maintain the structure of tables represented in PDFs.Modifier and Type | Field and Description |
---|---|
static String |
PASSWORD
Deprecated.
Supply a
PasswordProvider on the ParseContext instead |
Constructor and Description |
---|
PDFParser() |
Modifier and Type | Method and Description |
---|---|
void |
checkInitialization(InitializableProblemHandler handler) |
boolean |
getEnableAutoSpace() |
boolean |
getExtractAnnotationText()
Deprecated.
|
protected org.apache.pdfbox.pdmodel.PDDocument |
getPDDocument(InputStream inputStream,
String password,
org.apache.pdfbox.io.MemoryUsageSetting memoryUsageSetting,
Metadata metadata,
ParseContext parseContext) |
protected org.apache.pdfbox.pdmodel.PDDocument |
getPDDocument(Path path,
String password,
org.apache.pdfbox.io.MemoryUsageSetting memoryUsageSetting,
Metadata metadata,
ParseContext parseContext) |
PDFParserConfig |
getPDFParserConfig() |
boolean |
getSortByPosition()
Deprecated.
|
Set<MediaType> |
getSupportedTypes(ParseContext context)
Returns the set of media types supported by this parser when used
with the given parse context.
|
boolean |
getSuppressDuplicateOverlappingText()
Deprecated.
|
void |
initialize(Map<String,Param> params)
This is a no-op.
|
void |
parse(InputStream stream,
ContentHandler handler,
Metadata metadata,
ParseContext context)
Parses a document stream into a sequence of XHTML SAX events.
|
void |
setDropThreshold(float dropThreshold) |
void |
setEnableAutoSpace(boolean v)
If true (the default), the parser should estimate
where spaces should be inserted between words.
|
void |
setExtractAnnotationText(boolean v)
If true (the default), text in annotations will be
extracted.
|
void |
setInitializableProblemHandler(InitializableProblemHandler initializableProblemHandler) |
void |
setMaxMainMemoryBytes(long maxMainMemoryBytes) |
void |
setOcrImageType(String imageType) |
void |
setOcrStrategy(String ocrStrategyString) |
void |
setPDFParserConfig(PDFParserConfig config) |
void |
setSortByPosition(boolean v)
If true, sort text tokens by their x/y position
before extracting text.
|
void |
setSuppressDuplicateOverlappingText(boolean v)
If true, the parser should try to remove duplicated
text over the same region.
|
parse
public static final String PASSWORD
PasswordProvider
on the ParseContext
insteadpublic Set<MediaType> getSupportedTypes(ParseContext context)
Parser
getSupportedTypes
in interface Parser
context
- parse contextpublic void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException
Parser
The given document stream is consumed but not closed by this method. The responsibility to close the stream remains on the caller.
Information about the parsing context can be passed in the context parameter. See the parser implementations for the kinds of context information they expect.
parse
in interface Parser
stream
- the document stream (input)handler
- handler for the XHTML SAX events (output)metadata
- document metadata (input and output)context
- parse contextIOException
- if the document stream could not be readSAXException
- if the SAX events could not be processedTikaException
- if the document could not be parsedprotected org.apache.pdfbox.pdmodel.PDDocument getPDDocument(InputStream inputStream, String password, org.apache.pdfbox.io.MemoryUsageSetting memoryUsageSetting, Metadata metadata, ParseContext parseContext) throws IOException
IOException
protected org.apache.pdfbox.pdmodel.PDDocument getPDDocument(Path path, String password, org.apache.pdfbox.io.MemoryUsageSetting memoryUsageSetting, Metadata metadata, ParseContext parseContext) throws IOException
IOException
public PDFParserConfig getPDFParserConfig()
public void setPDFParserConfig(PDFParserConfig config)
public boolean getEnableAutoSpace()
setEnableAutoSpace(boolean)
@Field public void setEnableAutoSpace(boolean v)
public boolean getExtractAnnotationText()
getPDFParserConfig()
@Field public void setExtractAnnotationText(boolean v)
public boolean getSuppressDuplicateOverlappingText()
getPDFParserConfig()
@Field public void setSuppressDuplicateOverlappingText(boolean v)
public boolean getSortByPosition()
getPDFParserConfig()
setSortByPosition(boolean)
@Field public void setSortByPosition(boolean v)
public void setInitializableProblemHandler(InitializableProblemHandler initializableProblemHandler)
@Field public void setDropThreshold(float dropThreshold)
@Field public void setMaxMainMemoryBytes(long maxMainMemoryBytes)
public void initialize(Map<String,Param> params) throws TikaConfigException
initialize
in interface Initializable
params
- params to use for initializationTikaConfigException
public void checkInitialization(InitializableProblemHandler handler) throws TikaConfigException
checkInitialization
in interface Initializable
handler
- if there is a problem and no
custom initializableProblemHandler has been configured
via Initializable parameters,
this is called to respond.TikaConfigException
Copyright © 2007–2021 The Apache Software Foundation. All rights reserved.