ScroogeXHTML
RTF to HTML5
and XHTML converter
for the Java™ platform

Version 8.0.0 online converter demo

Overview

ScroogeXHTML for the Java platform is a library which supports a subset of the Rich Text Format (RTF) standard and converts to HTML5 and XHTML, as a standalone document, or as a fragment which can be embedded in other documents, with little coding.

link

It supports RTF features such as hyperlinks, field results, simple tables, picture data extraction, and embeds PNG and JPG pictures as data URIs

code

It minimizes documents using CSS font definitions, and supports post processing of the intermediate DOM document for additional fine tuning

settings

It is easy to use, and requires no external runtime libraries except the SLF4J logging facade

language

The online demo converts a RTF document and displays the result HTML5

Try the demo

"Hello world" example

code

Java code

package com.scroogexhtml.examples.helloworld;

import com.scroogexhtml.ScroogeXHTML;

public class Main {
    public static void main(String ... args) {
        ScroogeXHTML converter = new ScroogeXHTML();
        String html = converter.convert("{\\rtf1 Hello world}");
        System.out.println(html);
    }
}

HTML output


      <p>Hello world</p>
                

Font style example

code

Java code

package com.scroogexhtml.examples.fontstyle;

import com.scroogexhtml.ScroogeXHTML;

public class Main {
    public static void main(String ... args) {
        ScroogeXHTML converter = new ScroogeXHTML();
        String html = converter.convert("{\\rtf1 {\\b Bold \\i Bold Italic \\i0 Bold again} \\par}");
        System.out.println(html);
    }
}

HTML output


      <p>
          <span style="font-weight:bold;">Bold </span><span style="font-weight:bold;font-style:italic;">Bold Italic </span><span style="font-weight:bold;">Bold again</span> 
      </p>
                

Post processing example

code

Java code

public class Main {

    public static void main(String... args) {
        ScroogeXHTML scrooge = new ScroogeXHTML();
        scrooge.setAddOuterHTML(true);
        
        scrooge.addPostProcessListener(new PostProcessListener() {
            @Override
            public void postProcess(PostProcessEventObject e) {
                Document doc = e.getDocument();
                Element html = doc.getDocumentElement();
                Node head = html.getFirstChild();

                // add meta date
                Element metaDate = doc.createElement("meta");
                metaDate.setAttribute("name", "date");
                metaDate.setAttribute("content", new Date().toString());
                head.appendChild(metaDate);
            }
        });

        String html = scrooge.convert("{\\rtf1 Hello world}");
        System.out.println(html);
    }
}

HTML output


    <!DOCTYPE html>
    <html>
      <head>
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Untitled document</title>
        <meta content="ScroogeXHTML for the Java(tm) platform 8.0" name="generator">
        <meta content="Fri Jan 11 10:39:02 CET 2019" name="date">
      </head>
      <body>
        <p>Hello world</p>
      </body>
    </html>
                
Text properties
Bold/italic/underlined ✓/✓/✓
Foreground/background/highlight color ✓/✓/✓
Subscript/superscript ✓/✓
Strikethrough/hidden ✓/✓
LTR/RTL text ✓/✓
Unicode/DBCS text ✓/✓
Language attribute
Paragraph properties
Left/right/centered/justified alignment ✓/✓/✓/✓
Left/right/first line indent ✓/✓/✓
Background color
Border box
Space before/after ✓/✓
Numbered/unnumbered lists ✓/✓ ①
Tabulators replaced by a sequence of non breaking spaces
Tables
Simple tables
Total width
Left margin
Column width
Horizontal cell merging
Cell background color
Row height
Simple border detection
Other content
Hyperlink fields
Bookmark fields
Footnotes
Document types
HTML5
XHTML 1.0 Transitional
Optimization
CSS based document minimizer
Font substitution
Logging framework
SLF4J support
Java platform
Minimum supported platform Java SE 8
Tested with Oracle JDK 8 / OpenJDK 11 ✓/✓
Dependencies
SLF4J
Advanced features
Picture data extraction ✓ ②
Data URI image embedding ✓ ③
Post processing (XPath based)
Android platform see Base64Utils API docs
Experimental
List templates (RTF listtable section)
generates <ol>/<ul>/<li> elements but result quality varies between RTF writer applications
Tests
JUnit tests ✓ (Source Edition)
Other
Installer and uninstaller

① uses direct text formatting, does not generate <ol>/<ul>/<li> HTML elements

② conversion of image data to a web-safe format is not included

③ the included MemoryPictureAdapterBase64 supports embedding of PNG and JPG pictures

  Indie edition Jar edition Source edition
Lifetime license
Free redistribution in single-user applications
Free basic support included One year One year One year
Updates and upgrades included One year One year One year
Server deployment licenses included 4 4 4
Instant electronic delivery
Library source code included - -
Early access to development snapshots - -
Single Developer / Server Deployment License explained Buy now Companies or incorporated entities with more than five employees must purchase Jar or Source edition licenses. Buy now Buy now

Released 11 January 2019

book

Manual

Read the "Getting Started" user guide

search

API

Browse the online API documentation

list

Release notes

Browse release notes (new features, enhancements, and bug fixes)

help_outline

FAQ

Frequently asked questions: use cases, licensing, and technical

alternate_email

Contact

Contact Habarisoft for support and sales inqueries

bug_report

bug_report

Submit a bug report

get_app

Installer (Source edition) for registered users:

Download »

Past releases (Source edition):
7.0 | 7.1 | 7.2 | 7.3

get_app

Installer (Jar edition) for registered users:

Download »

Past releases (Jar edition):
7.0 | 7.1 | 7.2 | 7.3

General

On the library home page you will find a link to the download area for registered users. The credentials (user name and password) will be sent to you when a new release is available.

A trial version download is not available. To check if the library meets your requirements, you can try the online demo or purchase a Single Developer license, which includes a 14 days full money back guarantee. This allows to test the full version of the library without any risk. The reseller (ShareIt) will give a full refund if you find that the library does not work as expected.

Picture Support

The library does not convert embedded pictures. It extracts binary picture data from the RTF document. The picture data may be in WMF, JPEG, or other formats. For small images, embedding as Data URI is possible, and - depending on the image format - no additional data conversion is required .

Licensing

Yes, each developer that uses our products must have their own license.

No, the licenses are perpetual. However, you will be using the last product version released before your free upgrade period expired.

Yes! If you are a registered user, please contact Habarisoft and ask for discount coupon code.

Distribution

No, the source code is not redistributable, even if you change it. Under no circumstances is it acceptable to disclose the source to any third party.

Server Deployment license

Server Deployment Licenses are required if ScroogeXHTML for the Java platform is used on the server side of a client/server application.

No. A Server Deployment license covers all applications on the server.

No. Server Deployment license are perpetual, except in the case of license violations.

No. The proof of purchase for Server Deployment licenses is your license document.

Actiance

Advocate Health Care

APT Business Solutions

Becton, Dickinson and Company

Canadian Natural Resources

Criterion Security Services

Denim Group

e-vendo

Fatax

GE Medical Systems

Glencore International AG

Include Software

Iodine Software

洁茹 牛

Mayo Foundation

Manuh Solutions

Micrologos Software Developer

NVISIA

NxGen Software

PAGU.at

PENTA college

Philips Medical Systems

ProClarity Corporation

QuadraMed Corporation

상호 정

Saxos Informatica

Scherer Software

Sigmalogic

TIP Technologies

YADA Systems

format_quote

"This is an excellent unique product that has saved us many hours of work. It is simple to use with lots of documentation."

Stewart S., UK
format_quote

"Scrooge has really helped me out! I'm converting a database of 10,000 questions in RTF into HTML, Scrooge has been invaluable!"

J. M., USA
format_quote

"It works great and it is stunningly fast - on production, converting 115.000 documents takes 25 seconds instead of 9 hours."

Robert S., Germany
format_quote

"We are very, very glad with this Component"

M. R., Germany