com.itextpdf.text.pdf.ocg
Class OCGParser

java.lang.Object
  extended by com.itextpdf.text.pdf.ocg.OCGParser

public class OCGParser
extends Object

A helper class for OCGRemover.


Nested Class Summary
static interface OCGParser.PdfOperator
          PDF Operator interface.
 
Field Summary
protected static ByteArrayOutputStream baos
          The OutputStream of this worker object.
static String DEFAULTOPERATOR
          Constant used for the default operator.
protected  int mc_balance
          Keeps track of BMC/EMC balance.
protected  Set<String> ocgs
          The OCGs that need to be removed.
protected static Map<String,OCGParser.PdfOperator> operators
          A map with all supported operators operators (PDF syntax).
protected  com.itextpdf.text.pdf.PdfDictionary properties
          The OCG properties.
protected  Set<com.itextpdf.text.pdf.PdfName> xobj
          The names of XObjects that shouldn't be shown.
 
Constructor Summary
OCGParser(Set<String> ocgs)
          Creates an instance of the OCGParser.
 
Method Summary
protected  void checkMarkedContentEnd()
          Keeps track of the MarkedContent state.
protected  void checkMarkedContentStart(com.itextpdf.text.pdf.PdfName ocref)
          Keeps track of the MarkedContent state.
protected  boolean isToRemoved()
          Checks if the parser is currently parsing content that needs to be ignored.
protected  boolean isVisible(List<com.itextpdf.text.pdf.PdfObject> operands)
          Checks operands to find out if the corresponding operator needs to be present or not.
 void parse(com.itextpdf.text.pdf.PRStream stream, com.itextpdf.text.pdf.PdfDictionary resources)
          Parses a stream object and removes OCGs.
protected  void populateOperators()
          Populates the operators variable.
protected  void println(com.itextpdf.text.pdf.PdfObject o)
          Writes a PDF object to the OutputStream, followed by a newline character.
protected  void printsp(com.itextpdf.text.pdf.PdfObject o)
          Writes a PDF object to the OutputStream, followed by a space character.
protected  void process(com.itextpdf.text.pdf.PdfLiteral operator, List<com.itextpdf.text.pdf.PdfObject> operands, boolean removable)
          Processes an operator
protected static void processOperator(OCGParser parser, com.itextpdf.text.pdf.PdfLiteral operator, List<com.itextpdf.text.pdf.PdfObject> operands)
          Processes an operator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULTOPERATOR

public static final String DEFAULTOPERATOR
Constant used for the default operator.

See Also:
Constant Field Values

operators

protected static Map<String,OCGParser.PdfOperator> operators
A map with all supported operators operators (PDF syntax).


baos

protected static ByteArrayOutputStream baos
The OutputStream of this worker object.


mc_balance

protected int mc_balance
Keeps track of BMC/EMC balance.


xobj

protected Set<com.itextpdf.text.pdf.PdfName> xobj
The names of XObjects that shouldn't be shown.


ocgs

protected Set<String> ocgs
The OCGs that need to be removed.


properties

protected com.itextpdf.text.pdf.PdfDictionary properties
The OCG properties.

Constructor Detail

OCGParser

public OCGParser(Set<String> ocgs)
Creates an instance of the OCGParser.

Parameters:
ocgs - a set of String values with the names of the OCGs that need to be removed.
Method Detail

parse

public void parse(com.itextpdf.text.pdf.PRStream stream,
                  com.itextpdf.text.pdf.PdfDictionary resources)
           throws IOException
Parses a stream object and removes OCGs.

Parameters:
stream - a stream object
resources - the resources dictionary of that object (containing info about the OCGs)
Throws:
IOException

processOperator

protected static void processOperator(OCGParser parser,
                                      com.itextpdf.text.pdf.PdfLiteral operator,
                                      List<com.itextpdf.text.pdf.PdfObject> operands)
                               throws Exception
Processes an operator.

Parameters:
parser - the parser that needs to process the operator
operator - the operator
operands - its operands
Throws:
Exception

populateOperators

protected void populateOperators()
Populates the operators variable.


isVisible

protected boolean isVisible(List<com.itextpdf.text.pdf.PdfObject> operands)
Checks operands to find out if the corresponding operator needs to be present or not.

Parameters:
operands - a list of operands
Returns:
true if the operators needs to be present.

isToRemoved

protected boolean isToRemoved()
Checks if the parser is currently parsing content that needs to be ignored.

Returns:
true if the content needs to be ignored

checkMarkedContentStart

protected void checkMarkedContentStart(com.itextpdf.text.pdf.PdfName ocref)
Keeps track of the MarkedContent state.

Parameters:
ocref - a reference to an OCG dictionary

checkMarkedContentEnd

protected void checkMarkedContentEnd()
Keeps track of the MarkedContent state.


process

protected void process(com.itextpdf.text.pdf.PdfLiteral operator,
                       List<com.itextpdf.text.pdf.PdfObject> operands,
                       boolean removable)
                throws IOException
Processes an operator

Parameters:
operator - the operator
operands - its operands
removable - is the operator eligable for removal?
Throws:
IOException

printsp

protected void printsp(com.itextpdf.text.pdf.PdfObject o)
                throws IOException
Writes a PDF object to the OutputStream, followed by a space character.

Parameters:
o -
Throws:
IOException

println

protected void println(com.itextpdf.text.pdf.PdfObject o)
                throws IOException
Writes a PDF object to the OutputStream, followed by a newline character.

Parameters:
o -
Throws:
IOException


Copyright © 2013. All Rights Reserved.