PostScript инстркциятаThis Bulgarian translation by Albert Ward.Ukrainian translation provided by Dmutro Nechuporyk. November 2015
Original version by Paul Bourke.
ВъвежданеPostscript е програмен език, който е проектиран да се определи разположението на отпечатаната страница. Postscript принтери и софтуер послепис дисплей използва преводач, за да конвертирате описание на страница в показаните графики. Следната информация е предназначена както за първи урок на PostScript език. Той ще се съсредоточи върху това как да използвате послепис за генериране на графика, а не да я проучи като програмен език. До края трябва да се чувстват уверени за писането на прости програми послепис за изготвяне на графика и текст. Допълнителна информация и пълна спецификация на езика може да бъде получена от Справочник на езика Postscript Наръчник от Adobe Systems Inc, публикуван от Addison-Wesley, Четене, Massachuchusetts, 1985. Защо да се научат послепис, в края на краищата, много програми могат да генерират за вас и послепис печатни драйвери може да печата във файл? Някои от причините може да бъде:
Основите Postscript файлове (по принцип) обикновени текстови файлове, и като такива те могат лесно да бъдат генерирани от ръка или като на изхода на потребителя писмените програми. Както при повечето езици за програмиране, PostScript файлове (програми) са предназначени да бъдат, поне частично, четима за човека. Като такива, те обикновено са свободен формат, това е текст може да бъде разделен във всички линии и отстъп, за да hilight логическа структура. ПътПът е събирането на, вероятно, линии и области, които описва изображението. А пътят е само по себе си не съставен, след като е определено може да се галят (линии) или пълнеж (области), като съответните марки на страницата. Налице е специален вид на пътя нарича клипинг пътека, това е път, в рамките на които е ограничено бъдеще чертеж. По подразбиране клипинг път е правоъгълник, който съвпада с границата на хартия, няма да бъдат променяни по време на този урок. СтекаPostscript използва стека, иначе известни като LIFO (Last In First Out) стека за съхранение на програми и данни. Послепис преводач места послепис програма в стека и изпълнява инструкциите, които се нуждаят от данни, ще прочетете, че данните от стека. Например, там е оператор в послепис за умножаване на две числа, MUL. тя изисква два аргумента, а именно две числа, които трябва да бъдат умножени заедно. В послепис, това може да бъде определен като 10 20 mul Преводачът би поставило 10 и 20 върху стека. MUL оператор ще премахне 20 и 10 от стека, като им се размножават заедно и да напусне резултат, 200, в стека. Координатна системаPostscript използва координатна система, която е независим устройство, това означава, че не разчита на резолюция, размера на хартията, и т.н. на крайното изходно устройство. Първоначалната координатна система х ос на правото и Y ос нагоре, произход се намира в долния ляв ъгъл на страницата. Единиците са на “точки”, които са 1 / 72 от инча дълго. С други думи, ако ние нарисувайте линия от послепис координати (72,72) (144,72) ще имаме линия, започва един инч от ляво и дясно на страницата, линията ще бъде хоризонтална и да бъде един инч дълго. Координатна система може да бъде променена, това е мащабирани, завъртян, и преведени. Това често се прави, за да формират по-удобна система за-специално на тираж, се създават. Основни команди на тиражВреме е да изготвят нещо. По-долу се състои на броя на операторите и данни, някои оператори като newpath не се нуждаят от аргументи, други като lineto вземат два аргумента от стека. Всички примери в този текст са показани като послепис на ляво с полученото изображение в дясно. Текстът на ляво, също действа като връзка към вид удобен за печат на PostScript файл.
Има също са относително moveto и lineto команди, а именно, rmoveto и rlineto. В този следващия пример попълнена обект ще бъде изтеглен в сянка, както за контур и интериора. Shades варират от 0 (черно) до 1 (бял). Забележете closepath, че се присъедини към първия връх на пътя с последните.
Рисунката команди като инсулт и попълнете разруши сегашния курс, начин около това е да се използва gsave, че спестява сегашния курс, така че да може да бъде възстановено с grestore. ТекстТекстът е може би най-сложни и мощни аспект на послепис, тъй като такива само една малка част от неговите възможности ще бъдат обсъдени тук. Едно от хубавите неща е, че начина, по който героите са поставени на страницата не е различен от всички други графични. Преводачът създава път за характера и след това или галят или попълва както обикновено.
Както може да се очаква позиция (100 200) по-горе определя позицията на долния ляв ъгъл на текстовия низ. Първите три линии в горния пример са домакинство, че трябва да се направи за първи път се използва шрифт. По подразбиране, размера на шрифта е 1 точка, scalefont тогава определя размера на шрифта в единици на точки (1 / 72 инча). Скоби около думите “Пример 3″ показват, че той е низ. Леко променена версия на горното използва charpath за лечение на знаците в низ път, който може да се галят или пълнеж.
Трябва да се уверете, че сте разбрали реда на операторите по-горе, и в резултат на ориентацията и мащаба на текста, процедурно привлича текст, мащаба на оста Y с коефициент от 2, се върти обратно на часовниковата стрелка за произход, най -накрая преведат координатна система (100200). ЦвятЗа тези с цвят LaserWriters основните инструкции на интерес, който замества setgray предишните примери setrgbcolor. Тя изисква три аргумента, червено-зелено-сини компоненти на цвят, всяка от 0 до 1.
Програмиране Както бе споменато във въведението послепис е език за програмиране. Степента на този език, няма да бъдат обхванати тук, освен да покаже някои примери за процедури, които могат да бъдат полезни за да се опрости поколение PostScript и PostScript файлове по-малки.
Тази процедура чертае три цветни квадрата един до друг, всеки 20/72 квадратни инча, имайте предвид мащаба на 20 на координатната система. Процедурата се основава единица площад и го очаква цвят RGB, за да бъде в стека. Това може да се използва като метод (макар и неефективно) на рисуване на растерно изображение. Дори ако някой е просто теглене на жребий на линии на страницата, с цел да се намали размера на файла е обичайно да се определи процедура, както е показано по-долу. Той просто определя един символ “L”, за да начертаете линия сегмент, може след това да използвате командите, като 100 200 200 200 л “, за да начертаете отсечка от (100 200) (200 200). /l { newpath moveto lineto stroke } def Някои други полезни командиПо-долу са някои други често използвани команди, заедно с кратко описание, отново трябва да се консултирате с препратка за употреба за целия набор от команди.
Рисуване “малки” ОбразиОтпечатване на изображения използва послепис е малко по-ангажирани от графиката обсъдиха досега. Примери за две типове изображения ще бъдат представени, сивата скала изображения (което би могло да се използва и за черно-бели изображения) и 24-битови RGB изображения. 8 Bit Grey Scale Най-простият метод, който се прилага към малки изображения, е имиджа PostScript команди. Това отнеме от 5 аргументи: ширината и височината на изображението, бита за пиксел, трансформация матрица (6 числа) и накрая на процедура за придобиване на данните на изображението. В следващия пример, мащабът на сиво (8 бита) изображението е 24 пиксела широчина от 34 пиксела висок. Тъй като в послепис изображение се определя от по-долния ляв ъгъл, и изображението се определя от горния си ляв ъгъл, трансформация матрица, използван тук се Съответното вертикално обръщане. Процедура, използвана тук, е esentially нулева процедура, тя е шестнадесетичен низ, както е посочено от ъглови скоби <>. Postscript прави изображения като квадрат със страна една точка оттук мащабиране от 24 хоризонтално и 34 по-вертикално. Има много детайли, останали от тази дискусия, читателят трябва да се консултирате с ръководството за послепис позоваване за повече информация. RGB изображения с 8 бита за пиксел може да бъде представен в послепис, като използвате командата colorimage, който е много подобен на образа команда. В следващия пример на изображението е 32 пиксела широчина от 38 пиксела висок. Какво е EPS?EPS (Encapsulated PostScript) е нормално послепис с няколко ограничения и няколко коментара в определен формат, който осигурява повече информация за PostScript, че следва. Това е дизайн, за да се направи по-лесно за подаване на заявления за включване на PostScript, някъде другаде в рамките на техните собствени страници. Пълната спецификация може да бъде получена от Adobe но с цел да направи послепис файла DSC (Конвенцията на Adobe документ Структуриране) съответства, трябва да е вярно:
Може би най-важното, тъй като обикновено приложение, което поддържа вмъкване на PostScript файла не е пълен преводач послепис EPS файл като цяло има предварителен преглед на изображението, свързани с нея. Прилагането, занимаваща се с EPS файл може да показва визуализацията в потребителския интерфейс, дава по-добра представа какво ще се отпечата. Трябва да се отбележи, че EPS визуализации са една от по-голяма машина / OS зависими аспекти на EPS. Често използвани Коментари Коментари могат разбира се да се добави навсякъде и те ще бъдат игнорирани от страна на преводача. Има някои стандартни коментари, които са най-честите от които са изброени по-долу. Текстът в квадратните скоби трябва да се заменя с подходящ текст за файла, в който те се появяват (без []). %!PS-Adobe-3.0 EPSF-3.0 %%Creator: [generally the program that generated the postscript] %%Title: [descriptive name or just the file name] %%CreationDate: [date the file was created] %%DocumentData: Clean7Bit %%Origin: [eg: 0 0] %%BoundingBox: xmin ymin xmax ymax %%LanguageLevel: 2 [could be 1 2 or 3] %%Pages: 1 %%Page: 1 1 %%EOF Рисуване “големи” снимкиПоради дължина на линията и други ограничения, превръщането на “големи” на растерни във послепис изисква промяна на методите обсъди по-рано. По-долу ще опишем най-общия случай за представяне на 24-битови RGB цвета на изображението като EPS файл. Докато неефективни това също може да, да се използва за черно-бяло “и дори черно-бели изображения. следния код” ширина “и” височина “трябва да бъдат заменени с подходящи номера на изображението. {currentfile 3 width mul string readhexstring pop} bind за {currentfile width string readhexstring pop} bind и разбира се само да напиша един шестнадесетично число (представляващи сивата ниво на пиксел) за всеки пиксел от изображението. Тази техника трябва да работят за снимки с всякакви размери. Размери хартияPaper Size Dimension (in points) ------------------ --------------------- Comm #10 Envelope 297 x 684 C5 Envelope 461 x 648 DL Envelope 312 x 624 Folio 595 x 935 Executive 522 x 756 Letter 612 x 792 Legal 612 x 1008 Ledger 1224 x 792 Tabloid 792 x 1224 A0 2384 x 3370 A1 1684 x 2384 A2 1191 x 1684 A3 842 x 1191 A4 595 x 842 A5 420 x 595 A6 297 x 420 A7 210 x 297 A8 148 x 210 A9 105 x 148 B0 2920 x 4127 B1 2064 x 2920 B2 1460 x 2064 B3 1032 x 1460 B4 729 x 1032 B5 516 x 729 B6 363 x 516 B7 258 x 363 B8 181 x 258 B9 127 x 181 B10 91 x 127 |