Введение
Интерпретатор языка PostScript
Ghostscript — это пакет программ, основанный на интерпретаторе языков описания страниц PostScript и Portable Document Format (PDF) компании Adobe Systems. Его основное назначение — растрирование или рендеринг файлов этих языков описания страниц для отображения или печати страниц документов, а также преобразование файлов из PostScript в PDF и наоборот.
Особенности
Ghostscript может использоваться как растровый процессор изображений (RIP) для растровых компьютерных принтеров, например, как входной фильтр для спулера печати, или как RIP-движок в программах просмотра PostScript и PDF. Он также может служить конвертером форматов файлов, например, для преобразования PostScript в PDF. Программа преобразования ps2pdf входит в состав дистрибутива Ghostscript. Ghostscript также может выступать в качестве серверной части для конвертера PDF в растровое изображение (PNG, TIFF, JPEG и т.д.); это часто комбинируется с драйвером PostScript-принтера в программах создания PDF, работающих как "виртуальные принтеры". Поскольку Ghostscript представляет собой интерпретатор языка, он также может использоваться как универсальная среда программирования. Ghostscript был портирован на множество операционных систем, включая Unix-подобные системы, классическую Mac OS, OpenVMS, Microsoft Windows, Plan 9, MS-DOS, FreeDOS, OS/2, ArcaOS, Atari TOS, RISC OS и AmigaOS.
История
Ghostscript был первоначально написан Л. Питером Дойчем для проекта GNU и выпущен под лицензией GNU General Public License в 1988 году. На момент первоначального выпуска существовал аналогичный коммерческий программный продукт под названием GoScript от LaserGo. Позже Дойч основал Aladdin Enterprises для двойного лицензирования Ghostscript также под проприетарной лицензией с собственным ответвлением разработки: Aladdin Ghostscript под Aladdin Free Public License (которая, несмотря на название, не является лицензией свободного программного обеспечения, поскольку запрещает коммерческое распространение) и GNU Ghostscript, распространяемый под GNU General Public License. С версией 8.54 в 2006 году обе ветви разработки были вновь объединены, и релизы с двойным лицензированием продолжали предоставляться. В настоящее время Ghostscript принадлежит Artifex Software и поддерживается сотрудниками Artifex Software и всемирным сообществом пользователей. По данным Artifex, начиная с версии 9.03, коммерческую версию Ghostscript нельзя свободно распространять в коммерческих целях без приобретения лицензии, хотя вариант (A)GPL разрешает коммерческое распространение при условии, что весь код, использующий его, будет выпущен под (A)GPL. В феврале 2013 года, с версией 9.07, Ghostscript изменил свою лицензию с GPLv3 на GNU AGPL, что вызвало вопросы о совместимости лицензий, например, у Debian. Начиная с выпуска 9.55.0, Ghostscript имеет два встроенных интерпретатора PDF. До весны 2022 года, вплоть до версии Ghostscript 9.56.1, реализация интерпретаторов PDF по умолчанию была написана на PostScript. Новый интерпретатор PDF по умолчанию был полностью переписан на C и является более быстрым и безопасным, чем его предшественник, при этом его интерфейс и графическая библиотека остались без изменений. Скриптинг нового интерпретатора PDF, написанного на C, из PostScript по-прежнему возможен.
Свободные шрифты
Существует несколько наборов бесплатных шрифтов, поставляемых для Ghostscript, которые должны быть метрически совместимы с распространенными шрифтами, входящими в стандарт PostScript. Коллекция аналогична 35 шрифтам, определенным Adobe в PostScript Level 2: Bookman L (Bookman), Century Schoolbook L (New Century Schoolbook), Chancery L (Zapf Chancery), Dingbats (Zapf Dingbats), Gothic L (Avant Garde), Nimbus Mono L (Courier), Nimbus Roman No9 L (Times), Nimbus Sans L (Helvetica), Palladio L (Palatino), Standard Symbols L (Symbol), в форматах Type1, TrueType и OpenType. Пакет GhostPDL (включающий Ghostscript, а также сопутствующие реализации HP PCL и Microsoft XPS) содержит дополнительные шрифты под лицензией AFPL, запрещающей коммерческое использование. Он включает версии URW++ шрифтов Garamond (Garamond No. 8), Optima (URW Classico), Arial (A030), Antique Olive и Univers (U001), Clarendon, Coronet, Letter Gothic, а также URW Mauritius и модифицированную версию Albertus, известную как A028. В сочетании с базовым набором, они составляют чуть более половины стандартного комплекта шрифтов PostScript 3. Также включен разнообразный набор, содержащий шрифты для кириллицы, кана и производные от бесплатных шрифтов Hershey, с улучшениями Томаса Вольфа, такими как добавление диакритических знаков. Шрифты Ghostscript были разработаны в формате PostScript Type 1, но затем преобразованы в формат TrueType. Наконец, многие проекты с открытым исходным кодом использовали глифы из шрифтов Ghostscript; например, латинские символы GNU FreeFont основаны на Nimbus Mono L, Nimbus Roman No9 L и Nimbus Sans L. Шрифты TeX Gyre также созданы на основе 8 из 10 оригинальных семейств шрифтов Ghostscript, а шрифт Garamond был дополнительно улучшен.