## 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
implements DocListener

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
`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.
`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
`protected` `HtmlWriter(Document doc, java.io.OutputStream os)` Constructs a `HtmlWriter`.

Method Summary
`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
`add, addTabs, clearTextWrap, flush, getISOBytes, hasMarkupAttributes, isCloseStream, pause, removeWatermark, resetFooter, resetHeader, resetPageCount, resume, setCloseStream, setMarginMirroring, 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`

Methods inherited from interface com.lowagie.text.DocListener
`add, clearTextWrap, removeWatermark, resetFooter, resetHeader, resetPageCount, setMarginMirroring, setMargins, setPageCount, setPageSize`

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

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()
                    throws DocumentException

  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.
  Throws:
    `DocumentException` - when a document isn't open yet, or has been closed

### 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)
                throws DocumentException

  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.
  Throws:
    `DocumentException` - when a document isn't open yet, or has been closed

### 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`