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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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.