Breadcumbs
Main content

Layout Engine

What is a layout engine?

A layout engine is software that outputs text string images in accordance with the input text and the font specified by an application program. It takes the single-character images acquired from a rasterizer (for outline fonts) or from a bitmap handler (for bitmap fonts) and does the layout of those images to generate the text string image.

This software is necessary to correctly display languages (Arabic, Thai, etc.) with complex grammar rules.

In Arabic, the text is written from right to left. In addition, the same character changes in form depending on its position in a text or word. In Thai, vowels and tone codes are placed at the top and bottom and left and right of consonant characters. The layout engine generates correct text string images by doing the layout of single-character images in accordance with these kinds of complex grammar rules.

<Arabic grammar rule processing example>

Input text character code string { 0643, 062A, 0627, 0628 }

Arabic grammar rule processing example

Ricoh's layout engine includes:

Bidi ( Bidirectional ) Algorithm

When characters written left to right and characters written right to left are mixed together, there are ambiguities in the direction in which the characters should be displayed. For such cases, an algorithm defined in Unicode® is used to decide the display direction.

<Example mixing Arabic and English characters>

The writing direction of the text as a whole is the direction used by Arabic (right to left), but the numbers are written left to right.

Example mixing Arabic and English characters

The writing direction of the text as a whole is the direction used by European languages (left to right), but the portion containing Arabic characters is written right to left.

Example mixing Arabic and English characters

Ricoh's rasterizer and layout engine:

Since this is totally internally developed software, you do not have to worry about open-source license problems or quality assurance.

Since the source code is provided, you don’t have to be concerned about the development environment or execution environment.

Layout engine configuration

There is a possibility that third-party font files can be used with rasterizers and layout engines for TrueType Fonts.

For more information, please use the free consultation function below.

Program size

Rasterizer 80[KB]
Layout engine 85[KB]
 

Note: Varies depending on the environment where compiled.

TrueType Font use

Program size

Rasterizer 52[KB]
Layout engine 30[KB]
Layout data Japanese 15[KB]
European languages 21[KB]
Simplified Chinese characters 12[KB]
Traditional Chinese characters 12[KB]
Korean 12[KB]
Arabic 54[KB]
Thai 20[KB]
Hebrew 29[KB]
Vietnamese 20[KB]
Hindi 176[KB]
 

Note: Varies depending on the environment where compiled.

RT font use

There is a possibility that third-party font files can be used if they are converted to our format.

For more information, please use the free consultation function below.

Program size

Bitmap font handler 30[KB]
Layout engine 30[KB]
Layout data Japanese 15[KB]
European languages 21[KB]
Traditional Chinese characters 12[KB]
Korean 12[KB]
Arabic 54[KB]
Thai 53[KB]
Vietnamese 20[KB]
 

Note: Varies depending on the environment where compiled.

Bitmap font use

Layout functions

<Adjustment of space between lines and characters>

It is possible to adjust the space between lines and characters.

Adjustment of space between lines and characters

Adjustment of space between lines and characters

<Character alignment>

It is possible to specify right/left and top/bottom character alignment.

Character alignment

Character alignment

Character alignment

<Word wrapping>

Allows automatic line breaking with or without word wrap.

Word Wrap OFF (break by character unit)

Word Wrap OFF (break by character unit)

Exceeding the text line limit, "special" is split across two lines.

Word Wrap ON (break by word unit)

Word Wrap ON (break by word unit)

Exceeding the text line limit, "special" is moved the following line.

<Punctuation Placement>

Adjusts the location of punctuation marks in accordance with the punctuation placement rules of each language.

Punctuation Placement OFF

Punctuation Placement OFF

Open parenthesis remains on the first line as the symbol is displayed within the text line limit.

Punctuation Placement ON

Punctuation Placement ON

Open parenthesis is sent to the following line.

<Ellipsis display>

Ellipsis display can be switched ON or OFF.
NOTE: Ellipsis display is a function that uses the "..." symbol to signify the continuation of a text string.
When unable to fully display the content of a text string, an ellipsis is displayed at the end of displayed portion of the string.

Ellipsis OFF

Ellipsis OFF

Text characters of a string are shown to the limit of the display area.

Ellipsis ON

Ellipsis ON

Ellipsis is automatically inserted to indicate that the text string continues.

<Automatic line break>

The function for automatic line breaks based on the width of the display area (layout area) can be set ON/OFF.
(Where the input text is as shown below)
リコーフォント"line break"神奈川県横浜市港北区新横浜3-2-3"line break"045-477-××××

Automatic line break OFF

Automatic line break OFF

When the character has reached the end of the line, Layout engine displays ellipsis and does not display the continuation until the next line feed code comes.

Automatic line break ON

Automatic line break ON

When the character has reached the end of the line, the next line starts with the next character.

<Text Display Area Rotation>

The entire text display area can be rotated 360 degrees in increments of one degree.
Note: This is only supported for RT fonts.

No Rotation

No Rotation

45-degree Rotation

45-degree Rotation

For persons facing difficulties with translation (option)

For persons who face difficulties in the fitting of the optimum text in the designated area (size) of actual devices when expressions are in multiple languages requiring confirmation of the display each time for translation, etc.

For persons facing difficulties with translation (option)

Text string width calculation

Since the fonts of the actual device and the PC are different, the text string width differs even for the same language and text. Our goal is for this to be useful to persons who have to check the text on the actual device each time.

Difficult with proportional pitch

We offer as an option a DLL with which you can acquire text string width on a PC (even without the actual device) and easily confirm whether the text string fits in the designated size. This makes it possible to shorten product development time since you will not have to spend many workhours on UI design for handling multiple languages.
For more information, please use the free consultation function below.