Разлика между версии на „PostScript“

318 байта изтрити ,  преди 1 месец
остатъци от превод
м (без интервал)
(остатъци от превод)
 
PostScript е интерпретируем стеков език, подобен на [[Forth]]. Синтаксисът на езика използва [[обратно полско математическо представяне]], което прави ненужно ползването на скоби, но трябва известна практика, за да може да се чете текстът на програмата поради необходимостта да се помни наум съдържанието на стека. Повечето оператори взимат операнди от стека и поставят резултата от изчисленията в стека. Низовете и числата се копират на стека.
 
За рисуване в ''PostScript'' се използва двумерна правоъгълна координатна система, началото на която съвпада с левия долен ъгъл на страницата; оста ''X'' по подразбиране е насочена хоризонтално (т.е. по ширината на страницата), оста ''Y'' – вертикално. За единица за измерване на линейните координати служи така нареченият [[типографски пункт]]. С помощта на оператори на езика [6, pp. 517 – 518] началото на координатната система може да се пренесе във всяка точка (оператор <code>translate</code>), а самата система – завъртяна на произволен ъгъл в плоскостта на страницата (оператор <code>rotate</code>); мащабът на всяка от двете оси с помощта на оператора <code>scale</code> също може да бъде изменен. Например, „огледалното“ проектиране на изображението върху лента (т.н. „''Emulsion down''“) в ''PostScript''-принтерите се осъществява с помощта на един-единствен оператор <code>scale</code>, определящ отрицателния мащаб по една от осите на координатната система, <code>-1.0 1.0 scale</code>.
 
''PostScript'' има елементи на [[метафайл]], поддържайки както векторна, така и растерна графика. [[Шрифт]]овете в ''PostScript'' са само векторни. Изключение правят ''Type3'' шрифтовете, в които за изрисуване на [[глиф]]овете (процедура <code>/BuildGlyph</code>) се използват всички процедури, дефинирани в термините на езика ''PostScript''. След излизането на SP4 за Windows NT 4.0 през 1998 г. когато е инсталирана в системата ''Adobe Type Manager 4.0'' и драйвер за ''AdobePS 5'' всички шрифтове в не-''roman'' кодиране, в частност кирилица, се инсталираха в ''PostScript'' файла като ''Type3'' шрифтове, като всяка глифа е представена посредством растерно изображение. Представянето на шрифта като растерно изображение създава много проблеми при подготовката към изход на [[фотонабор]]а и [[предпечатна подготовка|предпечатната подготовка]]. Тази грешка е оправена в ''AdobePS 5.1'' и ''Adobe Type Manager 4.1'', които влизат в дистрибутива на ''Windows 2000''.
 
=== Структура на документа ===
Структурата на файла PostScript се формира от структурни коментарии [14]. Структурните коментарии започват с последователност от символи „<code>%%</code>“ в началото на реда.
 
Файлът PostScript е съставен от четири части: заглавие, пролог, тяло и епилог.
 
Операторите на PostScript могат да се разделят на няколко групи. Оператори за работа със съдържанието на стека (независимо от типа), аритметични операции, оператори за работа с масиви, работа с речници, работа с редове, сравнения, управление на потока с команди, работа с типа на аргументите и конверсия, достъп и работа с файловете, работа с виртуалната памет, графики и други.
 
Описанието на операторите на PostScript може да се открие в [5, 6], кратки описания на най-употребяваните оператори на кирилица може да се намерят в [1].
 
=== Кратък обзор на механизма за рисуване на изображения ===
Процесът на рисуване (растеризация) при ''PostScript'' се заключава в изчисляване на параметрите за всеки [[пиксел]] – един (при монохромни) или няколко (например четири за ''CMYK'' устройства или шест за [[Hexachrome|''CMYKOrGr'']]) в диапазон от 0 до 1.0. Тези значения се използват като аргументи на функцията ''Transfer Function''. По подразбиране това е простата функция y(x)=x, когато функцията приема стойностите на аргумента. В редица случаи – например за компенсиране на [[нарастване на точката]] се използват сложни нелинейни зависимости y(x), задавани посредством интервално линейна или таблична [[апроксимация]]. Интервално линейна апроксимация се използва например в ''EPS'' и ''PS'' файловете на ''[[Adobe Photoshop]]'' като целия интервал [0;1.0] е разделен на 40 участъка с ширина 0.025, като на всеки от тези участъци ''transfer function'' има вида y(x)=b·x+a. ''Transfer function'' от вида y(x)=1-x (в термините на ''PostScript language'' <code>{1 sub neg} settransfer</code>) обръща изображениеето – именно така печатат негатива ''PostScript'' принтерите.
 
В монохроматичните устройства – например при фотонаборните апарати, подсветката на пикселите се получава в резултат от сравняване на изчислената величина за даден пиксел от ''transfer function'' и значението на ''Spot'' функцията или чрез двумерния масив ''Threshold array'' [6, pp. 484 – 490], [15]: когато стойността на ''transfer function'' е по-голямо от стойността на ''Spot'' функцията или елемента ''Threshold array'' то този пиксел се засветява.
 
Оптималният подбор на ''transfer function'' и ''Spot'' функцията или ''Threshold array'' позволява изходното растерно изображение да е близо до проектираното по съотношение на засветени и незасветени пиксели.