org.apache.tika.parser.pdf
Class PDFParser

java.lang.Object
  extended by org.apache.tika.parser.AbstractParser
      extended by org.apache.tika.parser.pdf.PDFParser
All Implemented Interfaces:
Serializable, Parser

public class PDFParser
extends AbstractParser

PDF parser.

This parser can process also encrypted PDF documents if the required password is given as a part of the input metadata associated with a document. If no password is given, then this parser will try decrypting the document using the empty password that's often used with PDFs.

See Also:
Serialized Form

Field Summary
static String PASSWORD
          Deprecated. Supply a PasswordProvider on the ParseContext instead
 
Constructor Summary
PDFParser()
           
 
Method Summary
 boolean getEnableAutoSpace()
           
 boolean getExtractAnnotationText()
          If true, text in annotations will be extracted.
 boolean getSortByPosition()
           
 Set<MediaType> getSupportedTypes(ParseContext context)
          Returns the set of media types supported by this parser when used with the given parse context.
 boolean getSuppressDuplicateOverlappingText()
           
 void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context)
          Parses a document stream into a sequence of XHTML SAX events.
 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 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.
 
Methods inherited from class org.apache.tika.parser.AbstractParser
parse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PASSWORD

public static final String PASSWORD
Deprecated. Supply a PasswordProvider on the ParseContext instead
Metadata key for giving the document password to the parser.

Since:
Apache Tika 0.5
See Also:
Constant Field Values
Constructor Detail

PDFParser

public PDFParser()
Method Detail

getSupportedTypes

public Set<MediaType> getSupportedTypes(ParseContext context)
Description copied from interface: Parser
Returns the set of media types supported by this parser when used with the given parse context.

Parameters:
context - parse context
Returns:
immutable set of media types

parse

public void parse(InputStream stream,
                  ContentHandler handler,
                  Metadata metadata,
                  ParseContext context)
           throws IOException,
                  SAXException,
                  TikaException
Description copied from interface: Parser
Parses a document stream into a sequence of XHTML SAX events. Fills in related document metadata in the given metadata object.

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.

Parameters:
stream - the document stream (input)
handler - handler for the XHTML SAX events (output)
metadata - document metadata (input and output)
context - parse context
Throws:
IOException - if the document stream could not be read
SAXException - if the SAX events could not be processed
TikaException - if the document could not be parsed

setEnableAutoSpace

public void setEnableAutoSpace(boolean v)
If true (the default), the parser should estimate where spaces should be inserted between words. For many PDFs this is necessary as they do not include explicit whitespace characters.


getEnableAutoSpace

public boolean getEnableAutoSpace()
See Also:
#setEnableAutoSpace.

setExtractAnnotationText

public void setExtractAnnotationText(boolean v)
If true (the default), text in annotations will be extracted.


getExtractAnnotationText

public boolean getExtractAnnotationText()
If true, text in annotations will be extracted.


setSuppressDuplicateOverlappingText

public void setSuppressDuplicateOverlappingText(boolean v)
If true, the parser should try to remove duplicated text over the same region. This is needed for some PDFs that achieve bolding by re-writing the same text in the same area. Note that this can slow down extraction substantially (PDFBOX-956) and sometimes remove characters that were not in fact duplicated (PDFBOX-1155). By default this is disabled.


getSuppressDuplicateOverlappingText

public boolean getSuppressDuplicateOverlappingText()
See Also:
#setSuppressDuplicateOverlappingText.

setSortByPosition

public void setSortByPosition(boolean v)
If true, sort text tokens by their x/y position before extracting text. This may be necessary for some PDFs (if the text tokens are not rendered "in order"), while for other PDFs it can produce the wrong result (for example if there are 2 columns, the text will be interleaved). Default is false.


getSortByPosition

public boolean getSortByPosition()
See Also:
#setSortByPosition.


Copyright © 2007-2012 The Apache Software Foundation. All Rights Reserved.