com.lowagie.text.html

## Class HtmlWriter

- java.lang.Object
- - com.lowagie.text.DocWriter
  - - com.lowagie.text.html.HtmlWriter

- All Implemented Interfaces:
    DocListener, ElementListener, java.util.EventListener

      public class HtmlWriter
      extends DocWriter

  A `DocWriter` class for HTML.

  An `HtmlWriter` can be added as a `DocListener` to a certain `Document` by getting an instance. Every `Element` added to the original `Document` will be written to the `OutputStream` of this `HtmlWriter`.

  Example:

  >      // creation of the document with a certain size and certain margins
  >      Document document = new Document(PageSize.A4, 50, 50, 50, 50);
  >      try {
  >         // this will write HTML to the Standard OutputStream
  >         HtmlWriter.getInstance(document, System.out);
  >         // this will write HTML to a file called text.html
  >         HtmlWriter.getInstance(document, new FileOutputStream("text.html"));
  >         // this will write HTML to for instance the OutputStream of a HttpServletResponse-object
  >         HtmlWriter.getInstance(document, response.getOutputStream());
  >      }
  >      catch(DocumentException de) {
  >         System.err.println(de.getMessage());
  >      }
  >      // this will close the document and all the OutputStreams listening to it
  >      document.close();

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static byte[]` | `BEGINCOMMENT` This is a possible HTML-tag.
    `protected java.util.Stack` | `currentfont` This is the current font of the HTML.
    `static byte[]` | `ENDCOMMENT` This is a possible HTML-tag.
    `protected HeaderFooter` | `footer` This is the textual part of the footer
    `protected HeaderFooter` | `header` This is the textual part of a header
    `protected java.lang.String` | `imagepath` This is a path for images.
    `protected java.util.Properties` | `markup` Store the markup properties of a MarkedObject.
    `static java.lang.String` | `NBSP` This is a possible HTML-tag.
    `protected int` | `pageN` Stores the page number.
    `protected Font` | `standardfont` This is the standard font of the HTML.

    - ### Fields inherited from class com.lowagie.text.DocWriter

      `closeStream, document, EQUALS, FORWARD, GT, LT, NEWLINE, open, os, pageSize, pause, QUOTE, SPACE, TAB`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `HtmlWriter(Document doc, java.io.OutputStream os)` Constructs a `HtmlWriter`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `add(Element element)` Signals that an `Element` was added to the `Document`.
    `boolean` | `add(java.lang.String string)` Signals that a `String` was added to the `Document`.
    `void` | `close()` Signals that the `Document` was closed and that no other `Elements` will be added.
    `static HtmlWriter` | `getInstance(Document document, java.io.OutputStream os)` Gets an instance of the `HtmlWriter`.
    `protected void` | `initFooter()` Adds the header to the top of the Document
    `protected void` | `initHeader()` Adds the header to the top of the Document
    `boolean` | `isOtherFont(Font font)` Checks if a given font is the same as the font that was last used.
    `boolean` | `newPage()` Signals that an new page has to be started.
    `void` | `open()` Signals that the `Document` has been opened and that `Elements` can be added.
    `void` | `resetImagepath()` Resets the imagepath.
    `void` | `setFooter(HeaderFooter footer)` Changes the footer of this document.
    `void` | `setHeader(HeaderFooter header)` Changes the header of this document.
    `void` | `setImagepath(java.lang.String imagepath)` Sets the basepath for images.
    `void` | `setStandardFont(Font standardfont)` Changes the standardfont.
    `protected void` | `write(Element element, int indent)` Writes the HTML representation of an element.
    `protected void` | `write(Font font, java.util.Properties styleAttributes)` Writes the representation of a `Font`.
    `protected void` | `writeComment(java.lang.String comment)` Writes some comment.
    `protected void` | `writeCssProperty(java.lang.String prop, java.lang.String value)` Writes out a CSS property.
    `protected void` | `writeHeader(Meta meta)` Writes a Metatag in the header.
    `protected void` | `writeJavaScript(Header header)` Writes a JavaScript section or, if the markup attribute HtmlTags.URL is set, a JavaScript reference in the header.
    `protected void` | `writeLink(Header header)` Writes a link in the header.
    `protected void` | `writeSection(Section section, int indent)` Writes the HTML representation of a section.

    - ### Methods inherited from class com.lowagie.text.DocWriter

      `addTabs, flush, getISOBytes, isCloseStream, isPaused, pause, resetFooter, resetHeader, resetPageCount, resume, setCloseStream, setMarginMirroring, setMarginMirroringTopBottom, setMargins, setPageCount, setPageSize, write, write, writeEnd, writeEnd, writeMarkupAttributes, writeStart`

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

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

- - ### Field Detail

    - #### BEGINCOMMENT

          public static final byte[] BEGINCOMMENT

      This is a possible HTML-tag.

    - #### ENDCOMMENT

          public static final byte[] ENDCOMMENT

      This is a possible HTML-tag.

    - #### NBSP

          public static final java.lang.String NBSP

      This is a possible HTML-tag.
      See Also:
        Constant Field Values

    - #### currentfont

          protected java.util.Stack currentfont

      This is the current font of the HTML.

    - #### standardfont

          protected Font standardfont

      This is the standard font of the HTML.

    - #### imagepath

          protected java.lang.String imagepath

      This is a path for images.

    - #### pageN

          protected int pageN

      Stores the page number.

    - #### header

          protected HeaderFooter header

      This is the textual part of a header

    - #### footer

          protected HeaderFooter footer

      This is the textual part of the footer

    - #### markup

          protected java.util.Properties markup

      Store the markup properties of a MarkedObject.

  - ### Constructor Detail

    - #### HtmlWriter

          protected HtmlWriter(Document doc,
                    java.io.OutputStream os)

      Constructs a `HtmlWriter`.
      Parameters:
        `doc` - The `Document` that has to be written as HTML
        `os` - The `OutputStream` the writer has to write to.

  - ### Method Detail

    - #### getInstance

          public static HtmlWriter getInstance(Document document,
                               java.io.OutputStream os)

      Gets an instance of the `HtmlWriter`.
      Parameters:
        `document` - The `Document` that has to be written
        `os` - The `OutputStream` the writer has to write to.
      Returns:
        a new `HtmlWriter`

    - #### newPage

          public boolean newPage()

      Signals that an new page has to be started.
      Specified by:
        `newPage` in interface `DocListener`
      Overrides:
        `newPage` in class `DocWriter`
      Returns:
        `true` if this action succeeded, `false` if not.

    - #### add

          public boolean add(Element element)
                      throws DocumentException

      Signals that an `Element` was added to the `Document`.
      Specified by:
        `add` in interface `ElementListener`
      Overrides:
        `add` in class `DocWriter`
      Parameters:
        `element` - a high level object that has to be translated to HTML
      Returns:
        `true` if the element was added, `false` if not.
      Throws:
        `DocumentException` - when a document isn't open yet, or has been closed

    - #### open

          public void open()

      Signals that the `Document` has been opened and that `Elements` can be added.

      The `HEAD`-section of the HTML-document is written.

      Specified by:
        `open` in interface `DocListener`
      Overrides:
        `open` in class `DocWriter`

    - #### close

          public void close()

      Signals that the `Document` was closed and that no other `Elements` will be added.
      Specified by:
        `close` in interface `DocListener`
      Overrides:
        `close` in class `DocWriter`

    - #### initHeader

          protected void initHeader()

      Adds the header to the top of the Document

    - #### initFooter

          protected void initFooter()

      Adds the header to the top of the Document

    - #### writeHeader

          protected void writeHeader(Meta meta)
                              throws java.io.IOException

      Writes a Metatag in the header.
      Parameters:
        `meta` - the element that has to be written
      Throws:
        `java.io.IOException`

    - #### writeLink

          protected void writeLink(Header header)
                            throws java.io.IOException

      Writes a link in the header.
      Parameters:
        `header` - the element that has to be written
      Throws:
        `java.io.IOException`

    - #### writeJavaScript

          protected void writeJavaScript(Header header)
                                  throws java.io.IOException

      Writes a JavaScript section or, if the markup attribute HtmlTags.URL is set, a JavaScript reference in the header.
      Parameters:
        `header` - the element that has to be written
      Throws:
        `java.io.IOException`

    - #### writeComment

          protected void writeComment(java.lang.String comment)
                               throws java.io.IOException

      Writes some comment.

      This method writes some comment.

      Parameters:
        `comment` - the comment that has to be written
      Throws:
        `java.io.IOException`

    - #### setStandardFont

          public void setStandardFont(Font standardfont)

      Changes the standardfont.
      Parameters:
        `standardfont` - The font

    - #### isOtherFont

          public boolean isOtherFont(Font font)

      Checks if a given font is the same as the font that was last used.
      Parameters:
        `font` - the font of an object
      Returns:
        true if the font differs

    - #### setImagepath

          public void setImagepath(java.lang.String imagepath)

      Sets the basepath for images.

      This is especially useful if you add images using a file, rather than an URL. In PDF there is no problem, since the images are added inline, but in HTML it is sometimes necessary to use a relative path or a special path to some images directory.

      Parameters:
        `imagepath` - the new imagepath

    - #### resetImagepath

          public void resetImagepath()

      Resets the imagepath.

    - #### setHeader

          public void setHeader(HeaderFooter header)

      Changes the header of this document.
      Specified by:
        `setHeader` in interface `DocListener`
      Overrides:
        `setHeader` in class `DocWriter`
      Parameters:
        `header` - the new header

    - #### setFooter

          public void setFooter(HeaderFooter footer)

      Changes the footer of this document.
      Specified by:
        `setFooter` in interface `DocListener`
      Overrides:
        `setFooter` in class `DocWriter`
      Parameters:
        `footer` - the new footer

    - #### add

          public boolean add(java.lang.String string)

      Signals that a `String` was added to the `Document`.
      Parameters:
        `string` - a String to add to the HTML
      Returns:
        `true` if the string was added, `false` if not.

    - #### write

          protected void write(Element element,
                   int indent)
                        throws java.io.IOException

      Writes the HTML representation of an element.
      Parameters:
        `element` - the element
        `indent` - the indentation
      Throws:
        `java.io.IOException`

    - #### writeSection

          protected void writeSection(Section section,
                          int indent)
                               throws java.io.IOException

      Writes the HTML representation of a section.
      Parameters:
        `section` - the section to write
        `indent` - the indentation
      Throws:
        `java.io.IOException`

    - #### write

          protected void write(Font font,
                   java.util.Properties styleAttributes)
                        throws java.io.IOException

      Writes the representation of a `Font`.
      Parameters:
        `font` - a `Font`
        `styleAttributes` - the style of the font
      Throws:
        `java.io.IOException`

    - #### writeCssProperty

          protected void writeCssProperty(java.lang.String prop,
                              java.lang.String value)
                                   throws java.io.IOException

      Writes out a CSS property.
      Parameters:
        `prop` - a CSS property
        `value` - the value of the CSS property
      Throws:
        `java.io.IOException`