Skip to content

magalyg/rtfToHtml

Repository files navigation

@magzgtz/rtf-to-html

A TypeScript library that converts RTF (Rich Text Format) strings into HTML, preserving text formatting, styles, and hyperlinks.

Features

  • Bold, italic, underline, and strikethrough text
  • Headings (h1, h2) and paragraphs
  • Font families, font sizes, and text colors
  • Text alignment and indentation
  • Hyperlinks
  • Superscript and subscript
  • Inline CSS styles on all output elements
  • Promise-based async API

Installation

npm install @magzgtz/rtf-to-html

Usage

import { rtfToHtml } from "@magzgtz/rtf-to-html";

const rtf = String.raw`{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard This is {\b bold} and {\i italic} text.\par}`;

const html = await rtfToHtml(rtf);
console.log(html);

Output

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <style>
      .body { margin-left: 0pt; ... }
    </style>
  </head>
  <body>
    <p>
      <span>This is </span><span><strong>bold</strong></span
      ><span> and </span><span><em>italic</em></span
      ><span> text.</span>
    </p>
  </body>
</html>

API

rtfToHtml(rtf: string): Promise<string>

Converts an RTF string to an HTML document string.

Parameter Type Description
rtf string A valid RTF string

Returns: Promise<string> — a full HTML document as a string.

Throws: Rejects with an error if the RTF input is malformed or cannot be parsed.

Supported RTF Elements

RTF Control HTML Output
\b <strong>
\i <em>
\ul <u>
\strike <s>
\super <sup>
\sub <sub>
\par <p>
Heading 1 style <h1>
Heading 2 style <h2>
\field (HYPERLINK) <a href="...">
Font, size, color inline style=""

Development

Prerequisites

  • Node.js 18+
  • npm

Setup

git clone https://github.com/magalyg/rtfToHtml.git
cd rtfToHtml
npm install

Run the CLI demo

npm start

You will be prompted to paste an RTF string. The converted HTML is printed to stdout.

Build the library

npm run build

Compiled output lands in dist/.

License

ISC

About

repository for rtf to htm

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors