---
product: Chilkat
product_version: 11.7.0
language: pascal
language_label: Lazarus Pascal
class: HtmlToText
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/pascal_HtmlToTextRef.html
---
# Chilkat HtmlToText — Lazarus Pascal — v11.7.0

> Chilkat 11.7.0 · language=pascal · 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/pascal/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 / Free**

```pascal
uses
  Chilkat.HtmlToText;

var
  obj: THtmlToText;
begin
  obj := THtmlToText.Create;
  try
    if not obj.IsValid then
      raise Exception.Create('Failed to create a THtmlToText instance.');

    // ... use obj ...

  finally
    obj.Free;
  end;
end;
```

`constructor Create;`

Allocates the underlying CkHtmlToText object and returns a new THtmlToText instance. Simply adding **Chilkat.HtmlToText** to the unit's `uses` clause is enough to locate and bind to the Chilkat shared library (DLL / .so / .dylib) at runtime — no separate load step is required. Check `obj.IsValid` after calling `Create`; it is `False` if the underlying library could not be found/loaded or the object could not be allocated (for example, when unlicensed).

`destructor Destroy; override;`

Every THtmlToText created by calling `Create` should eventually be released by calling `.Free` (inherited from `TObject`). The destructor automatically disposes the underlying CkHtmlToText handle. A native (unmanaged) memory leak occurs if the object is never freed.

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 Lazarus Pascal.

## 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` | `property DebugLogFilePath: string read GetDebugLogFilePath write SetDebugLogFilePath;` | 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` | `property LastErrorHtml: string read GetLastErrorHtml;` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `property LastErrorText: string read GetLastErrorText;` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `property LastErrorXml: string read GetLastErrorXml;` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `property LastMethodSuccess: Boolean read GetLastMethodSuccess write SetLastMethodSuccess;` | read/write | Indicates the success or failure of the most recent method call: `True` means success, `False` means failure. |
| `VerboseLogging` | `property VerboseLogging: Boolean read GetVerboseLogging write SetVerboseLogging;` | read/write | If set to `True`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `property Version: string read GetVersion;` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `DecodeHtmlEntities` | property, read/write | `property DecodeHtmlEntities: Boolean read GetDecodeHtmlEntities write SetDecodeHtmlEntities;` |
| `RightMargin` | property, read/write | `property RightMargin: Integer read GetRightMargin write SetRightMargin;` |
| `SuppressLinks` | property, read/write | `property SuppressLinks: Boolean read GetSuppressLinks write SetSuppressLinks;` |
| `UncommonOptions` | property, read/write | `property UncommonOptions: string read GetUncommonOptions write SetUncommonOptions;` |
| `ToText` | method | `function ToText(const html: string): string;` |
| `ToTextSb` | method | `// sb is a TStringBuilder object. function ToTextSb(sb: TChilkatBase): Boolean;` |

## Properties

### HtmlToText.DecodeHtmlEntities

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

```pascal
property DecodeHtmlEntities: Boolean read GetDecodeHtmlEntities write SetDecodeHtmlEntities;
```

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 · pascal · HtmlToText · RightMargin · property · read/write`

```pascal
property RightMargin: Integer read GetRightMargin write SetRightMargin;
```

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 · pascal · HtmlToText · SuppressLinks · property · read/write`

```pascal
property SuppressLinks: Boolean read GetSuppressLinks write SetSuppressLinks;
```

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 · pascal · HtmlToText · UncommonOptions · property · read/write · since 11.0.0`

```pascal
property UncommonOptions: string read GetUncommonOptions write SetUncommonOptions;
```

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 · pascal · HtmlToText · ToText · method`

```pascal
function  ToText(const html: string): string;
```

**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 · pascal · HtmlToText · ToTextSb · method · since 9.5.0.97`

```pascal
// sb is a TStringBuilder object.

function  ToTextSb(sb: TChilkatBase): Boolean;
```

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.

## Related classes

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

