# KVHTMLOptionsEx

This structure defines the options that control the HTML markup written in response to the general style and attributes (font, color, and so on) of the document. A pointer to this structure is passed as an argument to the function `fpConvertStream()` or `KVHTMLConvertFile()`.

    typedef struct tag_KVHTMLOptionsEx
    {
        KVCharSet               OutputCharSet;
        BOOL                    bUseDocumentColors;
        BOOL                    bUseDocumentFontInfo;
        BOOL                    bSupportFontFace;
        BOOL                    bSupportUserFontSizeMapping;
        KVFontSizeMap           FontSizeMap;
        BOOL                    bDisplayRelativeFontSize;
        BOOL                    bSupportRFC1942_cols;
        BOOL                    bNbspEmptyCells;
        ENSATableBorder         SATableBorder;
        int                     nTableBorderWidth;
        char                    *pszBaseURL;
        char                    *pszMainURL;
        char                    *pszDefaultOutputDirectory;
        char                    *pszPicPath;
        char                    *pszPicURL;
        char                    *pszJavaURL;
        char                    *pszJavaArchive;
        BOOL                    bRemoveFileNameSpaces;
        BOOL                    bRasterizeFiles
        KVHTMLGraphicType       OutputRasterGraphicType;
        KVHTMLGraphicType       OutputVectorGraphicType;
        int                     cxVectorToRasterXRes;
        int                     cyVectorToRasterYRes;
        BOOL                    bGenerateURLs;
        long                    lcbMaxMemUsage;
        BOOL                    bSupportColumnHeadings;
        BOOL                    bSupportRowHeadings;
        BOOL                    bSupportCellSpan;
        BOOL                    bSupportRowSpan;
        BOOL                    bSupportColumnWidth;
        BOOL                    bRemoveEmptyColumns;
        BOOL                    bRemoveEmptyRows;
        int                     nRowsBeforeSplit;
        KVLanguageID            OutputLanguageID;
        KVHTMLStyleSheetType    eStyleSheetType
        BOOL                    bTabsToTables;
        BOOL                    bForceOutputCharSet;
        BOOL                    bEnableEmptyRows;
        BYTE                    cReplaceChar;
        BYTE                    cRedact;
        KVCharSet               eSrcCharSet;
        BOOL                    bForceSrcCharSet;
        int                     nCompressionQuality;
    }
    KVHTMLOptionsEx;

## Member Descriptions

`OutputCharSet` | The character set to use for textual output. The available character sets are enumerated in `KVCharSet` in `kvcharset.h`. See Convert Character Sets To make sure that the character set defined here is used, you must set `bForceOutputCharSet` to `TRUE`. The default is `KVCS_UNKNOWN`.
`bUseDocumentColors` | Set `bUseDocumentColors` to `TRUE` to retain the color attributes information contained in the source document. If you set `bUseDocumentColors` to `FALSE`, no color attributes appear in the `<font>` tags of the output. The default is `FALSE`.
`bUseDocumentFontInfo` | Set `bUseDocumentFontInfo` to `TRUE` to retain the font information contained in the source document. If you set `bUseDocumentFontInfo` to `FALSE`, no font information appears in the `<font>` tags in the output. The default is `FALSE`.
`bSupportFontFace` | Set `bSupportFontFace` to `TRUE` to retain the font face information contained in the source document. If you set `bSupportFontFace` to `FALSE`, no `FACE` attributes appear in the `<font>` tags of the HTML output. This applies only when you set `eStyleSheetType` to `STYLESHEET_DISABLED`. The default is `TRUE`.
`bSupportUserFontSizeMapping` | Set `bSupportUserFontSizeMapping` to `TRUE` to use the font sizes specified in the `FontSizeMap`. If you set `bSupportUserFontSizeMapping` to `FALSE`, HTML Export uses default `size` attributes. This applies only when you set `eStyleSheetType` to `STYLESHEET_DISABLED`. The default is `FALSE`.
`FontSizeMap` | The font sizes to which the HTML tags `<font size=1>` through `<font size=7>` correspond. If `bSupportUserFontSizeMapping` is `FALSE`, this member can be left blank. See the Discussion section for more information.
`bDisplayRelativeFontSize` | Set `bDisplayRelativeFont` `Size` to `TRUE` to use relative font size tags in the HTML output. For example, the tag `<font size=+1>` adds one to the base font size, which is normally three. The default is `FALSE`.
`bSupportRFC1942_cols` | Set `bSupportRFC1942_cols` to `TRUE` to include `cols=integer` specifications in the `<table>` tags of the HTML output. The default is `TRUE`.
`bNbspEmptyCells` | Set `bNbspEmptyCells` to `TRUE` to include a non-breaking space (`<td>&nbsp;</td>`) in the markup for empty table cells in the source document. If you set `bNbspEmptyCells` to `FALSE`, `<td></td>` is generated for empty table cells. This option applies to word processing documents and spreadsheets only. The default is `TRUE`.
`SATableBorder` | Specifies whether table borders are based on the setting in the source document, are always on, or are always off. The options are enumerated in `ENSATableBorder` in `kvtypes.h`. See ENSATableBorder. This option applies to word processing documents only. The default is `SA_BaseOnDocument`.
`nTableBorderWidth` | Sets the width of the table border in pixels. This option applies to word processing documents only. The default is `1`.
`pszBaseURL` | The base URL that replaces the `$BASE` token in the HTML output. See $BASE. The default is `NULL`.
`pszMainURL` | The URL that replaces the `$MAINURL` token in the HTML output. See $MAINURL. The default is `NULL`.
`pszDefaultOutputDirectory` | The default output directory for auxiliary files created during the conversion. The default is `NULL`, and the files are placed in the directory in which your application is running.
`pszPicPath` | The output directory for graphics created during the conversion. If specified, this member can also be used by the callback functions `KVHTMLGetAnchorEx` and `KVHTMLGetAuxOutputEx`. This option applies to word processing documents only. The default is `NULL`, and the files are placed in the directory in which your application is running.
`pszPicURL` | The URL of the picture files created from embedded graphics in the source document. To specify a complete image source, this element must be combined with p`szAnchor` of the `GetAnchor()` callback function. See GetAnchor(). For example, setting `pszPicURL` to `../cgi-bin/` and setting `pszAnchor` to `pic.jpg` results in the following markup: `<IMG SRC="../cgi-bin/pic.jpg">` This element applies to word processing documents only. The default is `NULL`.
`bRemoveFileNameSpaces` | Set `bRemoveFileNameSpaces` to `TRUE` to remove spaces from generated output file names. The default is `FALSE`.
`bRasterizeFiles` | Set `bRasterizeFiles` to `TRUE` to rasterize slides from presentations into single images. For this setting to take effect, you must set the bNoPictures member to `FALSE`. The format the images are converted to is determined by the OutputRasterGraphicType member. Set `bRasterizeFiles` to `FALSE` to convert the text in slides to HTML. When you set this member to `FALSE`, images do not appear in the HTML output. The default is `FALSE`. NOTE: When `bRasterizeFiles` is `FALSE`, the export process uses the ordering in the file to produce the output, which does not necessarily match the logical reading order for the presentation. To use a logical reading order instead, you can set the `LogicalOrder` parameter in the `[Options]` section of `formats_e.ini`. See Convert Presentation Files.
`OutputRasterGraphicType` | The output format of rasterized embedded graphics. There are six options enumerated in `KVHTMLGraphicType` in `kvhtml.h`. See KVHTMLGraphicType.
`OutputVectorGraphicType` | The output format of vector graphics. The options are enumerated in `KVHTMLGraphicType` in `kvhtml.h`. See KVHTMLGraphicType. For more information on displaying vector graphics on UNIX or Linux, see Display Vector Graphics on UNIX and Linux. If you turn on highlighting by using `KVHTMLSetHighlight()`, KeyView highlights matching terms that occur in vector graphics. When you output to SVG, it highlights the terms by using the HTML you specify in `KVHTMLHighlight`. When you output to any other format, KeyView highlights the terms by changing the text color.
`cxVectorToRasterXRes` | Specifies the horizontal resolution when converting presentation files and vector graphics. This is set in conjunction with `cyVectorToRasterYRes`. For more information, see Set the Resolution of Presentations and Vector Graphics. The default value is `0`, which means the original resolution is retained.
`cyVectorToRasterYRes` | Specifies the vertical resolution when converting presentation files and vector graphics. This is set in conjunction with `cxVectorToRasterXRes`. For more information, see Set the Resolution of Presentations and Vector Graphics. The default value is `0`, which means the original resolution is retained.
`bGenerateURLs` | Set `bGenerateURLs` to `TRUE` to add anchor tags (`<a ...></a></a>`) to text starting with "`www`", "`http:`" or "`file:`". This option applies to word processing documents only. The default is `FALSE`.
`lcbMaxMemUsage` | The maximum memory allocated dynamically for token buffers during file processing. If this maximum is reached, Export performs a swap-to-disk operation internally, and then reuses the memory blocks. Export maintains an internal minimum memory size. This option applies to word processing or text documents only. The default is `LONG_MAX`. The unit is in bytes.
`bSupportColumnHeadings` | Set `bSupportColumnHeadings` to `TRUE` to include column headings from the source spreadsheet in the output. This option applies to spreadsheets only. The default is `FALSE`.
`bSupportRowHeadings` | Set `bSupportRowHeadings` to `TRUE` to include row headings from the source spreadsheet in the output. This option applies to spreadsheets only. The default is `FALSE`.
`bSupportCellSpan` | Set `bSupportCellSpan` to `TRUE` to include `colspan="n"` markup in the output. If text in the source document spans across empty columns, and `bSupportCellSpan` is enabled, the text is output across columns in the HTML. If this option is disabled, text that spans across columns is output in a single cell. This option applies to spreadsheets only. The default value is `FALSE`.
`bSupportRowSpan` | Set `bSupportRowSpan` to `TRUE` to include row span data from the source spreadsheet in the output. This option applies to spreadsheets only. The default value is `FALSE`. Currently not supported.
`bSupportColumnWidth` | Set `bSupportColumnWidth` to `TRUE` to include column width data from the source document in the output. This option applies to spreadsheets only. The default value is `FALSE`.
`bRemoveEmptyColumns` | Set `bRemoveEmptyColumns` to `TRUE` to remove columns that do not contain text or color. To remove empty columns, you must set `bSupportCellSpan` to `FALSE`. This option applies to spreadsheets only. The default is `FALSE`.
`bRemoveEmptyRows` | Set `bRemoveEmptyRows` to `TRUE` to remove empty rows that do not contain text or color. This option applies to spreadsheets only. The default is `FALSE`.
`nRowsBeforeSplit` | The approximate number of spreadsheet rows to be processed before splitting a table. This helps to prevent large spreadsheet tables from occurring in a single document, which can cause speed and processing problems for the browser. This option applies to spreadsheets only. The default is `0`.
`OutputLanguageID` | The language for the textual output of language-specific data such as time and date. `OutputLanguageID` must be in the system locale. If `OutputLanguageID` is invalid or not supplied, the system default is used. Language IDs are defined in `KVLanguageID` in `kvtypes.h`. The default is `Language_UNKNOWN`.
`eStyleSheetType` | One of the enumerated options for processing style sheet information. The options are defined in `KVHTMLStyleSheetType` in `kvhtml.h`. See KVHTMLStyleSheetType. `STYLESHEET_DISABLED`—Disables Cascading Style Sheet (CSS) formatting. `CSS_INLINE`—Enables CSS formatting, and adds style sheet information inline to the HTML output file. `CSS_TOFILE`—Enables CSS formatting, and generates an external file or uses an existing external file, which is referenced in a `<link...>` element. The default is `STYLESHEET_DISABLED`.
`bTabsToTables` | Set `bTabsToTables` to `TRUE` to convert tabbed columns to tables. This option applies to word processing documents only. When you use `bTabsToTables`, the original font in the cells is not maintained. The `bTabsToTables` option is intended for use on plain text files. Its purpose is to make the text more readable when viewed in a browser. Font information is not written into the table cells that are generated. Instead, the default font of the browser is used. The default is `FALSE`.
`bForceOutputCharSet` | Set `bForceOutputCharSet` to `TRUE` to use the output character set specified in `OutputCharSet`. Forcing a character set to `KVCS_UNKNOWN` is always ignored. See Convert Character Sets. The default is `FALSE`.
`bEnableEmptyRows` | Set `bEnableEmptyRows` to `TRUE` to display empty rows in spreadsheets. If you set `bEnableEmptyRows` to `FALSE`, empty rows are not displayed. This option applies only to 20 or more consecutive empty rows. This option applies to spreadsheets only. The default is `FALSE`.
`cReplaceChar` | The character used when a character in the source document's character set cannot be mapped to the output character set. The default replacement character is a question mark (`?`).
`cRedact` | The character used to replace text that is designated through style mapping to be omitted from the output. This functionality is useful when you need to hide confidential or sensitive information. The specified character is used for all text that is mapped to a style processed with the `KVSTYLE_REDACT` flag (defined in `kvtypes.h`). See Map Styles. This option applies to word processing documents only. The default replacement character is "X".
`eSrcCharSet` | Specifies the source character set of the document. The available character sets are enumerated in `KVCharSet` in `kvcharset.h`. See Convert Character Sets. To make sure that the character set defined here is used, you must set `bForceSrcCharSet` to `TRUE`. The default is `KVCS_UNKNOWN`.
`bForceSrcCharSet` | Set `bForceSrcCharSet` to `TRUE` to use the source character set specified in `eSrcCharSet`, regardless of the internal document information. See Convert Character Sets. Forcing a character set to `KVCS_UNKNOWN` is always ignored. The default is `FALSE`.
`nCompressionQuality` | Controls the output quality of graphics that support compression quality (for example, JPEG). A value of `0` means default quality (85 compression); `1` is the lowest quality (highest compression and therefore the smallest file size); `100` is the highest quality (no compression and therefore the largest file size). This option applies to word processing documents only. The default is `0`.
`bNoPictures` | This member is only available in the structure in the template files. It is not part of the structure in the API. If you set `bNoPictures` to `TRUE`, embedded graphics in a document are not generated as separate files, image tags are not included in the output, CSS files do not work, and verbose markup is generated. Because graphics are not generated, the conversion is faster. NOTE: If you want to use CSS files, you must set `bNoPictures` to `FALSE` and use the `KVHTMLSetStyleSheet()` function to request the CSS file (see Use Style Sheets). If you set `bNoPictures` to `FALSE`, embedded graphics in a document are regenerated as separate files, stored in the output directory, and image tags are included in the output. This member is passed to the bIndex argument of the `fpConvertStream()` or `KVHTMLConvertFile()` functions. The default is `FALSE`.

## Discussion

- A pointer to this structure is passed as an argument to `fpConvertStream()` or `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.

- `bNoPictures` is similar to the `KVCFG_BLANKPICTURE` flag in the call to `KVHTMLConfig()`. Unlike `bNoPictures`, the `KVCFG_BLANKPICTURE` flag generates image tags with an empty `src` attribute. KVHTMLConfig().

- To output graphics for presentations, you must set `bNoPictures` to `FALSE`, and set bRasterizeFiles to `TRUE`.

- The values in FontSizeMap indicate the range for the HTML tag `<font size=#>`. For example, if you specify `8`, `10`, `12`, `14`, `18`, and `24`:

  - font size <= 8 in the source document is mapped to `<font size=1>` in the output HTML

  - else, font size <=10 in the source document is mapped to `<font size=2>` in the output HTML

  - else, font size <=12 in the source document is mapped to `<font size=3>` in the output HTML

  - else, font size <=14 in the source document is mapped to `<font size=4>` in the output HTML

  - else, font size <=18 in the source document is mapped to `<font size=5>` in the output HTML

  - else, font size <=24 in the source document is mapped to `<font size=6>` in the output HTML

  - font size >24 in source the document is mapped to `<font size=7>` in the output HTML

When the HTML output is viewed, the browser maps `<font size=``#``>` to a specific font size.

### Set the Resolution of Presentations and Vector Graphics

The cxVectorToRasterXRes and cyVectorToRasterYRes members are set in conjunction to specify the resolution (width and height) at which presentation files and vector graphics are converted.

You can specify the resolution as an absolute size in pixels, or as a proportion of the original size.

KeyView always maintains the aspect ratio of the original graphic and does not increase the resolution. If you set values that would enlarge a graphic, KeyView only changes the size of the HTML element.

To set the resolution in pixels

To specify the resolution in pixels, specify the width (`cxVectorToRasterXRes`) and/or height (`cyVectorToRasterYRes`).

To export the largest image that fits within a bounding box, without changing the original aspect ratio, set both the width and height. For example, to export the largest image that fits in an 800x500 bounding box:

    cxVectorToRasterXRes=800
    cyVextorToRasterYRes=500

Alternatively you can fix one of the dimensions. Set one value and set the other to zero. For example, to export images with a height of 1500 pixels and whatever width is necessary to maintain the original aspect ratio:

    cxVectorToRasterXRes=0
    cyVextorToRasterYRes=1500

The maximum size permitted for either dimension is 4000 pixels.

To set the resolution proportionally

To set the resolution proportionally, set `cxVectorToRasterXRes` to a negative value. A negative value represents a percentage of the original resolution. Set `cyVectorToRasterYRes` to `0` (zero). Negative (percentage) values for `cyVectorToRasterYRes` are ignored.

The following example exports a graphic at 50 percent of its original resolution:

    cxVectorToRasterXRes=-50
    cyVectorToRasterYRes=0

_FT_HTML5_bannerTitle.htm