Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

PostScript



План:


Введення

PostScript (Постскріпт) - мова опису сторінок, в основному використовується в настільних видавничих системах.


1. Ідеологія

Postscript був розроблений Джоном Уорнока і Чаком Гешко з Adobe Systems на початку 80-х рр.. Початково Postscript використовувався як ядро ​​механізму друку комп'ютерів Apple, але незабаром став широко поширеним стандартом для більшості комп'ютерних систем. Інтерпретатори Postscript (у вигляді програмних або апаратних компонентів) для друку документів присутні практично у всіх сучасних комп'ютерних системах. У Postscript використовується модель зображення тексту (або малюнків) на чистій сторінці. Коли сторінка готова, вона виводиться на друк і починається "промальовування" зображення чергової сторінки. Це є не що інше, як метод компіляції. Кожен документ Postscript звичайно являє собою програму, яка друкує на принтері (або відображає на екрані монітора) наступні один за одним сторінки.


2. Історія

Концепція мови PostScript була закладена в 1976 році Джоном Уорнока (John Warnock), співробітником Evans and Sutherland Computer Corporation. Його колега Джон Гефні (John Gaffney), що займався тоді інтерпретатором для великої бази даних тривимірної графіки Нью-Йоркського порту, створив мову "Design System" (дуже схожий на FORTH). Пізніше Джон Уорнок перейшов у дослідницький центр Xerox в Пало-Альто (Xerox PARC) і разом з Мартіном Ньювел (Martin Newell) створив на базі Design System нову систему JaM (John and Martin), що використовувалася в дослідженнях друку і розвилася в InterPress, протокол друку Xerox.

В 1982 року Джон Уорнок звільнився з Xerox і разом з Чаком Гешко (Chuck Geschke) заснував Adobe Systems Inc. Спочатку їх метою було створення спеціалізованої робочої станції для друку, яка мала називатися PostScript, але вони незабаром зрозуміли, що краще сконцентрувати зусилля на розробці засобів для управління принтерами сторонніх виробників.

В 1984 року побачив світ PostScript (пізніше до назви було додано Level 1, щоб відрізняти його від Level 2 - см. ретронім). Postscript мав ряд переваг перед іншими системами того часу:

  • Платформонезавісімость. Один і той же файл міг друкуватися як на лазерному принтері, який видавав тоді 300 dpi, так і на фотоскладальні пристрої з 2400 dpi з найкращою якістю в кожному випадку.
  • Будь-який виробник міг ліцензувати Лари PostScript і використовувати PostScript зі своїм пристроєм.
  • Специфікації PostScript були загальнодоступні, таким чином, будь-який розробник міг писати програми, що підтримують PostScript.

Adobe ризикувала, випускаючи PostScript, і, можливо, їй не вдалося б переконати ринок у необхідності такої мови, якби не Стів Джобс з Apple Computer. В 1985 році продажі комп'ютерів Macintosh почали падати, і Apple потрібен був "killer app" - щось, що міг би тільки її комп'ютер. Стів Джобс інвестував 2,5 мільйона доларів в Adobe, яка створила PostScript-контролер для принтера Apple LaserWriter, і в Aldus, що створила програму PageMaker, що використала всі можливості Macintosh і LaserWriter. Розгромна тоді можливість додрукарської підготовки на комп'ютері врятувала Apple і перетворила Adobe і Aldus у великі компанії. Інші виробники фотонабірний апаратури, починаючи з Linotype, оцінили PostScript і незабаром оснастили свою фотоскладальні апаратуру інтерпретаторами PostScript. PostScript став стандартом в області допечатной підготовки.

В 1991 Adobe випустила наступну ревізію PostScript - PostScript Level 2. Це була значна переробка, давно очікувана видавничим співтовариством.

Основними поліпшеннями були:

  • збільшена швидкість і надійність (в основному це торкнулося управління пам'яттю);
  • підтримка кольороподілу в самому контролері;
  • розпакування стиснутих зображень в самому контролері ( JPEG і CCITT group 4);
  • підтримка великих наборів шрифтів (для азіатських країн);
  • кешування шрифтів і зображень;
  • поліпшені драйвери;
  • поліпшені алгоритми друку зображення (Accurate Screening).

Adobe зробила помилку, оприлюднивши специфікації PostScript Level 2 до початку робіт по його апаратної реалізації. Конкуренти несподівано вийшли на ринок з емуляторами PostScript Level 2 раніше самої Adobe. В результаті було потрібно дуже багато часу, перш ніж додатки почали використовувати всі нові функції PostScript level 2. Така функція, як кольороподіл в контролері до цих пір не підтримується XPress 5, хоча з моменту виходу Level 2 минуло багато років.

В 1998 році Adobe ввела новий стандарт PostScript 3. Зміни в порівнянні з Level 2 незначні. Це можна зрозуміти, враховуючи, що безліч додатків до цих пір не можуть забезпечити повну підтримку PostScript Level 2.

Основні переваги PostScript 3:

  • підтримка 4096 рівнів на один колір (12 - біт на колір, до того було 256 відтінків - 8 біт на колір);
  • підтримка PDF (контролери PS Level 3 можуть виводити PDF поряд з файлами PS Level 2);
  • розширена підтримка кольороподілу (контролери PS 3 можуть виробляти кольороподіл зображень, заданих у відтінках сірого або в шести кольорах);
  • добавлена ​​інтернет-функціональність (Web-ready printing), поки що ніхто з OEM-партнерів Adobe не реалізував її.

3. Область застосування

PostScript поєднав у собі кращі можливості принтерів і плотерів. Подібно плоттера, PostScript надає можливість виведення високоякісної векторної графіки і єдина мова управління, який може бути використаний будь-яким виробником принтерів. Подібно матричних принтерів, PostScript пропонує зручні можливості по друку растрової графіки і тексту. На відміну від тих і інших, PostScript може поєднувати всі ці типи виведення на одній сторінці, даючи набагато більше гнучкості, ніж до цього мав будь-який принтер або плоттер.

PostScript - більше, ніж типовий мова управління принтером, він є повнофункціональним мовою програмування. Багато прикладні програми можуть перетворити документ в PostScript-програму, при виконанні якої буде отриманий початковий документ. Ця програма може бути надіслана безпосередньо на принтер з підтримкою PostScript або перетворена інтерпретатором PostScript в інший формат (для принтерів без підтримки PostScript), або результат її виконання інтерпретатором може бути показаний на екрані. Так як вихідна PostScript-програма та сама, PostScript називається незалежним від пристрою.

Більшість високопродуктивних принтерів і плотерів мають вбудований Лари мови PostScript. У той же час, прості принтери домашнього класу підтримують тільки елементарні графічні операції, тому завдання створення растрового зображення покладається на центральний процесор. Існують інтерпретатори мови PostScript для різних операційних систем, найбільш відомий з них - вільна програма Ghostscript.

Є комерційна версія системи ТеХ - BaKoMa TeX, написана повністю на PostScript. Автор - В. Малишев ( СРСР).


4. Мова

PostScript - повнофункціональний мова програмування. Хоча програми на PostScript і створюються в основному не людьми, а іншими програмами, в принципі ніщо не заважає писати на ньому програми для обрахунку графіки, реалізації чисельних методів розв'язання математичних задач і т. п.

PostScript - інтерпретована стековий мову, схожий на Форт. Синтаксис мови використовує зворотний польську нотацію, що робить непотрібним використання дужок, однак вимагає деякої практики для читання тексту програми через необхідність тримати в голові вміст стека. Більшість операторів беруть операнди зі стека і поміщають результат обчислень на стек. Літерали (рядки і числа) поміщають свою копію на стек.

У PostScript для малювання використовується двовимірна прямокутна система координат, початок якої збігається з лівим нижнім кутом сторінки; вісь X за замовчуванням спрямована горизонтально (тобто по ширині сторінки), вісь Y - вертикально. Одиницею виміру лінійних координат служить типографський пункт. За допомогою операторів мови [6, pp. 517-518] початок системи координат може бути перенесено в будь-яку точку (оператор translate), а сама система - повернута на довільний кут у площині сторінки (оператор rotate); масштаб по кожній з двох осей за допомогою оператора scale також може бути змінений. Наприклад, "дзеркальний" виведення зображення на плівку (т.зв. "Emulsion down") в PostScript-принтерах здійснюється за допомогою одного єдиного оператора scale, що задає негативний масштаб по одній з осей системи координат: наприклад, -1.0 1.0 scale.

PostScript має риси метафайлу, поєднуючи підтримку як векторних, так і растрових зображень. Шрифти в PostScript тільки векторні. Трохи особняком стоять т.зв. Type3-шрифти, в яких для малювання гліфи (процедура /BuildGlyph) м.б. використана будь-яка процедура, сформульована в термінах мови PostScript [6, pp. 337-342]. Після виходу 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.


4.1. Структура документа

Структура файлу PostScript формується структурними коментарями [14]. Структурні коментарі починаються з послідовності символів " %% "на початку рядка.

Файл PostScript складається з чотирьох частин: заголовка, прологу, тіла і епілогу.

Заголовок починається рядком " %!PS-Adobe-NM "де NM - версія специфікації, далі йдуть структурні коментарі з загальними властивостями документа, і закінчується заголовок рядком" %%EndComments ".

 %!PS-Adobe-2.0 %%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software %%Title: rep.dvi %%Pages: 9 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments 

У пролозі зазвичай містяться описи підпрограм і дані, необхідні для друку документа - наприклад, процедури і шрифти. Пролог закінчується коментарем " %%EndProlog ".

У тілі програми містяться команди, які відповідають за відтворення зображення кожної сторінки, що випереджає рядком " %%Page: <метка> <номер> ", де <мітка> - мітка сторінки, яка не виводиться на друк, і <номер> - порядковий номер сторінки в файлі, наприклад, %%Page: iii 3

Після команд відтворення всіх сторінок йде структурний коментар " %%Trailer ", після чого починається епілог.

В епілозі можна продублювати коментарі з заголовка (це реалізовано на випадок, якщо на початку виведення програмі ще не відомо, наприклад, число сторінок) - в цьому випадку замість числових значень параметрів у заголовку треба писати " (atend) ".

Закінчується файл рядком " %%EOF ".


4.2. Огляд елементів мови

Стеки

У PostScript для зберігання даних різних типів використовуються чотири стека: стек операндів, стек графічних контекстів, стек виконання, стек словників.

Типи даних

Основні типи даних мови PostScript: ціле число зі знаком, дійсне число, логічне вираз ( true або false), рядок символів ( ( ) ), масив ( [ ] ), процедура ( { } ), словник, ім'я.

Оператори

Оператори в PostScript отримують операнди (параметри), виймаючи їх з стека, і записують результати дій (якщо вони є) також в стек. Такий стиль програмування, при якому операнди задаються до операції над ними (оператора), називається постфіксной нотацією. Наприклад, для складання двох заданих чисел необхідно спочатку помістити їх у вершину стека операндів, потім виконати команду add, яка витягуватиме з стека два елементи, поміщені останніми (тобто задані числа), складе їх і запише результат у стек, звідки він зможе бути витягнутий інший операцією в якості операнда. Це записується так:

4 5 add

Оператори PostScript можна розділити на кілька груп. Це оператори для роботи з вмістом стека (незалежно від типу), арифметичні операції, оператори роботи з масивами, роботи зі словниками, роботи з рядками, порівняння, управління потоком команд, роботи з типом аргументів і перетворення, доступу та роботи з файлами, роботи з віртуальною пам'яттю, графічного стану та інші. Опис операторів PostScript можна знайти в [5, 6], короткі описи найбільш уживаних операторів російською мовою можна знайти в [1].


4.3. Короткий огляд механізму малювання зображення

Процес малювання (растрування) при виконанні (інтерпретації) PostScript-програми полягає в обчисленні для кожного пиксела пристрої виведення одного (для монохромного) або декількох (наприклад чотирьох для CMYK-устройства або шести для CMYKOrGr) значень параметра (-ів) в діапазоні від 0 до 1.0. Обчислення значення параметра (-ів) використовується як аргументу ще однією важливою функції - transfer function [6, pp. 478-480] (російськомовний синонім - відображення). За замовчуванням у переважній більшості випадків ця функція є простою функцію y (x) = x і її значення тотожно дорівнює значенню аргумента. Однак у ряді випадків - наприклад для компенсації розтискування використовуються досить складні нелінійні залежності y (x), що задаються кусочной або табличній апроксимацією. Кусочно-лінійна апроксимація transfer function використовується наприклад в EPS-і PS-файлах Adobe Photoshop - для апроксимації використовується розбивка області визначення [0; 1.0] на сорок ділянок з кроком 0.025 (2.5% растрової точки); на кожному з сорока ділянок transfer function має вигляд y (x) = b x + a. Transfer function виду y (x) = 1-x (в термінах PostScript language {1 sub neg} settransfer) звертає зображення, роблячи з нього негатив - саме таким чином друкують негатив PostScript-принтери.

Для монохромних пристроїв - наприклад для фотонабору, рішення про зафарбовуванні (засвіченні) пікселя може прийматися в результаті порівняння обчисленого для даного пиксела значення transfer function і значення т.зв. Spot-функції або двовимірного масиву Threshold array [6, pp. 484-490], [15]: у випадку, якщо значення transfer function більше значення Spot - функції або елемента Threshold array для цього пікселя останній зафарбовується (засвічується). Спеціальний підбір transfer function і Spot-функції або Threshold array дозволяє отримати відношення числа зафарбованих і незакрашенних пікселів пристрою виводу для кожного пікселя вихідного (растріруемого) зображення таким, що на відбитку (відбитку) середня яскравість відповідної ділянки зображення майже пропорційна значенню обчисленого параметра (див. вище).

Подібним чином формується точки різного розміру, з яких складається півтонове зображення на друкарських відбитках: у газетах, журналах, книгах.


4.4. Приклад програми

 %! PS-Adobe-1.0% За замовчуванням, постскріпт використовує одиницю вимірювання 1 пункт = 1 / 72 дюйма,% а нам подобаються міліметри. 72 25.4 div% 1 мм = 72/25.4 пунктів dup% дублювати значення на вершині стека scale% розтягнути в це кількість разів по обох координатах 100100 translate% встановити початок координат в (100мм, 100мм) / Times-Roman findfont% взяти шрифт Times -Roman 10 scalefont% розтягнути до розміру 10 (у нас одиниця виміру - мм!) setfont% встановити вибраний шрифт 0 30 330 {% цикл для кутів від 0 до 330 з кроком 30 gsave% запам'ятати поточне перетворення координат rotate% повернути систему координат ( кут в градусах беремо з вершини стека) 15 0 moveto% перейти в точку (15мм, 0 мм) (Wikipedia) show% написати слово поточним шрифтом grestore% повернути перетворення координат} for% кінець циклу for showpage% вивести сторінку 

4.5. Виведення програми

Виведення програми

5. Тенденції та перспективи

В даний час крім PostScript на ринку лазерних принтерів широке розповсюдження отримав мова управління принтером PCL, розроблений Hewlett-Packard. PCL спочатку націлювався на інші завдання, ніж PostScript (управління принтером, а не опис сторінки), і не може забезпечувати переносимість. Однак для офісного використання він у ряді випадків більш зручний.

PCL використовує стандартні Windows - шрифти TrueType (на відміну від PostScript). Крім того, остання його версія (PCL6) розроблялася HP в тісній співпраці з Microsoft і тому забезпечує прискорене повернення відповіді в додаток, швидкий друк складних графічних зображень, покращену якість друку і підвищену точність при виводі документів.

Крім того, мова PostScript передбачає ліцензування і виплату ліцензійних відрахувань Adobe з кожного контролера RIP (Raster Image Processor), у той час як мова PCL може використовуватися сторонніми виробниками безкоштовно. Тому в даний час ліцензовані RIP PostScript 3 для плотерів виробництва HP коштують близько 500 доларів, у той час як неліцензовані контролери - "емуляція PS2" виробництва OKI стоять 30-70 доларів.

У результаті, якщо десять років тому практично всі лазерні принтери підтримували PostScript в якості основного мови, то в даний час безліч лазерних принтерів класу SOHO не оснащується підтримкою PostScript з метою здешевлення. Таким чином, PostScript витісняється з офісів мовою PCL, залишаючись, проте, практично безальтернативним стандартом в області допечатной підготовки.


Цей текст може містити помилки.

Схожі роботи | скачати
© Усі права захищені
написати до нас