com.lowagie.text.xml

## Class SAXiTextHandler

- java.lang.Object
- - org.xml.sax.helpers.DefaultHandler
  - - com.lowagie.text.xml.SAXiTextHandler

All Implemented Interfaces:
  org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

Direct Known Subclasses:
  SAXmyHandler, SAXmyHtmlHandler

    public class SAXiTextHandler
    extends org.xml.sax.helpers.DefaultHandler

This class is a Handler that controls the iText XML to PDF conversion. Subclass it, if you want to change the way iText translates XML to PDF.

### Field Summary

Fields
`private BaseFont` `bf`
`(package private) float` `bottomMargin` current margin of a page.
`protected int` `chapters` Counts the number of chapters in this document.
`protected boolean` `controlOpenClose` This is a flag that can be set, if you want to open and close the Document-object yourself.
`protected Chunk` `currentChunk` This is the current chunk to which characters can be added.
`protected DocListener` `document` This is the resulting document.
`protected boolean` `ignore` This is the current chunk to which characters can be added.
`(package private) float` `leftMargin` current margin of a page.
`protected java.util.HashMap` `myTags` This hashmap contains all the custom keys and peers.
`(package private) float` `rightMargin` current margin of a page.
`protected java.util.Stack` `stack` This is a `Stack` of objects, waiting to be added to the document.
`(package private) float` `topMargin` current margin of a page.

### Constructor Summary

Constructors
Constructor and Description
`SAXiTextHandler(DocListener document)`
`SAXiTextHandler(DocListener document, java.util.HashMap myTags)`
`SAXiTextHandler(DocListener document, HtmlTagMap myTags)`
`SAXiTextHandler(DocListener document, HtmlTagMap myTags, BaseFont bf)`

### Method Summary

Methods
`protected void` `addImage(Image img)`
`void` `characters(char[] ch, int start, int length)` This method gets called when characters are encountered.
`void` `endElement(java.lang.String uri, java.lang.String lname, java.lang.String name)` This method gets called when an end tag is encountered.
`void` `handleEndingTags(java.lang.String name)` This method deals with the starting tags.
`void` `handleStartingTags(java.lang.String name, java.util.Properties attributes)` This method deals with the starting tags.
`void` `ignorableWhitespace(char[] ch, int start, int length)` This method gets called when ignorable white space encountered.
`protected boolean` `isDocumentRoot(java.lang.String tag)` Checks if a certain tag corresponds with the roottag.
`private boolean` `isNewline(java.lang.String tag)` Checks if a certain tag corresponds with the newpage-tag.
`private boolean` `isNewpage(java.lang.String tag)` Checks if a certain tag corresponds with the newpage-tag.
`void` `setBaseFont(BaseFont bf)` Sets the font that has to be used.
`void` `setControlOpenClose(boolean controlOpenClose)` Sets the parameter that allows you to enable/disable the control over the Document.open() and Document.close() method.
`void` `startElement(java.lang.String uri, java.lang.String lname, java.lang.String name, org.xml.sax.Attributes attrs)` This method gets called when a start tag is encountered.

### Methods inherited from class org.xml.sax.helpers.DefaultHandler

`endDocument, endPrefixMapping, error, fatalError, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### document

    protected DocListener document

This is the resulting document.

#### stack

    protected java.util.Stack stack

This is a `Stack` of objects, waiting to be added to the document.

#### chapters

    protected int chapters

Counts the number of chapters in this document.

#### currentChunk

    protected Chunk currentChunk

This is the current chunk to which characters can be added.

#### ignore

    protected boolean ignore

This is the current chunk to which characters can be added.

#### controlOpenClose

    protected boolean controlOpenClose

This is a flag that can be set, if you want to open and close the Document-object yourself.

#### topMargin

    float topMargin

current margin of a page.

#### rightMargin

    float rightMargin

current margin of a page.

#### leftMargin

    float leftMargin

current margin of a page.

#### bottomMargin

    float bottomMargin

current margin of a page.

#### myTags

    protected java.util.HashMap myTags

This hashmap contains all the custom keys and peers.

#### bf

    private BaseFont bf

### Constructor Detail

#### SAXiTextHandler

    public SAXiTextHandler(DocListener document)

Parameters:
  `document` -

#### SAXiTextHandler

    public SAXiTextHandler(DocListener document,
                   HtmlTagMap myTags)

Parameters:
  `document` -
  `myTags` -

#### SAXiTextHandler

    public SAXiTextHandler(DocListener document,
                   HtmlTagMap myTags,
                   BaseFont bf)

Parameters:
  `document` -
  `myTags` -
  `bf` -

#### SAXiTextHandler

    public SAXiTextHandler(DocListener document,
                   java.util.HashMap myTags)

Parameters:
  `document` -
  `myTags` -

### Method Detail

#### setControlOpenClose

    public void setControlOpenClose(boolean controlOpenClose)

Sets the parameter that allows you to enable/disable the control over the Document.open() and Document.close() method.

If you set this parameter to true (= default), the parser will open the Document object when the start-root-tag is encountered and close it when the end-root-tag is met. If you set it to false, you have to open and close the Document object yourself.

Parameters:
  `controlOpenClose` - set this to false if you plan to open/close the Document yourself

#### startElement

    public void startElement(java.lang.String uri,
                    java.lang.String lname,
                    java.lang.String name,
                    org.xml.sax.Attributes attrs)

This method gets called when a start tag is encountered.

Specified by:
  `startElement` in interface `org.xml.sax.ContentHandler`
Overrides:
  `startElement` in class `org.xml.sax.helpers.DefaultHandler`
Parameters:
  `uri` - the Uniform Resource Identifier
  `lname` - the local name (without prefix), or the empty string if Namespace processing is not being performed.
  `name` - the name of the tag that is encountered
  `attrs` - the list of attributes

#### handleStartingTags

    public void handleStartingTags(java.lang.String name,
                          java.util.Properties attributes)

This method deals with the starting tags.

Parameters:
  `name` - the name of the tag
  `attributes` - the list of attributes

#### addImage

    protected void addImage(Image img)
                     throws java.util.EmptyStackException

Throws:
  `java.util.EmptyStackException`

#### ignorableWhitespace

    public void ignorableWhitespace(char[] ch,
                           int start,
                           int length)

This method gets called when ignorable white space encountered.

Specified by:
  `ignorableWhitespace` in interface `org.xml.sax.ContentHandler`
Overrides:
  `ignorableWhitespace` in class `org.xml.sax.helpers.DefaultHandler`
Parameters:
  `ch` - an array of characters
  `start` - the start position in the array
  `length` - the number of characters to read from the array

#### characters

    public void characters(char[] ch,
                  int start,
                  int length)

This method gets called when characters are encountered.

Specified by:
  `characters` in interface `org.xml.sax.ContentHandler`
Overrides:
  `characters` in class `org.xml.sax.helpers.DefaultHandler`
Parameters:
  `ch` - an array of characters
  `start` - the start position in the array
  `length` - the number of characters to read from the array

#### setBaseFont

    public void setBaseFont(BaseFont bf)

Sets the font that has to be used.

Parameters:
  `bf` -

#### endElement

    public void endElement(java.lang.String uri,
                  java.lang.String lname,
                  java.lang.String name)

This method gets called when an end tag is encountered.

Specified by:
  `endElement` in interface `org.xml.sax.ContentHandler`
Overrides:
  `endElement` in class `org.xml.sax.helpers.DefaultHandler`
Parameters:
  `uri` - the Uniform Resource Identifier
  `lname` - the local name (without prefix), or the empty string if Namespace processing is not being performed.
  `name` - the name of the tag that ends

#### handleEndingTags

    public void handleEndingTags(java.lang.String name)

This method deals with the starting tags.

Parameters:
  `name` - the name of the tag

#### isNewpage

    private boolean isNewpage(java.lang.String tag)

Checks if a certain tag corresponds with the newpage-tag.

Parameters:
  `tag` - a presumed tagname
Returns:
  `true` or `false`

#### isNewline

    private boolean isNewline(java.lang.String tag)

Checks if a certain tag corresponds with the newpage-tag.

Parameters:
  `tag` - a presumed tagname
Returns:
  `true` or `false`

#### isDocumentRoot

    protected boolean isDocumentRoot(java.lang.String tag)

Checks if a certain tag corresponds with the roottag.

Parameters:
  `tag` - a presumed tagname
Returns:
  `true` if tag equals `itext` ,`false` otherwise.