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

### Method Summary

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