ПЦЛ (енгл. Printer Command Language) је програмски језик за описивање страница за штампање (енгл. page description language - ПДЛ), који је 80-их година прошлог века развила компанија Хјулет-Пакард (ХП) за своје штампаче. С обзиром да је ова компанија имала превласт на тржишту, ПЦЛ је постао стандардни језик, јер су га прихватили и многи независни произвођачи штампача, мада га најчешће користе у његовој ”огољеној” форми, те немају на располагању све функције тог језика.
Ласерски и млазни штампач познати су као штампачи страница, пошто читаву страницу, када је послата на штампање, прво склапају у меморији, претворе је у тачкице па тек онда пренесу на папир. Комуникација између личног рачунара и штампача стране, врши се уз помоћ посебног језика за опис стране. За разлику од њих, рад матричног штампача се заснива на штампању редова или само појединачних знакова уз искочне команде (енгл. escape commands). Управљачки програм (драјвер) за штампач, који се налази на личном рачунару, одговоран је за стварање излазних података за штампање, који се затим шаљу штампачу. Независно од тога да ли се приликом штампања користе искочни кодови или посебан језик за штампање, читав документ се претвара у низ података, ПДЛ или Аски знакова, да би штампање било могуће.
Историја
ПЦЛ језик се током времена развијао, пратећи настала техничка побољшавања штампача. Прве две верзије ПЦЛ, које су настале у раним 80-им, не сматрају се комплетним језиком за опис страница (ПДЛ). Користиле су се код млазног и матричног штампача, само за штампање текста. Код првог ласерског штампача (1984), уведен је ПЦЛ 3, који је био прави ПДЛ језик. Најновији модели штампача користе ПЦЛ 6 (1996). Последња верзија језика је потпуно прерађена, флексибилна и објектно-оријентисана, садржи врло напредне графичке наредбе и разне друге могућности, као што су штампање више страница на једном листу папира, употреба воденог жига, прилагођеност раду са веб страницама итд.
Основе језика
Осим садржаја текста за штампање, ПЦЛ се састоји од наредби пројектованих за искоришћавање различитих могућности одређеног модела штампача. Основу ПЦЛ језика чине 4 категорије:
Контролни кодови
Контролни кодови - стандардни Аски кодови за специјалне знаке, као што су повратак на почетак реда (енгл. Carriage Return) - CR, знак за нову страницу (енгл. Form Feed) - FF, знак за нови ред (енгл. Line Feed) - LF, искочни знак искејп (енгл. escape) - ESC, размак или празан простор (енгл. space) - SP, хоризонтални таб (енгл. horizontal tab) - HT, празног простора енгл. white space - WS, који се састоји од једног или више размака - SP или хоризонталних табова - ХТ
ПЦЛ наредбе
ПЦЛ наредбе чине главни део језика, веома су сличне искочним кодовима код матричних штампача за форматирање странице и избор фонта. Овим наредбама се успостављају главне карактеристике штампања, које се не мењају све док се новом командом не поставе неке друге или док се штампач не ресетује, односно не постави на почетно дефинисане вредности. Већина ових наредби има следећи облик:
ESC&a#C
где је ESC кључна реч, симбол „&“ параметар са вредностима од 33 до 47 из Аски табеле, „а“ параметар са вредностима између 96 и 126 из Аски табеле, „#“децимални број који може да садржи тачку, а испред њега може да стоје знаци „+“ или „-“, док је „C“ завршни симбол са вредностима од 64 до 94 из Аски табеле. Примери:
- ESC&l#X - служи за означавање броја копија где „#“ може да има вредност од 1 до 32767
- ESC&l#A - дефинише величину папира, конкретно ESC&l26A служи за папир А4 формата
- ESC&l#H - дефинише извор одакле долази папир
- ESC&l#O - дефинише оријентацију папираа
- ESC&a#P - дефинише смер штампања
- ESC&a#M - поставља десну маргину странице, када се на место „#“ знака уписује број колоне
HP-GL/2
HP-GL/2 наредбе (енгл. Hewlett Packard Graphics Language) су намењене за векторску графику као део сложеног документа за штампање, где се свака наредба састоји од два слова, уз која се додају један или више параметара за одређивање начина на који ће штампач обрадити дату наредбу. Синтакса за писање наредби је веома флексибилна, омогућава писање инструкција малим или великим словима. За раздвајање наредби једне од друге, користи се симбол „;“, док се параметри међусобно раздвајају зарезом. Између њих је могуће направити размак, мада није обавезно, што пружа могућност корисницима да сами одаберу начин писања и прегледност. Примери:
- CI 100; - црта круг пречникa 1000 јединица, где је 1 једница износи 0,025 mm
- RR 1500,1000; - испуњава површину облика правоугаоника (уз претходно одабрану врста пуњења), чије су позиције (0,0) за доњи леви и (1500,1000) за горњи десни угао у односу на почетну позицију
Уз напредно векторско цртање, овај програмски језик омогућава рад са различитим врстама слика, фотографија, као и цртање симбола, засебно или као део других графичких објеката.
Наредбе за послове штампања
ПЈЛ наредбе (енгл. printer job language) омогућавају двосмерну везу између штампача и личног рачунара (ПЦ-ја), размену информација о стању послова за штампање и препознавању штампача, одређивање најподеснијег штампача за одређени посао, као и друге задатке. Ове наредбе су ограничене на контролу самог посла штампања, те не утичу на штампање појединачних докумената. ПЈЛ команде могу да се користе и у другим језицима за описивање страница у колико их штампач подржава. Њихов општи облик је:
@PJL назив_наредбе [објекат_обухваћен_наредбом : вредност] [необавезни_параметар [= вредност]] [<CR>]<LF>
где угласте заграде „[]“ означавају необавезне параметре наредбе. Оне се не пишу у самој наредби. @PJL је кључна реч која означава почетак наредбе и увек се пише великим словима, али није обавезна у свим врстама наредби. Следи назив наредбе, са могућношћу навођења објекта обухваћеног наредбом (може да буде укупно само један објекат) и уписује се његова вредност. У наставку, у колико постоји потреба, се постављају један или више необавезних параметара и њихове вредности. Примери:
- @PJL RESET <CR><LF> - поставља све параметре окружења на почетне вредности
- @PJL COMMENT ** Beginning PCL Job ** <CR><LF> - уписује коментар
- @PJL ENTER LANGUAGE = PCL <CR><LF> - дефинише језик
Постоји могућност некоришћења ни једног назива наредбе:
- @PJL <CR><LF> - служи за убацивање празног реда између линија наредби.
Спољашње везе