"This is an excellent unique product that has saved us many hours of work." — Stewart S., UK

ScroogeXHTML for Object Pascal

Version 11.0

ScroogeXHTML for Object Pascal is a document conversion software library for Object Pascal (Delphi and Free Pascal/Lazarus). It can be used to convert RTF (rich text format) documents to HTML5 standalone documents, or to HTML markup fragments, which can be embedded in other documents. This enables software applications to create HTML from existing RTF documents 'on demand'.

  • Supports text formatting attributes such as bold, italic, underline, and background/highlight colors.
  • Supports paragraph formatting: alignment (left, right, centered, and justified) and indentation (left, right, and first-line).
  • Supports numbered and bulleted lists; from version 11.0 also nested (multi-level) lists.
  • Unicode conversion supports multilingual documents, including Simplified Chinese, Traditional Chinese, Korean, and Japanese.
  • Contact us if you are unsure whether a specific feature is supported.
  • Tab characters are not converted (they are replaced with sequences of non-breaking spaces).
  • From version 11.0, converts tables, including header rows, column widths, borders, cell shading and horizontally merged cells. Vertically merged cells and nested tables are not converted.
  • Supports extraction of raw image data from embedded images. Converting images to web-compatible formats may require third-party libraries.
  • Includes complimentary WMF-to-PNG conversion code for Delphi users.
  • Includes complimentary embedding of PNG and JPG images as Data URIs.
  • With throughput of up to several megabytes per second, ScroogeXHTML for Object Pascal is among the fastest solutions available.

Focus of release 11.0:

RTF tables become HTML tables, with header rows, column widths, borders, shading and merged cells - multi-level lists become nested HTML lists - new defaults, as in the Java product: font sizes in em, empty paragraphs become line breaks, language tags, larger embedded pictures - valid bookmark anchors and internal links - DOM API with W3C names. This release has breaking changes; the migration guide shows how to keep the 10.x output
migration guide - full release notes

Conversion example with embedded images

Input (RTF document) - as shown in MS Wordpad
example 2 RTF
Notes
  • The first picture uses the JPG format, the second uses PNG
Output (HTML document) - as shown in Mozilla Firefox
example 2 HTML
Notes
Text properties
Bold/italic/underlined ✓/✓/✓
Foreground/background/highlight color ✓/✓/✓
Subscript/superscript ✓/✓
Strikethrough/hidden ✓/✓
Relative font size units em (default)
Absolute font size units px, pt
LTR/RTL text ✓/✓
Unicode/DBCS text ✓/✓
Symbol font characters ✓ (converted to Unicode)
Language attribute ✓
Paragraph properties
Left/right/centered/justified alignment ✓/✓/✓/✓
Left/right/first line indent ✓/✓/✓
Space before/after ✓/✓
Background color ✓
Border box color/width ✓/✓
Border box line style ✓
Tabulators replaced by a sequence of non breaking spaces
Lists
Numbered/unnumbered lists ✓/✓
Nested (multi-level) lists ✓New in 11.0
Support for \listtable definitions ✓
Support for \*\pn destination based lists ✓
TablesNew in 11.0
Simple tables ✓
Header rows ✓
Cells with several paragraphs ✓
Total width: pixel/percent ✓/✓
Left margin: pixel/percent ✓/✓
Column width: pixel/percent ✓/✓
Row height ✓
Table alignment: left/centered/right ✓/✓/✓
Horizontal cell merging ✓
Cell background color ✓
Cell borders ✓
Cell vertical alignment ✓
Cell padding ✓
Other content
Document body language ✓ (based on \deflang token)
External hyperlinks ✓
Internal links (bookmarks) ✓
Field results ✓
Pictures
Picture data extraction ✓
Extracted picture formats BMP/EMF/JPG/PICT/PNG/WMF
Picture storage types Binary/hexadecimal
Picture embedding ② Data URI (JPG/PNG)
Picture data conversion ② BMP/WMF to PNG
Output document types
HTML5 ✓
XHTML 1.0 Strict ✓
Optimization
CSS based document minimizer ✓
Font name substitution ✓
Advanced features
Post processing events ✓
Security
Input limits: group nesting, binary and picture data, font/color table entries ✓
URL scheme allow-list for hyperlinks ✓
Strict mode for malformed RTF ✓
Tested with
Delphi 2009 ✓
Free Pascal 3.2.2 ✓

Prices are per developer seat (excl. tax).

  BUSINESS
€160/year
Lifetime license ✓
Redistribution in single-user applications ✓
Basic support included ✓
Updates and upgrades included ✓
Library source code included ✓
Early access to development snapshots ✓
Supported compilers Delphi 2009+
Free Pascal 3.2+
  Subscribe »
Single Developer License and Server Deployment License terms are explained here.
€40.00 per user for the first 3 months. The subscription then continues at €160.00 per user and year, renewing annually unless cancelled. You can cancel at any time in the first 3 months and keep a perpetual license for the versions released until then.
Subscription cancellation is possible on Paddle Customer Portal

Prices are excluding tax.

  1 000
concurrent users
€237.50
100 000
concurrent users
€203.75
/3 months
Unlimited
concurrent users
€407.50
/3 months
License type perpetual subscription subscription
Payment interval one time recurring (every 3 months) recurring (every 3 months)
License expiration does not expire expires if the subscription is not renewed expires if the subscription is not renewed
  Buy now Subscribe » Subscribe »
 
The Server Deployment License does not require any special license keys. The proof of purchase is your license document.
Single Developer License and Server Deployment License terms are explained here.
Subscription cancellation is possible on Paddle Customer Portal
book

Manual

The "Getting Started" user guide

search

API Docs

Online API documentation

list

Release Notes

Enhancements and bug fixes

help_outline

FAQ

Frequently Asked Questions

alternate_email

Contact

Support and sales inquiries

pages

Blog

Technical articles and announcements

get_app

Free demo version:

Download »

get_app

Installer for registered users:

Download »

General

On the library home page you will find a link to the download area for registered users. The credentials (your Paddle subscription or transaction ID and a password) will be sent to you by mail.

To check if the conversion meets your requirements, you may try the free demo application.

Licensing

By purchasing a license you agree to the license and to our Terms of Service. The full license texts for Java and Object Pascal are linked from the license types page.

ScroogeXHTML License Types

check

Yes, each developer who writes, modifies or maintains code that uses the library needs their own developer license. Build servers, continuous integration systems, testers and end users of your applications do not need a license.

check

Yes. Licenses are offered to business customers only, including freelancers acting in their professional capacity; they are not offered to consumers. Licenses are per developer, so a single developer simply buys one license. The same license terms apply to freelancers and companies.

Terms of Service: Business customers only

Pricing and subscription

Developer licenses are annual subscriptions, priced per developer seat. The prices of all editions, and the introductory offer where one applies, are shown in the order section. There are no royalties or runtime fees for single-user applications; server-side use requires Server Deployment Licenses (see below).

Editions and prices

Where an introductory price applies (ScroogeXHTML for Object Pascal, and the Jar Edition for Java), the first 3 months are an evaluation period at a reduced price: you get the full product without functional restrictions. You can cancel at any time in the first 3 months; the subscription then ends after the 3 months and does not renew. You keep a perpetual license for the versions released until then; only updates and support end.

Yes. The subscription renews until you cancel. You can cancel at any time before the next renewal date.

Please visit the Paddle customer portal.

Paddle customer portal

No. Your net price will not increase for as long as you keep renewing. Only tax or fees (such as VAT or payment-provider charges) can vary, if the applicable rate changes.

Terms of Service: Subscription prices

Orders are processed by Paddle, our online reseller and merchant of record. Paddle issues the invoice and handles sales tax and VAT. Business customers in the EU can enter a valid VAT ID at checkout to have VAT removed under the reverse-charge procedure. If you omitted the VAT ID, you can use the customer portal to update your order.

Yes, please contact us, and we will send you a Paddle manual invoice with the necessary details. Manual invoices allow payment by wire transfer or by other means, such as a credit card.

You will have a one-time opportunity to update the names, tax ID, and address on your invoice on the Paddle customer portal.

Paddle customer portal

No. Editions that include the library source code, Server Deployment Licenses, and subscriptions with an evaluation period are not eligible for refund or return. To evaluate the library, use the demo, and where an introductory price applies, the 3-month evaluation period: the full product at a reduced price, which you can cancel at any time in the first 3 months. You can stop any later renewal by cancelling in time.

Terms of Service: Refunds and returns

The credentials for the download area for registered users will be sent to you by mail. If you do not receive the mail in your inbox, please check your spam or junk folder. If you still cannot locate it, please contact us.

Distribution

check

Yes. You may distribute, in executable form only, single-user applications that you create with the library, without additional license or fees. Your customers do not need their own license, but they may not use the library in programs of their own. The library must not be shipped as a separate binary (jar or dcu file).

No, single-user applications can be distributed royalty-free. The license requires an attribution statement in your programs acknowledging the use of ScroogeXHTML. Server-side applications require Server Deployment Licenses.

Yes, editions that include the source code may be modified for use in your own applications. The modified source code remains Habarisoft's property and may not be distributed.

block

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.

Updates and cancellation

Yes, all minor and major updates are included while the subscription is active.

No, developer licenses are perpetual, including licenses bought at an introductory price. However, you will be using the last product version released before your subscription ended: updates and support end with the subscription. A license may also be revoked in case of license violations.

Your Paddle invoices show your subscription period. Together with the release dates in the release notes, they document which versions are covered by your license. We recommend keeping the invoices and noting the library version you use in your project.

Release notes

Server Deployment License

help_outline

License types (Single Developer License and Server Deployment License) are explained on the page /scroogexhtml_license.html.

ScroogeXHTML License Types

No. Server Deployment Licenses are licensed by the number of concurrent users, counted across all servers and all applications that use the library. Choose the license that covers your total number of concurrent users: 1 000, 100 000 or unlimited.

help_outline

Server Deployment Licenses are available under two license models, 'Perpetual' or 'Subscription'. When licensed as a subscription, the license expires when the subscription ends. Licenses may also expire in case of license violations.

No, the proof of purchase for Server Deployment Licenses is your license document.

block

No. ScroogeXHTML Server Deployment Licenses or parts of it may not be distributed, sold, rented or transferred to any other party, this includes mergers and acquisitions of the license holder.

Legal

The Terms of Service and the limited warranty of the license are both governed by the laws of Germany.

Terms of Service

Picture Support

No, 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. The distribution may include complimentary and unsupported 'picture adapter' code to convert and embed pictures.

More questions and answers are included in the Getting Started document (PDF).