# KVHTMLTemplateEx

This structure defines the overall framework of the HTML output. Members in this structure define the HTML markup written at specific points in the output stream. The pointers contain HTML markup that might include embedded KeyView tokens. See Export Tokens for more information on tokens. The structure is initialized by calling the `fpConvertStream()` or `KVHTMLConvertFile()` function. See fpConvertStream() or KVHTMLConvertFile().

    typedef struct tag_KVHTMLTemplateEx
    {
        char        *pszMainTop;
        char        *pszMainBottom;
        char        *pszFirstH1Start;
        char        *pszFirstH1End;
        char        *pszMiddleH1Start;
        char        *pszMiddleH1End;
        char        *pszLastH1Start;
        char        *pszLastH1End;
        char        *pszH[2..6]HTML;
        char        *pszTOCH[1..6]Start;
        char        *pszTOC_H[1..6];
        char        *pszTOCH[1..6]End;
        char        *pszXFile;
        char        *pszStartBlock;
        char        *pszEndBlock;
        BOOL        bPutBlocksInSeparateFiles;
        BOOL        bHardPageMakesNewBlock
        long        lcbBlockSize;
        char        *pszChunkTemplate;
        char        *pszTableHTML;
        BOOL        bTableHTMLForSpreadsheetOnly;
        char        *pszUserSummary;
        char        *pszXStartBlock;
        char        *pszXEndBlock;
        char        *pszTOCH[1..6]LeafNode;
    }
    KVHTMLTemplateEx;

## Member Descriptions

`pszMainTop` | The markup and tokens inserted at the beginning of the main HTML file. Most of the template files feature `<meta>` tags with tokens that store the input document's metadata. This member should at least contain the `<html>` and `<body>` tags. For frame-style output, this member must include the `<frame>` tag. The default is `NULL`.
`pszMainBottom` | The markup and tokens inserted at the end of the main HTML file. This member should at least contain the`</html>` and `</body>` tags, and should close the elements that are opened by `pszMainTop`. The default is `NULL`.
`pszFirstH1Start` | The markup and tokens inserted at the beginning of the first created H1 HTML block (that is, the block associated with the first H1 table of contents entry). The default is `NULL`.
`pszFirstH1End` | The markup and tokens inserted at the end of the first created H1 HTML block (that is, the block associated with the first H1 table of contents entry). The default is `NULL`.
`pszMiddleH1Start` | The markup and tokens inserted at the beginning of those H1 HTML blocks that are neither the first nor the last H1 blocks created (that is, blocks associated with all but the first and last H1 table of contents entries). The default is `NULL`.
`pszMiddleH1End` | The markup and tokens inserted at the end of those H1 HTML blocks that are neither the first nor the last H1 blocks created (that is, blocks associated with all but the first and last H1 table of contents entries). The default is `NULL`.
`pszLastH1Start` | The markup and tokens inserted at the beginning of the last created H1 HTML block (that is, the block associated with the last H1 table of contents entry). The default is `NULL`.
`pszLastH1End` | The markup and tokens inserted at the end of the last created H1 HTML block (that is, the block associated with the last H1 table of contents entry). The default is `NULL`.
`pszH[2..6]HTML` | The markup and tokens inserted in an HTML block for heading levels 2 through 6. The default is `NULL`.
`pszTOCH[1..6]Start` | The markup and tokens inserted at the beginning of a table of contents block for heading levels 1 through 6 entries. For example: `<ol type="I">` `<ol type="1">` `<ol type="i">` The default is `NULL`.
`pszTOC_H[1..6]` | The markup and tokens required to process the table of contents entries for heading levels 1 through 6. For example: `<a href="$ANCHOR" target="right">$TOCTE</a>` The default is `NULL`.
`pszTOCH[1..6]End` | The markup and tokens inserted at the end of a table of contents block for heading levels 1 through 6 entries. For example: `</ol>` The default is `NULL`.
`pszXFile` | The markup and tokens generated and placed in an extra HTML file. This file holds content from the source document. For example, it could contain the table of contents (using the `$TOC` token), which could then be displayed in an HTML frame. To process this file, you would use the `$XANCHOR` token. For example, if the extra file contains the table of contents in frame-based HTML, set `pszXFile=$TOC` and place the following HTML markup in the `pszMainTop` element: `<frame src="$XANCHOR" name="left" scrolling="auto" target="right">` See Export Tokens for more information on Export tokens. The default is `NULL`.
`pszStartBlock` | The markup and tokens inserted at the beginning of each block created as a result of `lcbBlockSize` or `bHardPageMakesNewBlock`. The default is `NULL`.
`pszEndBlock` | The markup and tokens inserted at the end of each block created as a result of the of `lcbBlockSize` or `bHardPageMakesNewBlock`. The default is `NULL`.
`bPutBlocksInSeparateFiles` | Set `bPutBlocksInSeparateFiles` to `TRUE` to create a separate HTML file for each heading level 1 block. Each new block uses the markup defined in `pszStartBlock` and `pszEndBlock`. If you set `bPutBlocksInSeparateFiles` to `FALSE`, each heading level 1 block is placed sequentially in the same file after the initial markup is written. The default is `FALSE`.
`bHardPageMakesNewBlock` | Set `bHardPageMakesNewBlock` to `TRUE` to have hard page breaks in the source document generate new HTML files during the conversion process. The bPutBlocksInSeparateFiles member must also be set to `TRUE`, and the pszChunkTemplate member must specify a table of contents entry for the new file. This option applies to word processing documents and spreadsheets only. Page boundaries in PDF documents are considered page breaks. The default is `FALSE`.
`lcbBlockSize` | The maximum size (in bytes) of heading level 1 HTML output files. This number is used as a guideline and can be exceeded to break content at a logical location. This setting is not used when exporting spreadsheets. To use `lcbBlockSize`, it must be set to a non-zero number, the bPutBlocksInSeparateFiles member must be set to `TRUE`, and the pszChunkTemplate member must specify a table of contents entry for new files created when the maximum size is reached. The default is 0. This means that the size is undefined and unlimited.
`pszChunkTemplate` | If a heading level 1 HTML block is subdivided into separate files because the block exceeds the size limitations specified in `lcbBlockSize`, or `bHardPageMakesNewBlock` is set, or partitioning on hard breaks or page size changes is turned on by using `fpSetPartitionOn`, this member defines the table of contents entry for the new file. The page number can be included in the table of contents entry by inserting the `$SPLITBLOCKNUMBER` token. For example: `Page $SPLITBLOCKNUMBER` The default is `NULL`.
`pszTableHTML` | Specifies the markup (no tokens) inserted at the beginning of each table created during the conversion process. If you set `pszTableHTML`, table cell color and border information from the document is ignored. This is used in conjunction with `bTableHTMLForSpreadsheetOnly` to control the look of generated spreadsheets. For example, to center the table, set the background color to teal, and set the border width to 13, use: `pszTableHTML=<table bgcolor="teal" border="13" align="center">` The default is `NULL`.
`bTableHTMLForSpreadsheetOnly` | If set to `TRUE`, `bTableHTMLForSpreadsheetOnly` controls how spreadsheets are displayed in the output. If set to `FALSE`, cell color and border information from the source document is used. Use this member in conjunction with `pszTableHTML`. The default is `FALSE`.
`pszUserSummary` | The markup and tokens generated when the tokens `$USERSUMMARY` or `$SUMMARY` are used. For example: `<meta name="$NAME" content="$CONTENT" />` The default is `NULL`.
`pszXStartBlock` | The markup and tokens inserted at the beginning of each HTML block generated by the `$XANCHOR` token. If either this member or `pszXEndBlock` is defined, both `pszStartBlock` and `pszEndBlock` are ignored. See Export Tokens for more information on `$XANCHOR`. The default is `NULL`.
`pszXEndBlock` | The markup and tokens inserted at the end of each HTML block generated by the `$XANCHOR` token. If either this member or `pszXStartBlock` is defined, both `pszStartBlock` and `pszEndBlock` are ignored.See Export Tokens for more information on `$XANCHOR`. The default is `NULL`.
`pszTOCH[1..6]LeafNode` | The markup that replaces `pszTOC_H[1..6]` entries for leaf nodes in the table of contents. A leaf node is a node that has no children. The default is `NULL`.

## Discussion

A pointer to this structure is passed as an argument to `fpConvertStream()` and `KVHTMLConvertFile()`. If the pointer to the structure is not `NULL`, the values of the members specified in the structure are used. If the pointer to the structure is `NULL`, the default values are used.

_FT_HTML5_bannerTitle.htm