# Panorama (typesetting software)

Panorama is a line layout and text composition engine to render text in various worldwide languages made by Bitstream Inc. Panorama uses Font Fusion as the base to support rendering of the text. The engine allows the user to manage different text formatting aspects like spacing, alignment, style effects (bold, embossed, outline, drop shadows etc.).
Panorama provides support for OpenType font tables leading to automatic character substitution for ligatures, swashes, scientific figures, etc. Panorama supports three anti-aliasing modes – monochrome, grayscale, and LCD optimized (Horizontal and Vertical).

## Version history

Panorama has undergone several changes since its initial release as well as numerous additions of APIs to the core engine.
| Major version | Minor version | Release date | Significant changes |
| Version 1 | 1.0 | June 22, 2004 | Initial release. |
| Version 2 | 2.0 | June 20, 2005 | New Shaping engine for complex language scripts. Support for bi-directional and mixed-directional text. Standard character set encoding supported (UTF-8, UTF-16, Unicode, and ASCII). |
| Version 3 | 3.0 | August 14, 2006 | Full support for Arabic, Hebrew, Indian, and Thai complex language scripts. Complete cursor rendering support. Support for multiple fonts. |
| Version 4 | 4.0 | September 24, 2007 | Support for transparency in all modes. Support for Macintosh platform including ability to render Mac font suitcases. Support for BREW platform. Language related enhancements resulting in better application of OTF rules and enhanced performance. |
| Version 4 | 4.5 | April 10, 2008 | Support for Unicode range-based and style-based font mapping. Alpha channel support in LCD mode. 32-bit Unicode support. Support for enhanced text view and editing with space wraps termination style. Support for Tab Stops on any platform. |
| Version 5 | 5.0 | July 15, 2009 | Support for fractional sizes and positions, text rendering text on paths, Unicode to Image mapping, and floating objects. |
| Version 6 | 6.0 | May 10, 2011 | Support for Thai shaping and OpenType rules, Unicode line breaking algorithm, font ratio, shadow width, and shadow color. |

## Features

* Support for Thai shaping and OpenType rules.
* Enhanced support for the Unicode line breaking algorithm.
* Better support for TV screens.
* Enhanced font weight management and formatting support with font ratio, shadow width and shadow color.
* Unicode Compliance – Full layout support for Unicode 5.0 and all international languages including complex scripting languages, such as Arabic, Indic, and Thai.
* Supports bi-directional algorithms required to rearrange characters sequentially. For example, in languages such as Arabic, Hebrew, and Urdu the characters may be entered on a keyboard in one way, but need to be rendered in a correct way on a visual device.
* Contextual Shaping – Applies contextual shaping to the characters, i.e., the characters are substituted, combined, or repositioned depending on the rules of the language.
* Composes text in all worldwide languages, which includes various complex scripting languages such as: Arabic, Indic, and Hebrew.
* Supports key OpenType tables required for line layout such as, BASE, glyph definition (GDEF), glyph positioning (GPOS), and glyph substitution (GSUB).
* Supports kerning information in OpenType fonts.
* Text on Path – Enables text rendering along a path, outline, or a predefined shape.
* Font Mapping – Supports script-based font mapping enabling the application to support multiple scripts at a single instance.
* Style Mapping – Allows grouping of style-linked fonts to be treated as a single font. The engine "knows" to access a font’s own true-drawn style when you apply styles from the style menu.
* Unicode Mapping – Supports automatic font switching based on the Unicode values of the text stream to be rendered.
* Unicode-Image Mapping – Enables the developers to map a Unicode sequence to any image.
* Paragraph Styling – Supports paragraph-specific formatting attributes including text alignment, letter/line spacing, and indentation functions.
* Termination style – Facilitates the application to include an ellipses kind of termination style for the truncated text if the string does not fit inside the designated area.
* Inline Images – Supports floating graphic object types that are inline with the text.
* Rich-text Editing features, such as space wrap, tab stops, and dynamic property changes for inter-character space, line indents, and line gaps.
* Supports industry-standard color formats, including monochrome, RGB, and BGR, with alpha channel support.

### Font Formats Supported

* Multiple master fonts
* WOFF fonts
* Type 1
* TrueType
* TrueType collections
* OpenType
* Compact font format (CFF)/Type 2
* TrueDoc Portable Font Resources (PFRs)
* Bitstream Speedo
* T2K
* Font Fusion Stroke (FFS)
* Embedded bitmaps (TrueType, TrueDoc, and T2K)
* Windows bitmap font format FNT/FON
* Bitmap Distribution Format (BDF)
* Mac font suitcase (Dfont)

### Character Sets Supported

| ARABIC | CHEROKEE | GUJARATI | KHMER | ORIYA | TAILE |
| ARMENIAN | CJK | GURMUKHI | LAO | PHAG | TAILU |
| BENGALI | COPTIC | JAMO | LATIN | PHOENICIAN | TAMIL |
| BOPOMOFO | CYRILLIC | HANGUL | LIMBU | RUNIC | TELUGU |
| BRAILLE | DEVANAGARI | HANUNOO | MALAYALAM | SINHALA | THAANA |
| BUGINESE | ETHIOPIC | HEBREW | MONGOLIAN | SYLOTI | THAI |
| BUHID | GEORGIAN | HIRAGANA | MYANMAR | SYRIAC | TIBETAN |
| BYZANTINE MUSIC | GLAGOLITIC | KANNADA | NKO | TAGALOG | TIFINAGH |
| CANADIAN | GREEK | KATAKANA | OGHAM | TAGBANWA | YI |

### Color Formats Supported

* Supports monochrome and grayscale format.
* Supports industry-standard screen color formats including monochrome, RGB, and BGR.
* Supports eight different pixel depths for R, G, B, and alpha channel in RGB or BGR format.

### Text Style and Effects

* Embossed
* Engraved
* Left and right drop shadows
* Algorithmic obliquing
* Algorithmic emboldening
* Underline/Overline/Strikethrough (Single/Double/Dotted line)
* Outlines
* Colored border text styles
* Superscript
* Subscript
* Flicker filter
* User defined filter

### Applications/Operating Systems Supported

* Cross-platform applications
* Web (HTML) applications
* Macintosh and Windows
* BREW
* Linux and UNIX
* Embedded operating systems
* Real time operating systems

### Devices Supported

Consumer Electronic Devices, Mobile Handset, Set-top box, Digital TV, Printer, Medical Imaging Device, GPS System, Automobile Display, and other Embedded System