Zarnegar (word processor)

Zarnegar is a commercial word processor developed by SinaSoft Corporation. It is specialized for Persian and Arabic languages, and their intricacies. The first version of Zarnegar, which ran on DOS, was released in April 1991. A Windows version was first made available in 2000.

Etymology
The name "Zarnegar" is a double entendre. Literally, it means "what writes with gold"; however, because the typefaces included with the first version of Zarnegar were Zar and Terafik, it can be taken to means "what writes with Zar". After the initial release, however, new fonts were added to Zarnegar every few months, which later became the source of most Persian fonts on Windows systems.

History
Before Zarnegar, several DOS-based text editors, like Safhe-Ara, a Persian-enabled Personal Editor 2 (a.k.a. PE2) and Pishkar (, the first product of SinaSoft), were available for basic monospaced desktop publishing only. Zarnegar is the first word processor with specialized support for Persian and Arabic scripts, therefore, establishing new methods of desktop publishing and handling the alphabet in the digital environment.

The main development of Zarnegar happened between 1991 and 1995, with the heaviest work done in 1993 and 1994. In the 1990s, Zarnegar was more popular than the competitors, possibly because of the variety and beauty of the bundled fonts, ease of use, and paying attention to market needs, support and education.

Features
Zarnegar has been a pioneer in Persian desktop publishing with supporting a diverse set of features, some not found in the generic competitors. Notable features are:
 * Supporting calligraphy-based and handwriting-based Persian fonts
 * Manual kerning for letters and manual positioning of diacritics, explicitly (per word) or as document settings (per font)
 * Type setting of math formulas, graphs, tables, and Persian poetry
 * Alternate glyphs for letters with UI to select alternates per word, and manage rules to use alternates for line elongation/justification
 * Alternate forms for 0|digit zero (of Eastern Arabic numerals): round/diamond and solid/hollow shapes
 * Special effects on text—such as shadows with custom angles, background and filling patterns, stroke width and color—with plug-in support for third-party features
 * Persian/Arabic justification with advanced options (see following list for details)
 * Embedded Persian dictionaries (for various areas, like math, chemistry, physics, geography, proper names, computing, and one for etymology) for spell checking, with possibility of creating new dictionaries to share with other users
 * Sorting and collation, per language (Persian/English) or using system language (in Windows only)
 * On-screen measurement of rendered text, in both DOS and Windows versions
 * Customizable keyboard layouts (Persian, Arabic and English)
 * Embedded phone book with network-based syncing functionality
 * Support for import from or exporting to Rich Text Format (RTF), the Microsoft Word format and HTML
 * Support for the Iran System encoding
 * Predefined (list) counter styles for Persian numerals, Persian alphabet, Persian abjad, Greek numerals, and English alphabet
 * PostScript, PDF and EPS outputs, with CMYK support
 * Advanced printing options in DOS and Windows versions
 * Page layout options for publishing books, manuals and periodicals

Paragraph justification


Zarnegar has advanced support for Persian and Arabic paragraph justification, supporting the following options:
 * Manual insertion of Kashida character
 * Length of Kashida character: short, medium, long, very long
 * Length of whitespace character
 * Percentage of letter spacing reduction
 * Percentage of using Kashida vs. whitespace character
 * Per-word selection of elongation method (where to place Kashida in a word)

Encodings
Zarnegar has employed two different character sets and file formats.

Zarnegar1 character set
Zarnegar used an Iran System-based character encoding system, named Zarnegar1, with text file formats for its early versions, up to the Zarnegar 75 version. The Zarnegar1 character set is a two-form left-to-right (visual) encoding, meaning that every Perso-Arabic letter receives different character codes based on its cursive joining form, but most letters receive only two forms, because of the limited code-points available.

Zarnegar75 character set
With the Zarnegar 75 version, a new character encoding system was introduced, and the file format was changed to a binary format. The Zarnegar75 character set is a four-form bidirectional visual encoding, meaning that every Perso-Arabic letter receives a one, two, or four character code, depending on its cursive joining form, and these letters are stored in the memory in the semantic order.