Uniwersytet l ski

Wydzia Techniki

Instytut Informatyki Stosowanej

PRACA MAGISTERSKA

Temat:

Emulacja drukarki i plotera w trybie graficznym

Wykonali: Promotor:

Ryszard Czekaj prof. dr hab. in . Dariusz Badura

Pawe Szymik Konsultant:

mgr Ireneusz Go ciniak

SOSNOWIEC 1996

Wst p

Nowoczesne drukarki, opr cz wydruku prostych tekst w, umo liwiaj u ywanie r norodnych skalowalnych czcionek, a nawet umieszczanie na stronie obraz w graficznych. Plotery, podobnie jak drukarki, sterowane s specjalnymi sekwencjami, kt re w wielu wypadkach mo na traktowa jako j zyki steruj ce wydrukiem. Strumie kod w steruj cych, wraz z danymi do wydruku, mo e zosta przes any do drukarki, lub zachowany w pliku, na dysku komputera. Taki plik, zawieraj cy dane dla drukarki lub plotera nazywany jest plikiem wydruku. Plik ten mo e by p niej przes any do urz dzenia pod czonego do innego stanowiska komputerowego. Plik wydruku zawiera sekwencje steruj ce, w a ciwe tylko dla konkretnego typu urz dzenia, przez kt re b dzie p niej w a ciwie interpretowany.

Celem tej pracy jest opracowanie programu komputerowego emuluj cego dzia anie wybranej drukarki i plotera, kt ry pozwoli na prezentacj graficzn pliku wydruku na ekranie komputera.

Przy realizacji tego celu przyj te zosta y nast puj ce za o enia:

                   -         istnieje plik wydruku wybranych drukarek i plotera w odpowiednim dla nich formacie

                   -         znany jest model drukarki lub plotera, dla kt rych plik wydruku zosta stworzony

                   -         plik wydruku mo e zawiera proste dane tekstowe, oraz obraz graficzny

                   -         opracowywany program mo liwie wiernie b dzie prezentowa obraz zawarty w pliku

                   -         program umo liwi wydruk danych na drukarce innej, ni ta, dla kt rej zosta przygotowany plik wydruku

                   -         do budowy programu zaleca si wykorzysta rodowisko graficzne Windows 3.xx oraz pakiet narz dzi programistycznych Borland C++.


Techniczne aspekty pracy drukarek i ploter w

1.    Klasyfikacja drukarek

1.1.    Drukarki mozaikowe (drukarki uderzeniowe)

W drukarce mozaikowej obraz tworzony jest za pomoc g owicy zaopatrzonej w seri igie (zwykle 9, 24 lub 48), kt re uderzaj w ta m barwi c nasycon atramentem, podczas gdy g owica jest przesuwana w prz d i w ty przed papierem. Ig y ustawione s w jednym lub w kilku pionowych rz dach.

Inna, mniej znana technologia, nazywana Comb Matrix lub Shuttle Matrix pos uguje si poziomym rz dem igie (optymalnie jedna ig a dla ka dego znaku poziomego), poniewa pojedynczy rz d punkt w potrafi lepiej odwzorowa znak. W przypadkach, gdy nie ma tylu igie , ile jest znak w poziomych, grzebie porusza si nieznacznie do przodu i do ty u, aby wydrukowa niezb dne punkty. Przy tej technice papier mo e przesuwa si prawie bezustannie i dlatego jest ona cz sto u ywana w szybkich drukarkach mozaikowych. Technologia ta jest znacznie sprawniejsza, ni drukowanie pojedynczych symboli.

Uderzeniowe drukarki mozaikowe s wszechstronne, tzn. matryca z ig ami mo e by ustawiana do druku r nych czcionek, a nawet grafiki.

Drukarki mozaikowe mog by u ywane do drukowania kopii razem z orygina em, poniewa obrazy tworzone s poprzez uderzanie w ta m barwi c ,. W drukarkach tych stosuje si papier ci g y, chocia w wi kszo ci modeli mo liwe jest u ycie pojedynczych kartek oraz etykiet.

Ze wzgl du na metod drukowania, drukarki mozaikowe s znacznie g o niejsze ni inne modele (nawet w tzw. trybie cichej pracy ).

Pr dko drukowania, podawana zwykle w cps (znaki na sekund ), jest r na, w zale no ci od u ywanych czcionek (Draft/LQ) oraz r nych warto ci rozdzielczo ci cpi (punkty na cal) [16], [15], [8].

1.2.    Drukarki Daisywheel i maszyny do pisania

W drukarkach typu Daisywheel (drukarki rozetkowe) wydruk tworzony jest za pomoc b bna, na kt rym wyt oczone s wszystkie litery i symbole. G owica przesuwa si po papierze w prz d i w ty , a elektromagnes zaczyna pracowa , gdy b ben jest ustawiony w pozycji potrzebnej litery.

Drukarki Daisywheel popularne by y ze wzgl du na jako wydruku lepsz , ni we wcze niejszych modelach, jak np. w dziewi cioig owych drukarkach mozaikowych.

G wne ich wady to: ma a szybko drukowania, ograniczona ilo symboli na b bnie, oraz brak mo liwo ci tworzenia grafiki.

Drukarki Daisywheel nale do typu drukarek uderzeniowych. Umo liwia to drukowanie kopii jednocze nie z orygina em. Drukowanie jest mo liwe na papierze ci g ym, jak r wnie na pojedynczych arkuszach oraz etykietach.

Pr dko drukowania podaje si zwykle w cps (znaki na sekund ) [8].

1.3.    Drukarki atramentowe

Drukarki atramentowe dzia aj podobnie jak mozaikowe, kt re tworz wydruk przez uk adanie punkt w na papierze. W drukarkach atramentowych krople atramentu rozpryskiwane s bezpo rednio na papier. Znacznie g stszy, ni w drukarkach mozaikowych wz r z punkt w pozwala uzyska wydruk lepszej jako ci.

W nowszych modelach atramentowych atrament nie jest wyrzucany elektrostatycznie lub poprzez drobne pompki , lecz zamieniany w par przez podgrzewanie i, pod ci nieniem rozszerzaj cej si pary, nanoszony jest na kartk .

Modele atramentowe nie nale do typu drukarek uderzeniowych, wi c kopie drukuje si oddzielnie. Drukowanie jest mo liwe na papierze ci tym, jak w przypadku fotokopiarki. Niekt re modele, dla lepszego wydruku wymagaj specjalnej jako ci papieru, chocia dla wi kszo ci drukarek wystarcza papier standardowy.

W niekt rych drukarkach mo na u ywa papieru ci g ego i mo na nawet drukowa etykiety, pod warunkiem, e s one wykonane z papieru dobrze wch aniaj cego atrament.

rys.A HP DeskJet 600 C

Drukarki atramentowe s cichsze i znacznie szybsze od drukarek uderzeniowych. Parametr szybko ci wydruku podaje si w cps (znaki na sekund ), czasami tak e, dla r nych czcionek w ppm (strony na minut ).

Pomimo, e atramenty tych drukarek s rozpuszczalne w wodzie, r ni si bardzo pod wzgl dem zamaczania . Mo e to mie znaczenie, je li wydruk ma by u yty do prezentacji w  rodowisku o du ej wilgotno ci.

Niekt re rodzaje atramentu nie s odporne na dzia anie wody. Do takich atrament w zalicza si : wszystkie Canon y, czarny DEC 520ic oraz atramenty TI Micromarc. Natomiast czarny atrament HP DeskJet (rys.1) jest prawie tak wodoodporny jak wydruk laserowy. Najbardziej wodoodporne wydaj si by czarne i kolorowe atramenty Epson a: litery rozpraszaj si , ale nie rozmazuj pod wp ywem wilgoci.

Wydruki kolorowe (atramentowe) niestety nie s tak d ugotrwa e jak fotografie. Te z nich, kt re s wytrzyma e na wiat o, cz sto niszczy wilgo , podczas kiedy inne szybko p owiej w jasnym wietle. Trwa o wydruku mo e by przed u ona przez laminowanie. Niestety, nowoczesne kolorowe drukarki atramentowe nie s w u yciu dostatecznie d ugo, by zbada d ugowieczno najnowszych atrament w [8], [10], [11].

1.4.    Drukarki laserowe i drukarki LED

Modele laserowe i LED nie nale do typu drukarek uderzeniowych, tak wi c kopie musz by drukowane oddzielnie. U ywane s w nich zwykle pojedyncze arkusze papieru. Mo na w nich drukowa etykiety wytrzyma e na podgrzewanie podczas wypalania tonera.

Aby powsta wydruk w drukarce laserowej, specjalny b ben zostaje na adowany elektrostatycznie, a rysunek strony powstaje przez roz adowywanie b bna promieniem lasera lub lini LED (ang. Light Emitting Diode) w odpowiednich punktach. Do roz adowanych punkt w przylega toner. Punkty te s lustrzanym odbiciem miejsc, w kt rych no nik ma si ukaza na wydruku ko cowym.

rys.B HP LaserJet 4V

Papier mija drut Corona, kt ry nadaje mu adunek elektryczny przeciwny do adunku punkt w na b bnie, nast pnie przechodzi przez walec, z kt rego toner jest zatrzymywany na jego powierzchni. Ostatecznie, przesuwany jest pod elementem cieplnym, kt ry, stapiaj c toner, czy go z papierem.

Wi kszo obecnych drukarek laserowych nie posiada drutu Corona, a papier elektryzowany jest za pomoc wa ka. Drukarki laserowe i LED tworz bardzo wyra ny, precyzyjny wydruk, o rozdzielczo ci powy ej 300 dpi (osi gaj nawet 1200 dpi). W niekt rych drukarkach zastosowano r norodne techniki, jak np. technologia rozszerzonej rozdzielczo ci (ang. Resolution Enhancement) w celu kontroli roz o enia punkt w dla wyg adzenia kontur w.

Drukarki laserowe i LED s stosunkowo ciche. Wydruk modeli laserowych i LED jest mierzony w ppm (strony na minut ) w pozycji copy mode (tzn., obraz strony, kt ry jest ju w pami ci drukarki, kopiowany jest na papier mo liwie szybko) [8], [10], [11].

1.5.    Drukarki kolorowe

W drukarkach kolorowych zastosowano kilka metod s u cych do tworzenia kolorowego wydruku.

Niezale nie od metody u ywanej do produkcji kolorowego wydruku, istniej trzy r ne sposoby wyszczeg lniania kolor w:

               RGB (ang. red-green-blue): metoda standardowa, u ywana we wsp pracy z urz dzeniami takimi, jak monitory i telewizory. Jest to dodaj cy proces mieszania kolor w (kolor bia y uzyskuje si przez wymieszanie wszystkich trzech kolor w z t sam intensywno ci ).

               CMYK (ang. cyan-magenta-yellow-black): metoda u ywana szczeg lnie przy drukowaniu dla cel w handlowych. Jest to odejmuj cy proces mieszania kolor w (kolor czarny uzyskuje si przez wymieszanie wszystkich trzech kolor w z t sam intensywno ci lub przez posiadanie dodatkowego koloru czarnego, daj cego bogatsz , ciemniejsz czer ).

               Roztrz sanie (ang. dithering): metoda, w kt rej kolory nie s naprawd mieszane, lecz przez umieszczenie punkt w r nych kolor w w r nych cie nionych miejscach uzyskuje si obraz sprawiaj cy wra enie u ycia wi cej ni czterech kolor w. Metoda ta jest podobna do metody otrzymywania skali szaro ci przez ustawienie wi cej lub mniej czarnych punkt w.

W kolorowych drukarkach mozaikowych stosuje si kolorow ta m . W drukarkach atramentowych znajduj si pojemniki z kolorowym atramentem. Niekt re z nich tworz kolor czarny poprzez mieszanie kolor w (HP DeskJet 600 C rys.1), w innych znajduje si oddzielny pojemnik z czarnym atramentem (HP DeskJet 660 C).

W drukarkach termicznych stosuje si film z czterema kolorami wosku. Drukarka przesuwa papier cztery razy, jeden raz dla ka dego koloru. Poniewa ka dy kolor jest przenoszony na papier, powstaje pe ny kolorowy obraz.

Niekt rzy producenci wprowadzili ostatnio na rynek kolorowe drukarki laserowe, posiadaj ce cztery oddzielne pojemniki na toner, jeden na ka dy kolor podstawowy.

W kolorowych drukarkach laserowych stosuje si zwykle cztery kolory tonera: trzy g wne odejmuj ce (cyan, magenta i yellow) oraz czarny.

Widzialne spektrum jest ci g e, mo na wi c tylko przybli y kolory widzialne przez wymieszanie barw podstawowych, odejmuj cych (mieszaj c razem tonery cyan, magenta i yellow uzyskuje si w a ciwie rodzaj szaro ci, a nie mocn czer ). Dodanie czarnego tonera pozwala uzyska wi cej kolor w oraz znacznie wyrazistsz czer . We wszystkich kolorowych drukarkach laserowych zakres kolor w tworzy si przez mieszanie toner w na jeden z dw ch podstawowych sposob w:

1) W drukarkach o tonowaniu ci g ym mo na zmienia ilo tonera dla ka dego koloru w ka dym punkcie. Drukarki te s do kosztowne, ale umo liwiaj jednocze nie reprodukcje o jako ci zbli onej do fotografii. Dla drukarki kolorowej 32-bitowej, o tonowaniu ci g ym ka dy piksel mo e mie 4,294,967,296 r nych kombinacji tonera. Drukowanie ich wszystkich nie jest konieczne, gdy np. kombinacja mocnej czerni z C, M i Y wygl da identycznie, a u ytkownik ponosi jedynie straty tonera. Ponadto, przej cie z 24-bitowej palety RGB na 32-bitow palet CMYK nie jest zazwyczaj oczywiste, u ytkownik ma wi c w a ciwie dost p do 16,777,216 kolor w.

Nie wszystkie kolory, kt re mog by przedstawiane na ekranie w palecie RGB powstaj przez zmieszanie czterech toner w. Niekt re z nich b d poza skal i mo na je osi gn przez zast pienie kolorem drukowalnym, postrzeganym podobnie. W ten sam spos b b dzie mo liwe drukowanie kolor w, kt rych nie da si odtworzy na ekranie RGB.

2) W drukarkach o tonowaniu stopniowym nie mo na zmienia ilo ci tonera przypadaj cego na kolor w obr bie ka dego piksela. S one stosunkowo ta sze, ale ich wydruk jest du o ni szej jako ci, szczeg lnie przy odtwarzaniu obraz w z rzeczywisto ci. Ka dy z czterech kolor w mo e znajdowa si , lub nie, w ka dym pikselu, tak wi c ka dy punkt mo e mie tylko 16 r nych kombinacji tonera. Ponadto, kolor czarny, zmieszany z jakimkolwiek innym, b dzie wygl da jak czarny, wi c 8 z tych kombinacji b dzie wygl da tak samo, i ka dy piksel mo e w rzeczywisto ci przybra 9 r nych kolor w. Kolory, kt re nie mog by reprezentowane bezpo rednio, s pozorowane przez roztrz sanie (ang. dithering), co powoduje, e oko ludzkie odbiera kolory po rednie w taki sam spos b, jak p tonowe fotografie w gazetach. Drukowanie nie jest mo liwe w 16,777,216 kolorach prezentowanych przez 24-bitowe RGB. Mo na drukowa tylko 9 r nych kolor w, a wi c konieczne jest u ywanie procesu roztrz sania dla pokazania 24‑bitowych kolor w. Roztrz sanie pozwala na przedstawienie kolor w po rednich, w spos b por wnywalny do tonu ci g ego. Do drukarek o tonowaniu stopniowym mo na dostarcza 24‑bitowe dane, co nie wp ywa na mo liwo mieszania r nych ilo ci ka dego tonera dla r wnego zakresu kolor w ka dego punktu [8].

1.6.    Inne rodzaje drukarek

Istniej inne technologie druku np. technologia drukarek liniowych, wykorzystywana szczeg lnie w systemach mainframe. Drukowanie nast puje za pomoc obracaj cego si cylindra lub a cucha zawieraj cego wszystkie symbole.

W przypadku zastosowania cylindra rotacyjnego wszystkie kolumny zawieraj ca y zestaw znak w, cylinder obraca si w kierunku przesuwania si papieru, a papier jest zatrzaskiwany mi dzy ta m i cylindrem, kiedy symbol do wydrukowania znajduje si we w a ciwej pozycji. Jeden obr t cylindra drukuje ca linijk tekstu.

W przypadku zastosowania a cucha rotacyjnego zestaw symboli jest powt rzony na a cuchu kilka razy. Projektant drukarki ustala ilo powt rze ka dego symbolu, w zale no ci od tego jak cz sto pojawia si on w tek cie. W ameryka skim angielskim jest to sekwencja ETAON.... Je li u ywane symbole powtarzane s cz ciej, wtenczas drukowanie ca o ci jest szybsze. a cuch obraca si prostopadle do kierunku przesuwania si papieru, a papier jest zatrzaskiwany mi dzy ta m i  a cuchem, kiedy symbol do wydrukowania znajduje si we w a ciwej pozycji. Wariantem drukarki a cuchowej jest drukarka typu Belt Printer . Jako wydruku jest zbli ona do jako ci wydruku drukarki a cuchowej, przy jednocze nie ni szym poborze mocy i mniejszym nat eniu ha asu. W standardowej drukarce belt u ywa si wysokiej jako ci zestawu w  a cuchu. W drukarkach IBM 3203 i 1403 ka de uderzenie powoduje wydrukowanie trzech symboli z  a cucha. U ycie a cucha wyraz w jest celowe: trzy symbole na modu podczas obrotu a cucha nast puj po sobie.

rys.C IBM 3203

W drukarce belt symbole ustawione s osobno na palcach (ustawienie podobne do symboli na daisywheel ) umieszczonych na gumowym pasie. Podobnie jak w drukarce a cuchowej, nie wszystkie symbole s powt rzone z t sam cz stotliwo ci . W odr nieniu od drukarek cylindrowych i a cuchowych, pas jest zatrzaskiwany pomi dzy ta m i papierem.

Pr dko drukowania dla tych drukarek podawana jest zwykle w lps (linie na sekund ) lub nawet w pps (strony na sekund ). Drukarki belt , drukarki a cuchowe oraz drukarki z cylindrem rotacyjnym (do 70 lps) polecane s dla zwi kszenia szybko ci wydruku.

Istniej r wnie drukarki mozaikowe termiczne, umo liwiaj ce drukowanie symboli i grafiki (np. barcodes) przez podgrzewanie papieru (punkt w): miejsca podgrzane staj si czarne.

W dziedzinach zwi zanych z tworzeniem wydruk w wykorzystuje si jeszcze kilka innych egzotycznych technologii np. papier pokryty aluminium stosowany przez Sinclair a, a tak e technologia roz adowanie iskry (ang. spark discharge). S one jednak bardzo rzadkie i w wi kszo ci przestarza e [8].

2.    Klasyfikacja ploter w

2.1.    Plotery tablicowe

Plotery tablicowe s urz dzeniami o do poka nych gabarytach, zbli onych do maksymalnego formatu rysunku. Na przyk ad, ploter formatu A1 lub A0 mia wygl d ogromnego sto u, na kt rym arkusze kalki mocowano elektrostatycznie. Po tablicy porusza y si pisaki na stalowych szynach, a wykre lenie najdrobniejszego nawet elementu trwa o bardzo d ugo, poniewa pisaki musia y ca drog tam i z powrotem przeby po szynach [11].

2.2.    Plotery pisakowe (b bnowe)

Znacznie doskonalsze s plotery pisakowe (rys. 4). Urz dzenia te zajmuj o wiele mniej miejsca, a arkusz kalki mocowany jest ju tylko w dwu punktach.

rys.D Ploter pisakowy

Zasad dzia ania mo na najpro ciej przedstawi w postaci ramy z rozpi t kalk poruszaj c si po rolkach w p aszczy nie pionowej, podczas gdy karetka z pisakami porusza si w p aszczy nie poziomej. Wymiary gabarytowe plotera pisakowego musia y by dostosowane wy cznie do szeroko ci formatu. By y to urz dzenia znacznie mniejsze, cichsze i szybsze.

Szybko pracy by a stale zwi kszana dzi ki optymalizacji programowej ruchu karetki z pisakiem.

W ploterach pisakowych nie uda o si przezwyci y nast puj cych wad: mo liwo ci kolorystyczne ogranicza y si do wymiany pisak w, a wype nianie p l sprowadza o si do ich zakreskowania. Rysowanie bitmap, by o mo liwe tylko teoretycznie. Jako rysunku zale a a od szeregu czynnik w, jak np. jako tuszu i pisaka oraz szybko przesuwu pisaka. W przypadku skomplikowanych, wielowarstwowych rysunk w wi kszych format w wyst powa y niedok adno ci rz du milimetr w, spowodowane kumulowaniem si mechanicznych odchyle przesuwu pisaka.

Rozw j ploter w pisakowych (laboratoria firmy Houston Instruments) doprowadzi z czasem do powstania plotera z g owic skanuj c . Zamontowanie takiej g owicy przekszta ca o ploter w wielkoformatowe urz dzenie skanuj ce [11].

2.3.    Plotery atramentowe

R wnolegle z ploterami pisakowymi rozwija y si rastrowe plotery atramentowe. Urz dzenie to dzia a na zasadzie rozpylania na kalce kropelek tuszu, podobnie jak w drukarce atramentowej. Plotery atramentowe s znacznie dok adniejsze i  atwiejsze obs udze, za efekty ich pracy s bardziej przejrzyste.

rys.E DesignJet 350 C

Obecnie wiele firm wprowadza na rynek wielkoformatowe plotery rastrowe. Najnowszym produktem tego rynku jest produkt firmy Hewlett-Packard DesignJet 750C. Jest to ploter formatu A0, kolorowy, dysponuj cy niezwykle wysok rozdzielczo ci true 600 dpi w systemie monochromatycznym. Jak wi kszo nowoczesnych wyrob w Hewlett-Packarda, jest to urz dzenie ca kowicie bezobs ugowe. Po za adowaniu rolki papieru i w o eniu na swoje miejsce naboi atramentowych ploter mo na w czy . DesignJet (rys.5) ju samodzielnie troszczy si , by wszystkie dysze prawid owo dzia a y, by papier ustawiony by w a ciwie, sam sprawdza parametry no nika i dostosowuje si do podanego formatu.

Oryginalnym wk adem Hewlett-Packarda w rozw j koncepcji plotera rastrowego jest zastosowanie tzw. tuszu pigmentowego. Do tej pory g wnym argumentem przeciwko ploterom atramentowym, by o zjawisko zasychania dysz. W HP zadbano, by produkt sam sprawdza , czy jaka dysza si nie zatka a, i sam pr bowa awari usun . Dopiero zastosowanie tuszu pigmentowego przynios o radykalne efekty i przyczyni o si do podniesienia jako ci wydruku. Tusz ten, w odr nieniu od innych stanowi zawiesin cia a sta ego. Naboju z takim tuszem nie mo na ju uzupe nia tzw. refilami.

Efektem zastosowania tuszu pigmentowego jest zwi kszenie wyrazisto ci wykre lonej linii b d powierzchni. Napylona na papier warstewka substancji zabezpiecza go przed wilgoci i podnosi trwa o oraz odporno rysunku.

Drobnoziarnista struktura tuszu umo liwia uzyskanie rozdzielczo ci rz du 600 dpi.

Innym ciekawym rozwi zaniem zastosowanym w modelu 750C jest kompensacja luzu na z batkach toru karetki. Usuwa ono efekt poszarpanych linii pionowych, kt ry w przypadku niekt rych innych urz dze , zw aszcza przy rysowaniu cienkimi liniami du ych element w tworzy ma o estetyczny efekt wizualny.

DesignJet 750C jest urz dzeniem niezwykle cichym i szybkim. Cho przy prostych rysunkach z zasady nie mo e konkurowa z ploterami pisakowymi, w przypadku skomplikowanych, z czasem rysowania formatu A1 rz du 4 minut, przewy sza je.

Du ym udogodnieniem jest mo liwo wyposa enia plotera w tzw. kart HP JetDirect. Jest to karta sieciowa, dzi ki kt rej ploter widziany jest w sieci jako urz dzenie dost pne dla wszystkich pracownik w i nie wymaga ustawienia dodatkowego serwera. 8 MB RAM, w kt re standardowo wyposa ony jest DesignJet, pozwala na kre lenie bardzo du ych rysunk w (nawet o wielko ci kilkunastu megabajt w).

Sterowniki rozwi zano w taki spos b, by drukowanie odbywa o si w trybie ci g ym w pami ci komputera, r wnolegle z przetwarzaniem wektor w na bitmap . Dodatkowa pami potrzebna jest dopiero w wczas, gdy rozbudowujemy system o funkcje postscriptowe [11].

3.    J zyki sterowania drukarek i ploter w

Nowoczesne drukarki mog tworzy bardzo z o one rysunki, niekiedy konkuruj ce z fotografiami lub z dokumentami otrzymywanymi z drukarni. Spos b przesy ania strumienia danych od drukarki jest sam w sobie formatem zapisu obrazu w pliku. Istniej dwa og lne typy format w plik w wydruku dla drukarek: rozszerzone formaty tekstowe (ang. extended text format) i j zyki opisu strony (ang. page description languages).

3.1.    Rozszerzone formaty tekstowe

Formaty takie w czaj informacje graficzne do konwencjonalnego strumienia danych tekstowych. Zwyk y tekst jest drukowany, a sekwencje steruj ce wprowadzaj elementy nietekstowe. Szeroko rozpowszechnionym formatem jest Printer Control Language (PCL). Sta si on standardem dla drukarek laserowych niskiej i  redniej wydajno ci [6], [15], [16], [8].

3.1.1.    IBM Proprinter

J zyk drukarki IBM ProPrinter pocz tkowo u ywany do drukarek IBM (IBM Graphics Printer 5152, IBM ProPrinter XL 4201/4202, IBM ProPrinter X24/XL24 4207/4208), jest te u ywany obecnie przez wiele drukarek mozaikowych jak w przypadku Epson a ESC/P i ESC/P2. Funkcjonalno jest r na w zale no ci od zastosowanej wersji lub wyselekcjonowanej podczas ustawienia drukarki (XL, XL24 lub AGM s przyk adami takich wersji).

J zyk sterowania IBM ProPrinter w drukarkach od r nych producent w mo e si nieznacznie r ni co do funkcjonalno ci. Zwykle r nice s dodatkowymi funkcjami nieuwzgl dnionymi w  standardzie.

3.1.2.    Epson ESC/P, ESC/P2

ESC/P (Epson Standard Code).

ESC/P2 (Epson Standard Code, Level 2).

J zyk drukarki ESC/P zosta stworzony przez Epson a do stosowania we wczesnych drukarkach mozaikowych. Obecnie u ywany jest tak e przez atramentowe i laserowe drukarki Epson a jak r wnie przez wiele innych drukarek mozaikowych znajduj cych si na rynku. ESC/P2 jest ulepszeniem ESC/P, posiada np. nowe funkcje do skalowania czcionek, dla drukowania grafiki rastrowej, itp.

Drukarki ESC/P lub ESC/P2 r nych producent w mog si nieznacznie r ni w swojej funkcjonalno ci. Zwykle r nice te, to dodatkowe funkcje niedostarczone z wersj oryginaln Epson a.

Informacje o stosowanej wersji ESC/P i ESC/P2 znajduj si w dokumentacji drukarek poszczeg lnych producent w. Niekt re pozycje to kr tkie wyliczenie dost pnych funkcji z przyk adami w BASIC u. Mo na te znale tam tablice z zestawem symboli i tablice z szeroko ci czcionek. ESC/P2 Reference Manual firmy Epson, zawiera wykaz kod w ESC/P i ESC/P2, jak r wnie kompletny opis r nic w rozkazach ka dej drukarki. Najnowsza wersja pochodzi z sierpnia 1992.

3.2.    J zyki opisu strony

Innym podej ciem do sterowania drukark jest zdefiniowanie ca kowicie nowego j zyka opisu wydruku. W przesz o ci u ywano kilku takich j zyk w, ale obecnie standardem sta si PostScript [8], [6].

3.2.1.    PostScript

PostScript jest j zykiem opisu strony produkowanym przez Adobe Systems Inc. od pocz tku lat 80-tych. Adobe zosta o utworzone w 1982 r przez dr John E. Warnock i dr Charles M. Geschke. Dostarcza on instrukcji do opisu strony informacji. Poniewa wymaga wi cej pami ci, ni wi kszo j zyk w opisu strony , by pierwszym, szeroko dost pnym produktem, kt ry kontrolowa wi ksz liczb czcionek i grafiki.

Pierwsza wersja opublikowana w 1985 r jest nazywana Level I, obecne ulepszenie jest nazywane Level II (nie nale y myli z: wersj PostScript 47.0 lub 2011.110, ani z liczb w linii pocz tkowej jakiegokolwiek wydruku PostScript, jak %!PS-Adobe-3.0 ). Poziom PostScript u i rozszerzenie wersji o interpreter, poszerzaj mo liwe operacje.

W obiegu znajduje si kilka klon w PostScript u, lecz, ze wzgl du na koszty op aty licencyjnej za Adobe interpreter; najbardziej znanym jest GhostScript. Inne, wbudowane bezpo rednio do drukarek laserowych lub dostosowywane przez dodatkow kaset (ang. cartridge) to: Phoenix Page, BrotherScript, Page Styler, True Image, Turbo PS, PDL i KPDL. M wi si o nich, e s ca kowicie kompatybilne z PostSscript em, lecz ta kompatybilno ko czy si czasami przy adowaniu czcionki, przy manipulowaniu czcionk (tj. wstawianiu tabeli metrycznej lub nowych symboli) oraz przy innych operacjach. Przy u yciu klon w nie ma jednak problemu z drukowaniem prostego tekstu czy grafiki.

Zestaw symboli PostScript jest stosowany do pisania programu PostScript, a nie symboli drukowanych czcionk PostScript u.

Adobe zaleca u ycie tylko drukowalnego podzestawu symboli ASCII w programie PostScript u, spacje, tabulatory i symbole CR oraz LF. PostScript nie zabrania u ycia symboli poza tym zestawem, lecz stosowanie ich mo e spowodowa problemy z przesy aniem (np. transfer 8-mio bitowych symboli przez 7‑mio bitow lini seryjn do drukarki). Dla przedstawienia 8-mio bitowych symboli poza ci giem nale y u y formu y \ddd .

Plik przeznaczony dla drukarki jest w a ciwie programem komputerowym w j zyku PostScript, kt ry rysuje dany obraz. PostScript u ywany jest do wykonywania operacji ci le zwi zanych z generacj obrazu.

Programy PostScriptowe rysuj grafik zasadniczo na dwa sposoby. atwiejszy spos b polega na narysowaniu mapy pikseli. Jeden z podstawowych operator w PostScriptu wczytuje sekwencj pikseli i wy wietla je w prostok tnym obszarze na stronie. To podej cie nadaje si do do czania do dokument w obraz w zeskanowanych lub pobranych z obrazu monitora, lub dowolnych innych obraz w, kt re ju istniej w formacie mapy bitowej.

Alternatywnym sposobem u ycia PostScirptu jest tworzenie rysunku w formacie wektorowym lub metapliku. Istniej operatory do rysowania linii, okr g w, krzywych, prostok t w itp., i z tych element w mo na budowa grafik .

Mo na r wnie czy te dwa podej cia. Dla przyk adu: operatory linii, prostok ta i krzywej mog pos u y do wyznaczenia obszaru, kt ry zostanie nast pnie u yty jako maska wycinania do sterowania wy wietlaniem mapy bitowej [8], [11].

3.2.2.    HP PCL i PJL

J zyk PCL zosta stworzony przez firm Hewlett-Packard na potrzeby produkowanych przez siebie drukarek (laserowych i atramentowych). Wersje j zyka PCL s numerowane od 1, a do obecnej wersji 5e.

Kr tka historia j zyka PCL (na podstawie HP s Printer Language Technical Reference Manual ):

               PCL 1 - Funkcjonalno druku i przestrzeni jest baz dla funkcji dostarczonych dla prostego, wygodnego stanowiska pracy pojedynczego u ytkownika.

               PCL 2 - Funkcjonalno EDP (ang. Electronic Data Processing - elektroniczne przetwarzanie danych), jest ulepszeniem PCL 1. Zosta y dodane funkcje dla cel w og lnych, system drukowania dla wielu u ytkownik w.

               PCL 3 - Funkcjonalno Office Word Processing jest ulepszeniem PCL 2. Zosta y te dodane funkcje dla podwy szenia jako ci wydruku, obr bka dokument w biurowych (drukarki z rodziny HP DeskJet).

               PCL 4 - Formatowanie strony jest ulepszeniem PCL 3. Zosta y dodane funkcje nowych mo liwo ci drukowania strony (drukarki: HP LaserJet, HP LaserJet IIP (PCL 4,5))

               PCL 5 - Funkcjonalno Office Publishing jest ulepszeniem PCL 4. Nowe mo liwo ci publikowania w czaj skalowanie czcionki i grafik HP-GL/2 (Drukarki HP LaserJet III, HP LaserJet 4 (PCL 5e)).

Wersje PCL r ni si pod wzgl dem funkcjonalno ci (np. typ czcionek, czcionki mapy bitowej, czcionki skalowalne (Intellifonts, True Type), metody kompresji grafiki, wsparcie grafiki przez HP LaserJet III).

PCL jest najbardziej rozpowszechnionym j zykiem drukarek na obecnym rynku drukarek laserowych. Wi kszo producent w drukarek laserowych stosuje do nich j zyki PCL 4 lub PCL 5.

PJL (ang. Printer Job Language) zosta tak e stworzony przez HP, aby dostarczy metody na zmian parametr w poziomu pracy i stanu odczytu pomi dzy drukark , a g wnym komputerem. PJL mo e by stosowany na pocz tku drukowania do ustawienia niekt rych parametr w jak j zyk drukarki (PCL, PostScript lub inne), rozdzielczo (300 lub 600 dpi), ilo kopii, itp.

PJL jest obecnie stosowane w nast puj cych drukarkach HP: LaserJet IIISi, rodzina LaserJet 4, PrintJet XL 300 oraz DesignJet.

PJL jest r wnie stosowane w serii 5 drukarek LaserJet [11], [7], [10].

3.3.    Inne j zyki sterowania drukarek

Na rynku znajduje si wiele innych unikalnych j zyk w sterowania drukarkami. Nast puj ca lista nie jest wi c kompletna (intencj jest tylko wspomnienie o nich, a nie dok adny opis). Kolejno wymienionych j zyk w nie ma nic wsp lnego z ich wa no ci na rynku.

               Advanced Function Printing (AFP): jest u ywany w IBM Mainframes dla drukarek stronicowych . Jest to funkcja prezentacji zestawu Mixed Object Document Content Architecture (MO:DCA), kt ry jest cz ci IBM System Appliccation Architecture.

               W a ciwie nie drukuje si za pomoc MO:DCA, stosuje si IPDS (ang. Inteligent Printer Data Stream).

               Informacje obejmuj PTOCA (ang. Print Text Object Content Architecture), GOCA (ang. Graphic Object Content Architecture), IOCA (ang. Image Object Content Architecture) jak te inne.

               IPDS jest j zykiem druku IBM SAA. Dzia a on z r nymi czcionkami bitmapowymi, z prost podstawow grafik , oraz z wizerunkami bitmapowymi. Ze wzgl du na prostot wyobra anego modelu, mo e by u yty do kierowania-obs ugi szybkich drukarek laserowych.

               Diablo 630: pocz tkowo u ywany z drukarkami rozetkowymi i maszynami do pisania. Toleruje tylko sekwencje tabulacji, odst py linii i symboli, selekcj atrybut w (ang. bold, double-strike, underline - pogrubiony, podw jne uderzenie, podkre lony), ruchy poziome w obu kierunkach, proporcjonalne odst py i automatyczne wy rodkowanie i justyfikacj - mi dzy innymi. Ten j zyk jest czasami u ywany przez innych producent w jako baza dla ich specyficznych emulacji.

               CaPSL: (ang. Canon Printing System Language) by poprzednim j zykiem standardowym dla laserowych drukarek Canon a. Inna wyst puj ca nazwa to LIPS (ang. Laser-beam Image System). Za CaPSL kryje si pewna historia - Canon produkuje silniki do drukarek dla HP, nie mia jednak licencji na stosowanie HP PCL w swoich w asnych drukarkach. St d powsta a potrzeba znalezienia w asnego j zyka drukarek. Lasery Canona tradycyjnie zawiera y CaPSL, IBM ProPrinter, ESC/P i emulacje PostScript, ale nie PCL). Ta cz kontraktu mi dzy Canon em a HP najwidoczniej uleg a przedawnieniu, poniewa obecnie Canon oferuje drukarki z PCL 4 i PCL 5.

               LIPS wspomaga Diablo 630 (ustawienie fabryczne dla trybu polecenia - ang. command mode), tryb ISO (dla drukowania tekstu i grafiki rastrowej) oraz tryb VDM (dla grafiki wektorowej i drukowania symboli)..

               RENO: jest to standardowy j zyk sterowania dla drukarek Agfa (P400, P3400, itp.). RENO jest rodzajem j zyka opisu strony. Jego funkcjonalno jest ogromna: opr cz drukowania tekstu z r n skal czcionek, mo na rysowa linie, zape nia ikony (Windows) wzorami, u ywa wyra e programowania (if-then-else, repeat-until, set, use and print variables, operacje push i pop), mo e adowa i drukowa swoje w asne symbole i przenosi dane do pami ci operacyjnej drukarki lub na twardy dysk, czy dyskietk je li jest do czona.

               Prescribe: jest to j zyk opisu strony stworzony przez Kyocera. Jego zalet jest fakt, e mo na go osadzi w innej obecnej emulacji drukarki na urz dzeniach Kyocera. Drukarki Kyocera wspomagaj HP PCL, klon HP‑GL nazywany KC‑GL, Epson ESC/P (tryb LQ-850), IBM ProPrinter X24E, Diablo 630, og ln emulacj drukarki liniowej, i jako opcj KPDL, klon PostScript.

               DEC: DEC posiada swoje w asne unikalne j zyki dla drukarek laserowych (LN03, LN06).

               ANSI: Dan McGowan Mannesmann Tally twierdzi, e: Drukarki Mannesmann Tally, kt re posiadaj ANSI da y podstaw dla notacji ANSI 3.64. Jest to raczej lu na specyfikacja pokrywaj ca og lne funkcje peryferyjne. Drukarki produkowane w U.S.A., w wi kszo ci posiadaj wszystkie rozkazy ANSI 3.64 nale ce do funkcji drukarki. Drukarki produkowane w Niemczech s seri drukarek g owicowych (ang. flying serial head printers). Posiadaj MTPL (ang. Mannesmann Tally Printer Language), kt ry jest oparty na ANSI 3.64 lecz zawiera dodatkowe polecenia [8].

3.4.    J zyki sterowania ploter w

Nazwa HP-GL (ang. Hewlett-Packard Graphics Languages - j zyk graficzny firmy Hewlett-Packard) oznacza j zyk stosowany pierwotnie do obs ugi ploter w firmy Hewlett-Packard. Za dat powstania tego j zyka przyjmuje si rok 1976, w kt rym pojawi y si na rynku wspomniane plotery. Wraz z udoskonaleniem tych urz dze j zyk HP-GL zosta wzbogacony o nowe polecenia, a obecnie jego druga wersja jest oznaczona symbolem HP-GL/2.

J zyk HP-GL posiada tak e obs ug kroj w wektorowych, co oznacza w praktyce mo liwo ci sterowania urz dzeniem, podobne do tych jakie daje PostScript. Du a cz j zyka HP-GL/2 zosta a w czona do pi tego poziomu j zyka PCL, w kt rym istniej specjalne polecenia prze czaj ce sterowanie z  klasycznego PCL na j zyk HP-GL i odwrotnie.

Sk adnia j zyka HP-GL/2 jest prosta. Wszystkie instrukcje s dwuznakowymi skr tami ich nazw. Po skr cie nast puj parametry. Mog one by obowi zkowe lub opcjonalne. Jako separator oddzielaj cy od siebie parametry mo e s u y odst p lub przecinek. Preferowanym separatorem jest przecinek. Ka d instrukcj ko czy terminator. Terminatorami mog by : rednik, pierwszy znak nast pnej instrukcji lub odst p [10], [7], [6].

Systemy t umacz ce

1.    Konwersja mi dzy typami plik w

Poniewa istnieje wiele format w j zyk w sterowania drukark , jest rzecz oczywist , e cz sto wyst puje potrzeba przetwarzania formatu pliku wydruku na inny. Zale nie od rodzaj w formatu r d owego i docelowego mo e to by zadanie trywialne, ale mo e te by niemo liwe do wykonania. Obrazy zapisane w pliku wydruku mog mie r n posta . Mo e to by obraz bitmapowy, wektorowy lub wr cz zwyk y tekst ASCII. Uwzgl dniaj c format j zyka rozumianego przez drukark mo e zachodzi potrzeba konwersji formatu obrazu zapisanego w pliku wydruku [6].

1.1.    Mapa bitowa na map bitow

Przetworzenie jednego typu mapy bitowej na inny jest zwykle atwe. Je li przebrniemy ju przez szczeg y kodowania pliku, b dziemy mie do czynienia z pikselami, kt re s niemal zawsze takie same, wi c konwersja jest prosta.

Je li przebiega z formatu bardziej do mniej deskryptywnego, np. z kolorowego do czarno-bia ego lub ze stopniowaniem szaro ci, istniej znane metody przekszta cania z zachowaniem najlepszej mo liwej jako ci obrazu.

1.2.    Format wektorowy na wektorowy

Podstawowym zagadnieniem przy przekszta caniu pomi dzy formatami wektorowymi jest dostosowanie nieco r ni cych si semantyk poszczeg lnych format w i tak e, w pewnym stopniu, uk ad w wsp rz dnych. W najprostszym przypadku rozkazy s t umaczone jeden do jednego, np. polecenie rysowania linii na takie samo polecenie w pliku wynikowym. Problemy pojawiaj si , gdy dwa formaty nie maj odpowiadaj cych sobie rozkaz w. Je li format oryginalny ma polecenie rysowania elipsy, a w formacie docelowym ono nie wyst puje, to trzeba zastosowa jedn z dost pnych metod translacji. Mo na przybli y elips okr giem lub aman z o on z kr tkich odcink w. Je li format przeznaczenia ma mo liwo oddzielnego skalowania osi x i y, to dobr metod mo e by ustalenie na nich r nych jednostek i narysowanie okr gu, kt ry zostanie przeskalowany w elips .

1.3.    Format wektorowy na map bitow

Przetwarzanie obrazu z postaci wektorowej do mapy bitowej zwane jest rastryzacj . Polega ono na znalezieniu zbioru pikseli odpowiadaj cego ka demu wektorowi obrazu oryginalnego. Podstawowy algorytm rastryzacji jest znany od 1963 roku, kiedy to zosta opublikowany przez Bresenhama; okr gi i  uki mog by rysowane przy u yciu tej samej metody.

Ten rodzaj konwersji dotyczy takich samych zagadnie jak rysowanie obrazu wektorowego na ekranie rastrowym czy drukarce laserowej, wi c cz sto daje si przystosowa kod wy wietlania do konwersji na map bitow .

1.4.    Mapa bitowa do formatu wektorowego

Konwersja mapy bitowej na posta wektorow jest daleko bardziej z o ona ni dowolne z poprzednich przekszta ce . Obecnie istniej zadowalaj ce algorytmy wykrywania kraw dzi (ang. edge detection). Mog one pos u y do znalezienia linii w mapie bitowej, ale tylko w najprostszych przypadkach. Problem znajdowania linii w zeskanowanym obrazie (np. w dokumencie przes anym faksem) pozostaje nierozwi zany.

2.    Programy konwertuj ce

2.1.    Zamiana PostScript u na inne standardy

Najbardziej znanym programem do interpretacji PostScript u jest GhostScript. Przez wywo anie GS z opcj -help mo na uzyska informacj o dost pnych urz dzeniach. W GhostScript mo liwa jest emulacja nast puj cych system w: epson, epsonc, necp6, laserjet, ljetplus, ejet2p, ljet3, paintjet, bj10e, djet500, djet500c, pjetxl,lbp8 (s to nazwy u ywane w programie). Mo liwe jest tak e dodanie do programu nowych sterownik w [8].

2.2.    Zmiana innych standard w na PostScript

W przypadku tekstu ASCII zmiana standardu na PostScript nie jest skomplikowana. Istnieje kilka og lnodost pnych narz dzi s u cych do tego celu. Najprostszym z nich jest program o nazwie a2ps.

W przypadku tekst w innych od ASCII (ISO 8859-1 lub PC 437), lub szczeg lnych sekwencji kontrolnych drukarki (ang. printer specific control sequences), konwersja mo e by skomplikowana. Do zmiany HP PCL na PostScript s u y narz dzie lj2ps, kt re jest bardzo pomocne w przypadku czcionek nieproporcjonalnych (jak dla HP LaserJet II). Problem komplikuje si jednak przy konwersji grafiki. Istnieje r wnie konwerter dla HPGL (hpgl2ps), ale jest on rzadko spotykany. Do zmiany Epson a na PostScript s u y filtr epson2ps [8].


Aplikacja EmuLator

Program EmuLator jest przeznaczony dla rodowiska Windows od wersji 3.1. O wyborze tego systemu zadecydowa o g wnie prostota w jego u yciu i komunikacji z u ytkownikiem za po rednictwem bogatego interfejsu graficznego. atwo obs ugi programu jest mo liwa dzi ki z o ono ci programowania przy pomocy funkcji API (ang. Application Programming Interface) - zestawu funkcji, z kt rych programi ci musz korzysta , pisz c aplikacje dla Windows. Windows API zawiera ponad 600 funkcji. Pomijaj c wspomniane niedogodno ci, nale y powiedzie o korzy ciach, wynikaj cych z programowania dla Windows [13]:

               System Windows zapewnia niezale no od sprz tu. Ten sam program mo e wy wietla informacje na r nych monitorach (EGA, VGA itd.) i drukowa na r nych drukarkach, od mozaikowych do laserowych.

               Z punktu widzenia programisty, Windows oferuje wiele gotowych element w interfejsu u ytkownika, jak np. przyciski ekranowe, menu, okienka dialogowe, listy i okienka edycyjne.

               Windows zawiera obszerny interfejs urz dze graficznych GDI (ang. Graphics Device Interface), s u cy do wy wietlania tekstu i grafiki. W szczeg lno ci, interfejs ten pozwala rysowa we w asnym uk adzie wsp rz dnych.

J zykiem programowania zosta wybrany C++ w wersji dla najnowszego w chwili tworzenia programu, kompilatora Borlanda 4.52 [4]. To narz dzie pozwala na obiektowe podej cie do projektowanej aplikacji [2] oraz umo liwia wykorzystanie bibliotek klas OWL i CLASSLIB [1].

Zasadniczym przeznaczeniem biblioteki klas OWL (ang. Object Windows Library) jest dostarczenie programi cie kompletnego szkieletu aplikacji dla Windows. Wykorzystana zosta a wersja 2.5 OWL Borlanda, kt ra pozwoli a na szybkie stworzenie interfejsu u ytkownika z atrakcyjnymi, graficznymi elementami steruj cymi.

Biblioteka kontenerowa Borlanda CLASSLIB dostarczy a wyj ciowych obiekt w do przechowywania oraz przetwarzania danych.

1.    Opis programu

Program ma za zadanie rozwi zanie problemu interpretacji obrazu graficznego zawartego w pliku wydruku na ekranie komputera. Du a liczba j zyk w sterowania drukarkami i ploterami oraz rozmaite formy ich zapisu sk aniaj programist do interpretacji wybranego j zyka drukarki. Takie podej cie mo na zaobserwowa np. w programie GhostScript interpretuj cym j zyk PostScript. Praca ta polega na napisaniu programu kt ry b dzie interpretowa r ne j zyki sterowania.

Przyj to za o enie, e plik wydruku zawiera r ne rozkazy powoduj ce akcje graficzne typu: wypisanie tekstu lub narysowanie grafiki oraz sekwencje zmieniaj ce parametry drukarki. Wyniki mo na zobaczy na wydrukowanej kartce, a wi c mo na je tak e przedstawi na ekranie komputera. Poszczeg lne j zyki sterowania powoduj to samo dzia anie przy pomocy r nych kombinacji kod w. W celu zasymulowania pracy drukarki lub plotera, program zawiera zbi r podstawowych operacji wykonywanych przez te urz dzenia, oraz umo liwia wykonanie tych operacji.

Istotnym problemem by o wykorzystanie przez program dowolnego j zyka drukarki w spos b przyst pny dla u ytkownika, a jednocze nie pozwalaj cy w ka dej chwili na dodawanie nowych j zyk w sterowania. EmuLator otwiera sterownik drukarki, kt ry jest plikiem tekstowym w ustalonym formacie, sprawdzaj c r wnocze nie czy nie zawiera on b d w w zapisie. Plik ten zawiera tak e ustawienia pocz tkowe dla danej drukarki lub plotera. U ytkownik mo e sam stworzy sterownik dla ka dej drukarki, korzystaj c z zawartych w programie operacji, bez potrzeby rekompilacji programu. Je eli dana drukarka u ywa specyficznych dla siebie mechanizm w, nie uj tych w omawianym programie, sprawny programista potrafi szybko rozbudowa program o nowe funkcje.

W aplikacji wykorzystane s mechanizmy MDI (ang. Multiple Document Interface), kt re pozwalaj na przegl danie kilku dokument w jednocze nie. Program pozwala interpretowa wydruki tylko dla jednego rodzaju drukarki w danym momencie.

Efekt ko cowy mo na ogl da na ekranie w skali 1:1 (przy uwzgl dnieniu niedok adno ci ekranu monitora), w podgl dzie wydruku ca ej strony, lub wydrukowa na dowolnej drukarce. Wykorzystuj c niezale no sprz tow kontekstu urz dzenia GDI, program pozwala na dokonanie konwersji znanego mu formatu drukarki lub plotera na format dowolnego urz dzenia dost pnego w systemie Windows.

1.1.    Budowa

Aplikacja powsta a w oparciu o architektur MVC (ang. Model-View-Controller), powszechnie wykorzystywan w j zyku Smalltalk-80 z uwzgl dnieniem specyficznych mo liwo ci biblioteki OWL 2.5. Architektura MVC dzieli aplikacj na trzy warstwy:

1.    Model oznacza warstw aplikacji, w kt rej umieszczone s wszystkie obiekty, zale ne od tej aplikacji. W EmuLatorze s to wszystkie obiekty reprezentuj ce warstw danych oraz operacje na nich wykonywane. W szczeg lno ci, mo e by to programowalny s ownik, umo liwiaj cy t umaczenie kod w pliku wydruku na operacje graficzne, oraz klasa przetwarzaj ca dane pliku wydruku na obraz graficzny, wykorzystany w warstwie prezentacji.

2.    View jest tzw. warstw prezentacyjn , kt ra odpowiada za prezentacj danych. Warstwa prezentacyjna odczytuje odpowiednie informacje z warstwy aplikacji i wy wietla je na ekranie. Warstwa ta zajmuje si r wnie oknami graficznego interfejsu u ytkownika.

3.    Controller jest tzw. warstw steruj c , po rednicz c w przekazywaniu informacji od urz dze wej ciowych (klawiatura, myszka) do pozosta ych dw ch warstw.

Model ten w trakcie realizacji ulega nieznacznym modyfikacjom, oraz by podporz dkowany nowym technikom znajduj cym si w OWL 2.5, jak np. Document/View, w zale no ci od rozwi zywanego problemu.

1.1.1.    Warstwa steruj ca

1.1.1.1.    G wna klasa aplikacji

class emuApp: public TApplication - najwa niejsza klasa aplikacji, kt rej implementacja znajduje si w plikach emuapp.cpp i emuapp.h, tam te zdefiniowano pomocnicz klas TFileDrop, zajmuj c si obs ug wczytywanych dokument w metod przenie -upu (ang. drag and drop). Klasa emuApp jest baz dla wszystkich obiekt w aplikacji. W funkcji InitMainWindow tworzone s obiekty klas emuMDIFrame, emuMDIClient, adowane z zasob w elementy graficzne programu (takie jak ikony i menu), wstawiane w ramk emuMDIFrame linia statusu (TStatusBar) i pasek narz dzi (TControlBar), ustawiane atrybuty g wnego okna oraz uaktywniane s przestrzenne elementy dialogu funkcj EnableCtl3d(true). Opr cz obs ugi standardowych komunikat w Windows klasa emuApp jest odpowiedzialna za nast puj ce zadania dla omawianej aplikacji:

               obs uga systemu pomocy - wczytanie pliku pomocy w trybie zwyk ym lub kontekstowym;

               tworzenie nowego dokumentu i widoku - podczas otwierania nowego dokumentu i tworzenia widoku, u ytkownik informowany jest je li plik sterownika nie jest wczytany; przy wczytywaniu nowego pliku sterownika zamykane s wszystkie okna;

               przekazanie komunikat w steruj cych dla widoku dokumentu pliku wydruku (emuView) - klasa emuApp przekazuje widokowi aktualnego emuView danie przej cia do nast pnej lub poprzedniej strony informuj c w pasku narz dzi o jej bie cym numerze;

               uaktualnianie informacji w linii statusu - klasa emuApp informuje o aktualnie wczytanym sterowniku drukarki lub jego braku, a w trakcie wyboru komendy z paska narz dzi lub menu wy wietlana jest podpowied .

Rys. F Hierarchia g wnych klas aplikacji

1.1.1.2.    Klasy steruj ce aplikacji MDI

class emuMDIFrame: public TDecoratedMDIFrame (emmdifrm.cpp, emmdifrm.h) - zawiera widoczne elementy steruj ce oraz obs uguje wszystkie komunikaty steruj ce przeznaczone dla okien potomnych emuMDIChild kieruj c je do emuMDIClient.

class emuMDIClient: public TMDIClient (mmdiclnt.cpp, mmdiclnt.h) - odpowiada za zarz dzanie obiektami okien emuMDIChild w odpowiedzi na dania z menu Okno.

class emuMDIChild: public TMDIChild (mmdichld.cpp, mmdichld.h) - definiuje podstawowe zachowanie okna interfejsu MDI, zawieraj c w sobie wska nik do obiektu TWindow, b d cego widocznym elementem widoku dokumentu.

1.1.1.3.    Klasa steruj ca dokument w

class emuDocManager: public TDocManager (emdcmngr.cpp, emdcmngr.h) - obiekt zarz dzaj cy list bie cych, zarejestrowanych szablon w. Makro DEFINE_DOC_TEMPLATE_CLASS tworzy szablon wi cy obiekty dokument w z widokami, na podstawie kt rego TDocManager obs uguje standardowe komendy menu Plik, przekazuj c je odpowiednim dokumentom. Jest r wnie odpowiedzialny za wy wietlenie element w interfejsu u ytkownika do wyboru pliku i widoku.

1.1.2.    Warstwa prezentacji

1.1.2.1.    Klasa prezentacji danych sterownika drukarki

class emuTlumacz: public TView (emutlmcz.cpp, emutlmcz.h) - obiekt po rednicz cy w dost pie do danych zawartych w dokumencie. emuTlumacz pozwala na uzyskanie wska nika do klasy s ownika (emuSlownik) tworzonego w obiekcie dokumentu sterownika drukarki (emuSterDoc). Jako jedyny widok w aplikacji, emuTlumacz nie posiada skojarzonego ze sob okienka i jest specjalnie obs ugiwany w obiekcie g wnym aplikacji. Dla ka dego obiektu dokumentu pliku wydruku (emuDocument), emuApp ustawia wska nik do emuTlumacz (w danym momencie mo e istnie tylko jeden obiekt emuTlumacz).

1.1.2.2.    Klasy prezentacji danych plik w wydruk w

class emuView: public TWindowView (emuview.cpp, emuview.h) - obiekt widoku dokumentu pliku wydruku dziedzicz cy w asno ci dw ch klas OWL. Jako potomek TView obs uguje dost p do danych emuDocument. Dziedzicz c z TWindow jest graficzn reprezentacj dokumentu w postaci widocznego okna, kt rego wska nik jest przekazywany obiektowi emuMDIChild. W odpowiedzi na dania wy wietlenia kolejnej strony, emuView przekazuje obiektowi emuDocument kontekst wy wietlania do narysowania obrazu strony wydruku. Aby ka da reakcja widoku na komunikat WM_PAINT nie powodowa a uruchamiania ca ego mechanizmu t umaczenia, interpretacji i tworzenia rysunku z pliku wydruku, u ywany jest kontekst metapliku, pami tany w postaci obiektu klasy TMetaFilePict.

class APXPrintOut: public TPrintout (apxprint.cpp, apxprint.h) - reprezentuje fizyczny dokument wysy any do drukarki. Obiekt tej klasy jest odpowiedzialny za wyrysowanie strony na drukarce fizycznej lub w oknie podgl du wydruku.

class PreviewWindow: public TDecoratedFrame (apxprev.cpp, apxprev.h) - tworzy ramk podgl du wydruku oraz obs uguje wy wietlanie jednej lub dw ch stron jednocze nie w obiekcie TLayoutWindow. Jest r wnie odpowiedzialny za wydruk na fizycznej drukarce w wyniku wyboru komendy Drukuj aplikacji.

1.1.2.3.    Inne klasy

class emuEditView : public TEditView (emuedtvw.cpp, emuedtvw.h) - klasa widoku skojarzona z dowolnym typem pliku (bezpo rednio TFileDocument); pozwala na podstawowe operacje edycji, wydruku tekstu i wyszukiwania.

class TBmpViewWindow (emuabout.cpp, emuabout.h) - s u y do przedstawienia pocz tkowej winiety programu w postaci bitmapy.

class emuAboutDlg: public TDialog (emabtdlg.cpp, emabtdlg.h) - korzystaj c z pomocniczej klasy ProjectRCVersion, podaj cej informacje projektu, wy wietla okienko dialogu o programie.

1.1.3.    Warstwa aplikacji

1.1.3.1.    Klasy dokumentu sterownika drukarki

class emuSterDoc: public TFileDocument (emustrdc.cpp, emustrdc.h) - reprezentuje obiekt danych dokumentu i podaje spos b ich interpretacji widokowi. Zawiera szereg metod do obs ugi fizycznego pliku na dysku, cznie z obs ug strumieni. Ka dy dokument mo e by skojarzony z kilkoma widokami, dlatego wspomaga komunikacj z nimi, tworz c list bie cych widok w i przesy aj c do nich komunikaty o wszelkich zmianach. Dokumenty i widoki posiadaj list w asno ci (Property), na podstawie kt rych aplikacja decyduje o sposobie przetwarzania danych. emuSterDoc, w r d swoich w asno ci, posiada wska niki do stworzonych przez niego obiekt w emuSlownikemuDrukarka w momencie otwierania dokumentu sterownika drukarki.

class emuSlownik: public ContainerType (emuslwnk.cpp, emuslwnk.h) - obiekt ten wywodzi si od kontenerowej klasy s ownika tworzonej makrem typedef TDictionaryAsHashTable<AssociationType> ContainerType; jest zbiorem asocjacji, wraz z metodami ich dodawania i wyszukiwania. Asocjacja (typedef TIIAssociation<emuMyClass, GraphicalObject> AssociationType;) stanowi par wska nik w do obiekt w emuMyClassGraphicalObject. Obiekt klasy emuDocument, znajduj c kod steruj cy, wykonuje operacj graficzn , wywiedzion z GraphicalObject. W trakcie tworzenia s ownika przez emuSterDoc, tworzone s dynamicznie i dodawane tylko te obiekty graficzne, kt re s potrzebne do interpretacji danego urz dzenia.

class emuMyClass (emumycla.cpp, emumycla.h) - pojedynczy kod drukarki lub plotera, wraz z operatorem por wnania pozwalaj cym na znalezienie go.

class GraphicalObject (emugrobj.cpp, emugrobj.h) - bazowa klasa dla operacji graficznych na kontek cie urz dzenia, z kt rej s wirtualnie wywiedzione obiekty odpowiadaj ce poszczeg lnym kodom steruj cym. Obiekt tej klasy nie wykonuje adnej operacji, lecz w celach diagnostycznych wypisuje nazw operacji do wykonania.

class GraphObjHPGL: public virtual GraphicalObject (emughpgl.cpp, emughpgl.h) - bazowa klasa dla operacji graficznych specyficznych dla ploter w. Z niej wywodz si klasy konkretnych operacji graficznych class HPGL_0xXXXX: public virtual GraphObjHPGL, gdzie 0xXXXX stanowi unikalny numer wewn trzny aplikacji dla danej operacji.

class GraphObjPCL: public virtual GraphicalObject (emugopcl.cpp, emugopcl.h) - bazowa klasa dla operacji graficznych specyficznych dla drukarek atramentowych i laserowych. Z niej wywodz si klasy konkretnych operacji graficznych class PCL_0xXXXX: public virtual GraphObjPCL, gdzie 0xXXXX stanowi unikalny numer wewn trzny aplikacji dla danej operacji.

class GraphObjIBMPro: public virtual GraphicalObject (plik emugopro.cpp, emugopro.h) - bazowa klasa dla operacji graficznych specyficznych dla drukarek ig owych. Z niej wywodz si klasy konkretnych operacji graficznych class IBMPro_0xXXXX: public virtual GraphObjIBMPro, gdzie 0xXXXX stanowi unikalny numer wewn trzny aplikacji dla danej operacji.

class emuDrukarka (emudrkrk.cpp, emudrkrk.h) - klasa zawieraj ca ustawienia pocz tkowe emulowanego urz dzenia, wykorzystana r wnie w momencie tworzenia obrazu graficznego.

1.1.3.2.    Klasy dokumentu pliku wydruku

class emuDocument: public TFileDocument (emudcmnt.cpp, emudcmnt.h) - obs uguje operacje zwi zane z fizycznym plikiem wydruku. Na danie emuView analizuje plik, szukaj c kod w steruj cych w emuSlownik i wykonuj c operacje graficzne wirtualn funkcj Draw() obiektu wywodz cego si od GraphicalObject.

class emuStrona (emustron.cpp, emustron.h) - klasa wspomagaj ca tworzenie rysunku konkretnej strony. emuDocument wykorzystuje zbi r stron (typedef TIArrayAsVector<emuStrona> emuStronki;) do pami tania pozycji strumienia pliku wydruku i ustawie drukarki (emuDrukarka) dla ka dej ze stron.

1.2.    Rozbudowa

Program stanowi doskona y szkielet do rozbudowy o nowe funkcje i modu y. Wykorzystuj c technik OWL Document/View, mo na stworzy inne rodzaje widok w i dokument w dla istniej cych lub nowych obiekt w. R wnie stworzone modu y interpretuj ce pliki wydruku mog zosta atwo rozszerzone. Przy rozbudowie programu pomocne b d komentarze zamieszczone w plikach r d owych oraz klasy pomocnicze, kt re nie zosta y wbudowane w ko cowej wersji programu.

1.2.1.    Dodawanie obiekt w widok w

Aby doda obiekt widoku, wystarczy zdefiniowa now klas wywodz c si od TView, w kt rej wykorzystane b d metody zawarte w obiekcie wybranego dokumentu. Je eli w widoku do prezentacji u yte b d specjalne formy danych, nale y zdefiniowa je w obiekcie dokumentu. Obiekt widoku mo e by powi zany z dokumentem, kt ry posiada kilka innych sposob w prezentacji. Aby program m g je obs u y , nale y zdefiniowa odpowiednie szablony dla emuDocManager, np.:

DEFINE_DOC_TEMPLATE_CLASS(emuSterDoc, TSterListView, DocType7);

DocType7 __dvt7("Podgl d s ownika", "*.emu", 0, "EMU", dtAutoDelete);

gdzie: emuSterDoc jest istniej c klas dokumentu, a TSterListView jest klas widoku sterownika. Widok mo e wyst powa w postaci pokazanego na ekranie okna lub w dowolnej, innej formie interpretacji danych zawartych w dokumencie.

1.2.2.    Dodawanie obiekt w dokument w

Ka dy obiekt dokumentu odpowiada za wczytanie danych i prawid owe podanie ich widokom. Je eli dokument posiada kilka widok w, a jeden z nich pozwala na zmian danych, konieczna jest jeszcze obs uga komunikat w przekazuj cych informacje o tym fakcie inne widoki. Komunikacja mi dzy widokami i dokumentami mo e przebiega przez komunikaty, list w asno ci (Prosperities) lub bezpo rednie odwo ania wska nikami. Wi cej danych o wsp pracy dokument w z widokami mo na znale w dokumentacji kompilatora Borland C++ 4.52.

1.2.3.    Rozbudowa funkcji graficznych

W programie EmuLator, w trakcie interpretacji pliku wydruku wykorzystana jest funkcja:

int emuDocument::Rysuj( TDC& strDC, emuStrona* strona )

gdzie: strDC jest kontekstem urz dzenia, w kt rym ma powsta obraz; strona jest wska nikiem do obiektu zawieraj cego bie ce ustawienia strony oraz kopi ustawie drukarki (emuDrukarka) z poprzednio stworzonej strony, lub (w przypadku pierwszej strony) ustawienia urz dzenia przeczytane przez emuSterDoc. Je eli w strumieniu dokumentu zostanie znaleziony kod steruj cy, obiekt klasy emuSlownik zwraca wska nik do asocjacji, z kt rej jest uzyskiwany wska nik do odpowiedniego obiektu graficznego. Operacja jest wykonywana poprzez wywo anie wirtualnej funkcji obiektu wywodz cego si od GraphicalObject:

if (znalazl)

{

if (obiekt = znalazl->Value())

obiekt -> Draw(strDC, strumyk, strona);

Funkcja void GraphicalObject::Draw( TDC& dc, TInStream* is, emuStrona* str) do wykonania zadania jest wywo ywana z nast puj cymi parametrami:

               TDC& dc - referencja do kontekstu urz dzenia, na kt rym nale y wykona operacj graficzn ;

               TInStream* is - wska nik do strumienia pliku wydruku, z kt rego mog by pobierane dalsze dane do wykonania operacji;

               emuStrona* str - wska nik do obiektu, w kt rym mo na znale bie ce ustawienia emulowanego urz dzenia (emuDrukarka *druka) oraz, w przypadku wyst pienia b du lub ko ca strony nale y ustawi jedn z warto ci zmiennej status:


enum {

Blad=0,

KoniecStrony,

KoniecPliku,

Dalej,

};

Aby rozszerzy program o nowe funkcje graficzne, nale y stworzy obiekt wywodz cy si wirtualnie wprost lub po rednio (np. tak jak obiekty GraphObjHPGL) z klasy GraphicalObject, kt ry wykonuje operacj korzystaj c z wy ej podanych parametr w. Nast pnie nale y wybra unikalny numer wewn trzny aplikacji dla operacji graficznej (z zakresu od 0x0000 do 0xFFFF) i umie ci operacj dodawania obiektu w emuslwnk.cpp:

int

emuSlownik::AddItem(const string& mc, const unsigned long int & mv, const string& mvs)

{

int wynik=0;

switch (mv) {

case 0xXXXX: {

AssociationType assoc( new emuMyClass(mc),

new GraphicalObject(mvs) );

wynik=Add(assoc);

break;

}

Ta funkcja jest wywo ywana przez emuSterDoc, podczas czytania pliku sterownika urz dzenia z nast puj cymi parametrami:

               mc - kod steruj cy emulowanego urz dzenia;

               mv - kod wewn trzny aplikacji dla operacji graficznej;

               mvs - nazwa operacji wykorzystywana w celach diagnostycznych, a pobierana z pliku sterownika.

1.2.4.    Rozszerzenie w asno ci emulowanych urz dze

Je eli do wykonania operacji graficznej potrzebne s parametry, kt rych nie mo na znale w definicji emuDrukarka (plik emudrkrk.h), nale y je doda do tej klasy. Inicjalizacja warto ci nast puje w bool emuSterDoc::GetDrukarka(TInStream* is) gdzie nale y doda procedur czytania parametr w np.:

if (klucz.contains("PAGE SIZE")) // Rozmiar strony

{

wiersz += SkipAll(*is);

long x = GetLong(*is);

wiersz++;

if (!is->good()) goto error;

wiersz += SkipAll(*is);

long y = GetLong(*is);

wiersz++;

if (!is->good()) goto error;

drukarka->SetRStr(x*(metric ? mm_pkt : cal_pkt),

y*(metric ? mm_pkt : cal_pkt));

}

else

klucz jest napotkanym s owem kluczowym w pliku sterownika drukarki wed ug stosowanej konwencji:

!Page Size

Nast pnie, dowolne parametry czytane s ze strumienia tekstowego *is odpowiedni dla nich funkcj . Funkcja SkipAll(*is) omija wszystkie znaki w strumieniu do napotkania znaku ! na pocz tku wiersza. Zmienna wiersz wskazuje numer wiersza w kt rym wyst pi b d. Konstrukcja x*(metric ? mm_pkt : cal_pkt) pozwala ustawi parametry we wcze niej ustalonych jednostkach (obecnie mm lub cal).

1.2.5.    Klasy pomocnicze

Podczas uruchamiania projektu mo na skorzysta z do czonych do r de klas diagnostycznych. Nale y w tym celu w czy do czanie kodu dla debugger a w opcjach projektu, oraz zmieni komentarze w pliku emuapp.cpp, uaktywniaj c szablony tych widok w. S to nast puj ce klasy:

               class TDumpView : public TListBox, public TView (dumpview.cpp, dumpview.h) - pozwala na skojarzenie z dowolnym typem dokumentu, oraz pokazuje dok adnie jego zawarto z kodami szesnastkowymi poszczeg lnych bajt w pliku;

               class TInfoView : public TWindowView (infoview.cpp, infoview.h) - pozwala na zobaczenie listy w asno ci (Prosperities) dowolnego dokumentu;

               class TSterListView : public TListBox, public TView (strlisvw.cpp, strlisvw.h) - widok specjalnie stworzony na potrzeby dokumentu klasy emuSterDoc, pokazuj cy zawarto s ownika zainicjalizowanego plikiem sterownika drukarki.


              Obs uga programu

               Instrukcja u ytkowania

Program EmuLator przed rozpocz ciem u ytkowania wymaga zainstalowania na dysku twardym komputera. Jego pakiet instalacyjny znajduje si na dyskietkach typu HD 3.5". Przebieg instalacji jest typowy dla rodowiska Windows.

Po zainstalowaniu program EmuLator posiada w oknie Mened era Program w swoj grup pod nazw EmuLator drukarki i plotera . Ikon g wnego programu aplikacji jest ikona o nazwie EmuLator .

Rys. G Okno g wne aplikacji

Po uruchomieniu aplikacji na ekranie monitora ukazuje si okno aplikacji o tytule EmuLator (Rys. 7).

 

 

 

 

 

Operacje obs ugi programu ograniczaj si najcz ciej do kilku podstawowych:

Rys. H Okno otw rz

               Otwieranie dokumentu

Otwarcie dokumentu zawieraj cego wydruk drukarki musi by poprzedzone wczytaniem sterownika urz dzenia dla kt rego plik zosta stworzony. Za adowanie sterownika dokonywane jest poprzez wybranie opcji Otw rz z menu Plik lub klikni cie odpowiedniej ikony z paska narz dzi. Po rozwini ciu okna dialogu Otw rz nale y ustawi typ pliku na Sterownik Drukarki z rozszerzeniem *.emu i w polu dialogu Nazwa pliku wpisa nazw sterownika odpowiadaj cego danej drukarce. Nazwa urz dzenia dla kt rego zosta wczytany sterownik uka e si w linii statusu w dolnej cz ci okna (Rys. 9).

W przypadku b dnie zapisanego kodu rozkazu w sterowniku, podczas pr by wczytywania go program wy wietli informacj z numerem linii z b dnie wpisanym kodem.

Rys. I Linia statusu z wczytanym sterownikiem.

 

Program jest przygotowany do otwierania pliku wydruku. Post powanie jest zbli one do powy szego, z t r nica, e jako typ otwieranego pliku nale y wybra Pliki Wydruku z rozszerzeniem *.prn. Przy pr bie ponownego otwarcia wczytanego ju dokumentu program poinformuje o tym u ytkownika i nie pozwoli mu na t operacj . Mo liwe jest natomiast dodanie innych widok w tego samego dokumentu; opcja Dodaj Widok z menu Okno. Zawarto pliku wydruku zostanie pokazana w oknie MDI o tytule otwartego dokumentu. Ukazanie nast pnej (poprzedniej) strony dokumentu (je eli istnieje) nast puje po wybraniu opcji Strona w menu Edycja lub przycisk w strza ek w pasku narz dzi (Rys. 10).

Rys. J Przegl danie stron dokumentu

               Zamykanie dokumentu

Aby zamkn otwarty dokument nale y wybra opcj Zamknij w menu Plik. W chwili zmiany urz dzenia, dla kt rego pokazywany jest dokument wszystkie widoki (dokumenty) zostaj zamkni te automatycznie.

               Podgl d wydruku

Pokazanie dokumentu w takiej postaci, jak b dzie on mia na stronie po wydruku mo na uzyska poprzez wyb r z menu Plik opcji Podgl d Wydruku lub odpowiedniej ikony z paska narz dzi. Nowy obraz okna dokumentu pokazuje jedn lub dwie strony pliku wydruku. Przegl d nast pnych (poprzednich) stron nast puje po klikni ciu myszk w ikony strza ek na pasku narz dzi (Rys. 11).

               Wydruk dokumentu

Po przejrzeniu dokumentu mo na go wydrukowa na urz dzeniu pod czonym do stanowiska. Wydruk nast puje po wybraniu opcji Drukuj z menu Plik lub po klikni ciu myszk w odpowiedni ikon paska narz dzi. Wydruk nast pi w aktualnych ustawieniach drukarki, kt re mo na zmieni opcj Ustawienia Drukarki w menu Plik.

 

Rys. K Podgl d wydruku

               Edycja sterownik w drukarek

Sterowniki drukarek mog by modyfikowane, w celu ewentualnego dopasowania do u ywanego urz dzenia. Musz by one wczytane w oknie dialogu Otw rz przy wybranym typie pliku Wszystkie pliki (*.*). Operacje edycji umo liwiaj opcje menu Edycja, Szukaj, Okno. Sterownik nie mo e by wczytany w trakcie modyfikacji.

Rys. L Edycja plik w tekstowych

               Uzyskanie pomocy

System pomocy dla aplikacji EmuLator mo na wywo a w menu Pomoc. Umo liwia on uzyskanie pomocy na zasadzie szukanego klucza s ownego lub szukanego tematu. Po naci ni ciu kombinacji klawiszy Shift+F1, wska nik myszy zmienia kszta t, pozwalaj c wskaza element steruj cy, na temat kt rego potrzebna jest informacja.

               Opis sterownika

Format pliku sterownika drukarki zosta stworzony dla aplikacji EmuLator przy u yciu prostej konwencji zapisu. W odr nieniu od innych program w, EmuLator wykorzystuje sterowniki, kt re nie s kompilowalnymi programami. Zapisane s one w formacie pliku tekstowego, kt ry nie wymaga innych dodatkowych operacji. Program posiada wbudowan kontrol poprawno ci notacji i w chwili rozpoznania nieprawid owo ci u ytkownik zostanie poinformowany, w kt rej linii ona wyst pi a. Mo liwa do zapisania liczba kod w sterowania drukarki jest w zasadzie nieograniczona, podobnie jak liczba mo liwych ustawie pocz tkowych drukarki lub plotera.

Ka da linia, rozpoczynaj ca si od znak w: ! , # , $ , % ,traktowana jest przez modu czytaj cy kody sterownika jako komentarz. Ka da linia rozpoczynaj ca si od znaku ! jest czytana przez modu inicjalizuj cy ustawienia drukarki, a ka dy wiersz musi rozpoczyna si znakiem komentarza lub zawiera poprawne dane. Od momentu napotkania znaku komentarza program ignoruje kolejne znaki w strumieniu, a do napotkania znaku ko ca linii.

Pierwszy wiersz sterownika jest niezb dny, drugi bez komentarza oznacza nazw urz dzenia emulowanego. Jest podawana w linii statusu programu.

EMU Driver File

$ Plik sterownika plotera:

Ploter HP-GL 2

$ dla programu EmuLator

Opis rozkazu kopiowany jest przez modu obs ugi strumienia jako ca y wiersz.

Poni szy fragment zawiera dane dla jednego kodu steruj cego drukarki.

# Przyk ad sposobu opisu danego kodu plotera:

2 2 bajty kodu do przeczytania

0x2b 0xff kod steruj cy urz dzenia

opis rozkazu opis s owny kodu

0xffff kod programu EmuLator dla operacji (hex od 0x0 do

# 0xffff)

Liczby mo na podawa dowolnie wg konwencji j zyka C:

22 - DEC

0x22 - HEX

022 - OCT

oddzielone spacj , np. 0x56 0x53

Rozkazy podzielone s na grupy. Podzia wprowadzony jest tylko ze wzgl du na zwi kszenie przejrzysto ci zapisu sterownika.

######################################################################

# KODY ROZKAZ W J ZYKA HP-GL2 #

# GRUPA ROZKAZ W "0A" #

######################################################################

W kolejnych wierszach pliku sterownika nast puje ju w a ciwy opis kodu rozkazu. Pierwszy parametr oznacza ilo bajt w kodu sterownika do przeczytania. Nast pny wiersz zawiera w a ciwe kody steruj ce urz dzenia. Po wierszu opisu, znajduje si unikalny numer operacji graficznej aplikacji EmuLator. W poni szym przypadku jest to jednobajtowy kod 0D oznaczaj cy powr t karetki, znajduj cy si w grupie 0A, a oznaczony numerem 11.

1

0x0D

powr t karetki

0x0A11

Opis jednego kodu steruj cego drukarki musi by oddzielony od kolejnego znakiem komentarza, np.:


1

0x0A

przesuw o wiersz LF

0x0A01

#

2

0x56 0x53

wyb r pr dkosci rysowania

0x131B

Lista wszystkich dost pnych operacji graficznych, wraz z odpowiadaj cymi numerami, znajduje si w katalogu sterownik w drukarki, w pliku emu_nrop.txt.

Po opisie wszystkich niezb dnych kod w steruj cych drukarki lub plotera, nast puje opis ustawie pocz tkowych emulowanego urz dzenia. Pierwsza z pozycji pojedynczego bloku opisuj cego jedno z ustawie jest s owem kluczowym, kolejne s jego warto ciami.

#!!!!!!!!!!!!!!!!!!!! USTAWIENIA POCZ TKOWE DRUKARKI !!!!!!!!!!!!!!!!

# Pierwszy wiersz rodzaj ustawien, drugi wartosc

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

# Rodzaj urzadzenia

!Device

#!0 # nieznany typ

#!1 # drukarka iglowa

#!2 # drukarka atramentowa

#!3 # drukarka laserowa

!10 # ploter

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

# Stosowana dalej jednostka

# mm

# cal inch

!Unit

!mm

#

Wiersze, kt re nie s zaznaczone jako komentarz inicjalizuj warto ci jako domy lne. S one zmieniane w momencie wyst pienia w pliku wydruku kodu steruj cego, modyfikuj cego dan warto .



Podsumowanie

Aplikacja EmuLator stworzona zosta a z my l o uniwersalnym rozwi zaniu problemu interpretacji plik w wydruku. Znajduje si ona w wersji instalacyjnej na dyskietkach do czonych do cz ci opisowej pracy. Program zawiera zestaw podstawowych funkcji graficznych, pozwalaj cych na interpretacj plik w wydruku drukarki ig owej IBM ProPrinter oraz plotera j zyka HPGL.

Plik wydruku mo e zawiera proste dane tekstowe oraz obraz graficzny. Program dokonuje analizy pliku wydruku, a po odnalezieniu kodu steruj cego, wywo uje odpowiadaj c mu funkcj graficzn , przedstawiaj c efekt dzia ania na monitorze komputera. Przeszukiwanie pliku pod k tem wyst powania kod w steruj cych polega na por wnywaniu znak w pobranych ze strumienia pliku wydruku ze znanymi kodami zapisanymi w pliku tekstowym sterownika. Po rozpoznaniu kodu steruj cego, nast pne bajty danych s traktowane, jako argumenty wywo ania operacji graficznej. Nierozpoznana sekwencja znak w traktowana jest, jako prosty tekst ASCII pokazywany na ekranie. W ten spos b prezentowane s tak e pliki zapisane w formacie tekstowym.

Program mo e zosta w prosty spos b przystosowany do emulacji innych rodzaj w urz dze , poprzez edycj tekstowych plik w sterownik w drukarek w zakresie wbudowanych funkcji graficznych. Istnieje mo liwo szybkiego stworzenia nast pnych obiekt w wykonuj cych inne funkcje drukarki lub plotera. Wi e si to jednak z ca kowit rekompilacj programu.

W opisywanej postaci program mo e by przystosowany do czytania dowolnego, nieznanego formatu plik w wydruku, jak r wnie innych plik w zawieraj cych dowolne dane mo liwe do pokazania na ekranie monitora (np. graficzne wektorowe i bitmapowe, edytor w tekst w, itp.).

Trzeba przyzna , e uniwersalno stworzonego programu nie wp yn a pozytywnie na szybko analizy. Kody steruj ce wyszukiwane s , pocz wszy od najd u szego s owa znajduj cego si w s owniku. Metoda ta pozwala ujednolici obs ug r nych format w sterowania, tzn. mo na czyta zar wno j zyki sterowania w formacie tekstowym (np. PostScript), jak r wnie sekwencje steruj ce rozpoczynaj ce si od znaku ESC (np. PCL i ESC/P). Jednak, przy plikach zawieraj cych w wi kszo ci znaki ASCII, szybko analizy zmniejsza si , wraz ze wzrostem d ugo ci s owa steruj cego. Mo liwa jest modyfikacja programu przez zast pienie kontenerowej klasy Borlanda (z kt rej wywiedziony jest emuSlownik) szybsz struktur danych z efektywniejsz metod wyszukiwania. Innym rozwi zaniem jest stosowanie r nych metod analizy pliku dla ka dego formatu. Powoduje to jednak konieczno pisania przez programist osobnego modu u dla ka dego z nich, podobnie jak w tradycyjnych kompilowanych sterownikach i filtrach importu.

Mo liwe jest udoskonalenie programu, przez wzbogacenie go o mechanizmy wymiany danych przy pomocy Schowka, lub nawet OLE 2. Przez dopisanie odpowiednich funkcji do klas wywiedzionych z GraphicalObject, mo liwa mog aby by nawet kontrola i poprawa poszczeg lnych obiekt w, np. skalowanie dla bitmap, dowolne transformacje dla rysunk w wektorowych, lub zmiana rodzaju czy wielko ci czcionki.

EmuLator pozwala na wydruk ogl danych plik w, po uprzednim ich zinterpretowaniu. Wydruk danych mo liwy jest na dowolnej drukarce, dost pnej w  rodowisku Windows. Ze wzgl du na niezale no sprz tow kontekstu urz dzenia GDI, program umo liwia dokonanie niejawnej konwersji dowolnego znanego mu formatu, w spos b pozwalaj cy mu przes a wyniki do dowolnego urz dzenia dost pnego w systemie Windows.

Bior c pod uwag powy sze rozwa ania oraz spostrze enia wynikaj ce ze sposobu konstrukcji i dzia ania aplikacji EmuLator, konstruktorzy uwa aj , e cel oraz za o enia tej pracy zosta y w pe ni zrealizowane.


Literatura

     [1]      Barkakati N.: Grafika i animacja w Windows. Warszawa, Intersoftland 1994, (t um. z ang.).

     [2]      Barteczko K.: Programowanie obiektowe; Praktyczne wprowadzenie do programowania obiektowego w j zyku C++. Warszawa, LUPUS 1993

     [3]      Dro d ewicz P.: Programowanie dla Windows w j zyku C. Warszawa, Lynx‑SFT 1994.

     [4]      Faison T.: Borland C++ 4.5 programowanie obiektowe. Warszawa, Oficyna Wydawnicza READ ME 1996, (t um. z ang.).

     [5]      Klein M.: Przewodnik po bibliotekach DLL i sposobach zarz dzania pami ci . Warszawa, Intersoftland 1994, (t um. z ang.).

     [6]      Levine J.: Programowanie plik w graficznych w C/C++. Warszawa, Translator 1994, (t um. z ang.).

     [7]      Marciniak A.: J zyk PCL. Pozna , NAKOM 1992.

     [8]      McCoy B.C.: Summary - printers FAQ Home Page. Usenet, comp.periphs.printers Frequently Asked Question (FAQ) List, 06.08.1996

     [9]      Osiak S.: PostScript krok po kroku. Warszawa, Agencja Wydawnicza M&M 1991.

[10]      Smith N.E.: Drukarki laserowe. Warszawa, ZNI MIKOM 1995, (t um. z ang.).

[11]      Sowi ski R.: Gwiazda plotera. CADmania Nr 5 (11), listopad 1995

[12]      Wac awek R.: Programowa obs uga drukarek laserowych. Warszawa, Komputerowa Oficyna Wydawnicza HELP 1992.

[13]      Wac awek R.: Windows od kuchni. Warszawa, Komputerowa Oficyna Wydawnicza HELP 1993.

[14]      Zalewski A.: Programowanie w j zykach C i C++ z wykorzystaniem pakietu Borland C++. Pozna , NAKOM 1995.

[15]      Drukarka mozaikowa D-100MPC. B onie, Zak ady Mechaniczno-Precyzyjne Mera-B onie 1991.

[16]      Instrukcja obs ugi drukarki LC-20. Warszawa, Intersoftland 1991.

Streszczenie

W omawianej pracy przedstawione zosta y techniczne aspekty dzia ania nowoczesnych drukarek i ploter w oraz sposoby sterowania tych urz dze za pomoc j zyk w sterowania wydrukiem. Opisany program komputerowy powsta w wyniku analizy poszczeg lnych format w j zyk w steruj cych.

Aplikacja EmuLator umo liwia emulacj dzia ania wybranej drukarki i plotera, oraz pozwala na prezentacj graficzn plik w wydruku na ekranie komputera. Do budowy programu wykorzystane zosta o rodowisko graficzne Windows 3.11 oraz pakiet narz dzi programistycznych Borland C++ w wersji 4.52.

W programie EmuLator znajduje si zestaw podstawowych funkcji graficznych, pozwalaj cych na interpretacj plik w wydruku drukarki ig owej IBM ProPrinter oraz plotera j zyka HPGL. W zakresie tych funkcji, ka dy u ytkownik mo e atwo przygotowa aplikacj do analizy plik w wydruku dla innych urz dze poprzez edycj tekstowych plik w sterownik w drukarek.

Dok adna dokumentacja oraz komentarze w plikach r d owych programu pozwalaj na rozbudow programu o nowe funkcje graficzne dla innych urz dze . Obiektowe w asno ci j zyka C++ umo liwiaj wzbogacenie aplikacji o funkcje, kt re nie zosta y przewidziane przez tw rc w.

Program EmuLator, wraz z systemem pomocy, dost pny jest na dyskietkach w wersji instalacyjnej.


Spis tre ci

Wst p...................................................................................... 3

Techniczne aspekty pracy drukarek i ploter w 4

1. Klasyfikacja drukarek............................................................ 4

1.1. Drukarki mozaikowe (drukarki uderzeniowe).................................... 4

1.2. Drukarki Daisywheel i maszyny do pisania........................................ 5

1.3. Drukarki atramentowe....................................................................... 5

1.4. Drukarki laserowe i drukarki LED.................................................... 6

1.5. Drukarki kolorowe............................................................................. 7

1.6. Inne rodzaje drukarek........................................................................ 9

2. Klasyfikacja ploter w.......................................................... 10

2.1. Plotery tablicowe.............................................................................. 10

2.2. Plotery pisakowe (b bnowe)............................................................ 10

2.3. Plotery atramentowe........................................................................ 11

3. J zyki sterowania drukarek i ploter w....................... 12

3.1. Rozszerzone formaty tekstowe.......................................................... 13

3.2. J zyki opisu strony............................................................................ 14

3.3. Inne j zyki sterowania drukarek...................................................... 16

3.4. J zyki sterowania ploter w.............................................................. 18

Systemy t umacz ce................................................... 19

1. Konwersja mi dzy typami plik w...................................... 19

1.1. Mapa bitowa na map bitow .......................................................... 19

1.2. Format wektorowy na wektorowy................................................... 19

1.3. Format wektorowy na map bitow ................................................ 20

1.4. Mapa bitowa do formatu wektorowego........................................... 20

2. Programy konwertuj ce....................................................... 20

2.1. Zamiana PostScript u na inne standardy......................................... 20

2.2. Zmiana innych standard w na PostScript....................................... 20

Aplikacja EmuLator.................................................... 22

1. Opis programu.............................................................................. 22

1.1. Budowa............................................................................................. 23

1.2. Rozbudowa....................................................................................... 30

Podsumowanie................................................................ 35

Literatura........................................................................ 37

Streszczenie.................................................................... 38

Spis tre ci.......................................................................... 39