---
product: Chilkat
product_version: 11.7.0
language: c
language_label: C
class: HtmlToText
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/c_CkHtmlToTextRef.html
---
# Chilkat HtmlToText — C — v11.7.0

> Chilkat 11.7.0 · language=c · class=HtmlToText
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/HtmlToText.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/c/guide.md`.

## Purpose

**Convert HTML into readable plain text with control over links, wrapping, and encoding.**

`Chilkat.HtmlToText` converts HTML content into readable plain text. It can decode HTML entities, wrap output at a configurable right margin, optionally include or suppress hyperlink URLs, convert HTML supplied as a string or `StringBuilder`, and read or write files using an explicit character encoding.

**HTML to plain text**

Convert HTML markup into readable text suitable for display, logging, indexing, email alternatives, or text-only output.

**Entity decoding**

Decode HTML entities so text such as named entities and numeric character references becomes normal readable output.

**Line wrapping**

Use `RightMargin` to wrap text at a chosen width, or set it to `0` when no right-margin wrapping is wanted.

**Link handling**

Suppress hyperlink URLs for cleaner text, or emit URLs when the output needs to preserve the destination of HTML links.

**StringBuilder support**

Convert HTML directly from a `StringBuilder` when working with larger or incrementally built HTML content.

**File and charset helpers**

Read HTML from files and write text output using a specified character encoding.

**Common pattern:** Provide the HTML as a string, file, or `StringBuilder`, choose whether to decode entities and include link URLs, set the desired right margin, then convert the result to plain text. Use `HtmlToText` when the goal is readable text, not structured XML or DOM-style parsing.

For an extended overview, see [HtmlToText Class Overview](https://www.chilkatsoft.com/htmltotext_class_overview.asp).

## Object creation, unlocking and error handling

**Create/Dispose**

```c
HCkHtmlToText instance = CkHtmlToText_Create();
// ...
CkHtmlToText_Dispose(instance);
```

`HCkHtmlToText CkHtmlToText_Create(void);`

Creates an instance of the HCkHtmlToText object and returns a handle ("void \*" pointer). The handle is passed in the 1st argument for the functions listed on this page.

`void CkHtmlToText_Dispose(HCkHtmlToText handle);`

Objects created by calling CkHtmlToText_Create must be freed by calling this method. A memory leak occurs if a handle is not disposed by calling this function. Also, any handle returned by a Chilkat "C" function must also be freed by the application by calling the appropriate Dispose method, such as CkHtmlToText_Dispose.

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in C.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `void CkHtmlToText_getDebugLogFilePath(HCkHtmlToText cHandle, HCkString retval); void CkHtmlToText_putDebugLogFilePath(HCkHtmlToText cHandle, const char *newVal); const char *CkHtmlToText_debugLogFilePath(HCkHtmlToText cHandle);` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastErrorHtml` | `void CkHtmlToText_getLastErrorHtml(HCkHtmlToText cHandle, HCkString retval); const char *CkHtmlToText_lastErrorHtml(HCkHtmlToText cHandle);` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `void CkHtmlToText_getLastErrorText(HCkHtmlToText cHandle, HCkString retval); const char *CkHtmlToText_lastErrorText(HCkHtmlToText cHandle);` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `void CkHtmlToText_getLastErrorXml(HCkHtmlToText cHandle, HCkString retval); const char *CkHtmlToText_lastErrorXml(HCkHtmlToText cHandle);` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `BOOL CkHtmlToText_getLastMethodSuccess(HCkHtmlToText cHandle); void CkHtmlToText_putLastMethodSuccess(HCkHtmlToText cHandle, BOOL newVal);` | read/write | Indicates the success or failure of the most recent method call: `TRUE` means success, `FALSE` means failure. |
| `Utf8` | `BOOL CkHtmlToText_getUtf8(HCkHtmlToText cHandle); void CkHtmlToText_putUtf8(HCkHtmlToText cHandle, BOOL newVal);` | read/write | When set to `TRUE`, all `const char *` arguments and return values are interpreted as UTF-8 strings. |
| `VerboseLogging` | `BOOL CkHtmlToText_getVerboseLogging(HCkHtmlToText cHandle); void CkHtmlToText_putVerboseLogging(HCkHtmlToText cHandle, BOOL newVal);` | read/write | If set to `TRUE`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `void CkHtmlToText_getVersion(HCkHtmlToText cHandle, HCkString retval); const char *CkHtmlToText_version(HCkHtmlToText cHandle);` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `DecodeHtmlEntities` | property, read/write | `BOOL CkHtmlToText_getDecodeHtmlEntities(HCkHtmlToText cHandle); void CkHtmlToText_putDecodeHtmlEntities(HCkHtmlToText cHandle, BOOL newVal);` |
| `RightMargin` | property, read/write | `int CkHtmlToText_getRightMargin(HCkHtmlToText cHandle); void CkHtmlToText_putRightMargin(HCkHtmlToText cHandle, int newVal);` |
| `SuppressLinks` | property, read/write | `BOOL CkHtmlToText_getSuppressLinks(HCkHtmlToText cHandle); void CkHtmlToText_putSuppressLinks(HCkHtmlToText cHandle, BOOL newVal);` |
| `UncommonOptions` | property, read/write | `void CkHtmlToText_getUncommonOptions(HCkHtmlToText cHandle, HCkString retval); void CkHtmlToText_putUncommonOptions(HCkHtmlToText cHandle, const char *newVal); const char *CkHtmlToText_uncommonOptions(HCkHtmlToText cHandle);` |
| `ToText` | method | `BOOL CkHtmlToText_ToText(HCkHtmlToText cHandle, const char *html, HCkString outStr); const char *CkHtmlToText_toText(HCkHtmlToText cHandle, const char *html);` |
| `ToTextSb` | method | `BOOL CkHtmlToText_ToTextSb(HCkHtmlToText cHandle, HCkStringBuilder sb);` |

Deprecated members are listed at the end of this file with their replacements; do not use them in new code.

## Properties

### HtmlToText.DecodeHtmlEntities

`Chilkat 11.7.0 · c · HtmlToText · DecodeHtmlEntities · property · read/write`

```c
BOOL CkHtmlToText_getDecodeHtmlEntities(HCkHtmlToText cHandle);
void CkHtmlToText_putDecodeHtmlEntities(HCkHtmlToText cHandle, BOOL newVal);
```

Controls whether HTML character references are decoded when converting HTML to plain text. The default value is `TRUE`.

| Value | Behavior |
| :--- | :--- |
| `TRUE` | HTML entities and numeric character references are decoded to their corresponding characters. For example, `&amp;` becomes `&`. |
| `FALSE` | Character references are left encoded in the plain-text output. |

**Typical use:** Leave this property set to `TRUE` when the goal is human-readable text. Set it to `FALSE` when the original entity notation itself must be preserved.

### HtmlToText.RightMargin

`Chilkat 11.7.0 · c · HtmlToText · RightMargin · property · read/write`

```c
int CkHtmlToText_getRightMargin(HCkHtmlToText cHandle);
void CkHtmlToText_putRightMargin(HCkHtmlToText cHandle, int newVal);
```

Controls line wrapping in the generated plain text. The default value is `80`. As a line approaches the configured margin, Chilkat attempts to wrap at a SPACE character. Set this property to `0` to disable right-margin wrapping.

**Soft margin:** The right margin is a preferred wrapping point, not a guaranteed maximum line length. A long sequence with no suitable SPACE character may extend beyond the configured margin.

### HtmlToText.SuppressLinks

`Chilkat 11.7.0 · c · HtmlToText · SuppressLinks · property · read/write`

```c
BOOL CkHtmlToText_getSuppressLinks(HCkHtmlToText cHandle);
void CkHtmlToText_putSuppressLinks(HCkHtmlToText cHandle, BOOL newVal);
```

Controls whether hyperlink destination URLs are included in the generated plain text. The default value is `TRUE`.

| Value | Behavior |
| :--- | :--- |
| `TRUE` | The visible anchor text is retained, but hyperlink destination URLs are omitted. |
| `FALSE` | Hyperlink URLs are included. By default, they are collected in a `References:` section at the end of the plain text. |

For example, with `SuppressLinks` set to `FALSE`, an HTML link whose visible text is `chilkat` and whose URL is `https://www.chilkatsoft.com/` produces the visible text and a numbered reference at the end of the output.

**Related options:** When link URLs are enabled, `UncommonOptions` can be used to suppress the trailing references list with `NoReferencesList` or emit URLs inline with `EmitUrls`.

### HtmlToText.UncommonOptions

`Chilkat 11.7.0 · c · HtmlToText · UncommonOptions · property · read/write · since 11.0.0`

```c
void CkHtmlToText_getUncommonOptions(HCkHtmlToText cHandle, HCkString retval);
void CkHtmlToText_putUncommonOptions(HCkHtmlToText cHandle, const char *newVal);
const char *CkHtmlToText_uncommonOptions(HCkHtmlToText cHandle);
```

Specifies uncommon HTML-to-text conversion options as a comma-separated list of keywords. The default is the empty string, which is appropriate for normal use.

| Keyword | Effect |
| :--- | :--- |
| `NoReferencesList` | Does not generate the hyperlink-reference list at the end of the plain-text output. |
| `EmitUrls` | Emits hyperlink URLs inline in the plain-text output instead of relying on the default trailing reference list. |

**Interaction with SuppressLinks:** These options control the presentation of hyperlink URLs when URL output is enabled. If `SuppressLinks` is `TRUE`, hyperlink URLs are suppressed.

## Methods

### HtmlToText.ToText

`Chilkat 11.7.0 · c · HtmlToText · ToText · method`

```c
BOOL CkHtmlToText_ToText(HCkHtmlToText cHandle, const char *html, HCkString outStr);
const char *CkHtmlToText_toText(HCkHtmlToText cHandle, const char *html);
```

**Full documentation for this method (same in every language):** [HTML Tables to Plain Text Conversion Gallery](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/html_table_to_text.md)

Converts the HTML in `html` to readable plain text and returns the result. The conversion honors `DecodeHtmlEntities`, `RightMargin`, `SuppressLinks`, and `UncommonOptions`. HTML markup is interpreted to produce readable text rather than simply being removed with a tag-stripping operation.

**Plain-text conversion:** The output is intended for reading, indexing, logging, email text alternatives, and similar text-oriented uses. It is not intended to preserve the original HTML markup or visual layout exactly.

Returns TRUE for success, FALSE for failure.

### HtmlToText.ToTextSb

`Chilkat 11.7.0 · c · HtmlToText · ToTextSb · method · since 9.5.0.97`

```c
BOOL CkHtmlToText_ToTextSb(HCkHtmlToText cHandle, HCkStringBuilder sb);
```

Converts the HTML currently contained in `sb` to plain text in place. On success, the same `StringBuilder` contains the converted plain-text result. The conversion honors `DecodeHtmlEntities`, `RightMargin`, `SuppressLinks`, and `UncommonOptions`.

**StringBuilder workflow:** Use this method when the HTML is already held in a `StringBuilder` and you want the conversion result returned through that same object rather than as a separate string.

Returns TRUE for success, FALSE for failure.

## Deprecated members — do not use in new code

| Member | Kind | Deprecated in | Use instead |
|---|---|---|---|
| `ReadFileToString` | method | before 11.6.1 | — |
| `WriteStringToFile` | method | before 11.6.1 | — |

## Related classes

[`StringBuilder`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/c/classes/StringBuilder.md)

