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 }
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.
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.
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.
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.
The layout engine and a Windows®-use DLL are both available in configurations like those shown below.
For more information, please use the free consultation function below.
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.
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.
It is possible to adjust the space between lines and characters.
It is possible to specify right/left and top/bottom character alignment.
Allows automatic line breaking with or without word wrap.
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)
Exceeding the text line limit, "special" is moved the following line.
Adjusts the location of punctuation marks in accordance with the punctuation placement rules of each language.
Punctuation Placement OFF
Open parenthesis remains on the first line as the symbol is displayed within the text line limit.
Punctuation Placement ON
Open parenthesis is sent to the following line.
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
Text characters of a string are shown to the limit of the display area.
Ellipsis ON
Ellipsis is automatically inserted to indicate that the text string continues.
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
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
When the character has reached the end of the line, the next line starts with the next character.
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
45-degree Rotation
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.
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.
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.