Hlavne menu We are sorry, but magazine AMMO is suspended. Here is just read-only access to the articles archive. Some features are removed because they were outdated, pointless in read-only (voting and pools), or it was missused by spammers (comments) etc. Now the webpages aren't maintained so when something will get broken most probably it won't be fixed at all. If you liked our magazine then please make donation with paypal so we can pay for traffic on this server.

TOP Výuka
01 Maľované krížovky 103 bodov
02 OpenGL, lákadlo 38 bodov
03 MySQL (+ použitie Visual C++ a PHP) 28 bodov
04 OpenGL, časť 1 21 bodov
05 Huffmanove kódovanie 19 bodov
06 Pascal, časť 1 18 bodov
07 Základy HTML časť 2 16 bodov
08 Základy HTML časť 3 13 bodov
09 Hry pre nenáročných + zdrojáky 10 bodov
10 OpenGL, úvod 8 bodov
11 Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0 7 bodov
12 OpenGL – Intermezzo 1 7 bodov
13 OpenGL povinná literatúra 6 bodov
14 Základy HTML časť 1 6 bodov
15 WinSocket Communication via VC++ 6 bodov
Najnovsie clanky
Kvalitné služby podľa skúseností iných - TopSlužby.sk
LOTR - Dve veže - Parodia - Scénka 2. časť
Neverwinter nights
Children Of Bodom-Hatebreeder
Kult Duny - 6. časť (Bonus)
Kult Duny - 5. časť (Filmy, Hry)
Dobré ráno. (morc certa, hora incerta...)
Kult Duny - 4. časť (Knihy 2/2)
Stretnutie Spoločenstva Tolkiena
GRAVE DIGGER – Knights Of The Cross
Kult Duny - 3. časť (Knihy 1/2)
Kult Duny - 2. časť (Pojmy)
Kult Duny - 1. časť (Úvod)
LOTR - Dve veže - Parodia - Scénka
Jackass
Vsetky clanky
Airsoft - Specnaz [4 clanky]
Básne [6 clankov]
Fantázia [4 clanky]
Filmy a DVD [51 clankov]
Hardware [10 clankov]
Hry [170 clankov]
Hry, návody [6 clankov]
Hudba [8 clankov]
Internet [7 clankov]
Knihy [6 clankov]
O AMME [4 clanky]
Pandemonium [10 clankov]
Poviedky [14 clankov]
Programy [18 clankov]
Rôzne [8 clankov]
Technické [3 clanky]
Úvahy [8 clankov]
Výuka [50 clankov]
Algoritmy v grafoch
Fake2
Faktúrka
Faktúrka v4.0 + zdrojáky v MS Visual C++ 6.0
Fract
HLSaver
Hry pre nenáročných + zdrojáky
Huffmanove kódovanie
IPicture2 & aggresiveoptimize.h
Maľované krížovky
MySQL (+ použitie Visual C++ a PHP)
OpenGL - GLWnd
OpenGL AMMO Saver
OpenGL povinná literatúra
OpenGL – Intermezzo 1
OpenGL, časť 10
OpenGL, časť 11
OpenGL, časť 12
OpenGL, časť 13
OpenGL, časť 14
OpenGL, časť 15
OpenGL, časť 16
OpenGL, časť 17
OpenGL, časť 18
OpenGL, časť 7
OpenGL, časť 8
OpenGL, časť 9
Opengl – Cloth Simulation
RenameR
SkinMagic
WinSocket Communication via VC++
Údajové štruktúry
viac...
Zábava [5 clankov]
Zdravie [15 clankov]
Celkovy pocet clankov: 407
Ako tlačiť s HP 
Výuka | Dna 2.7.2004 | Johny | 17 znamok, priemer 2.52 | 2499 videni | 267 WAP videni


Nie, nerozhodol som sa preložiť manuál od nejakej tlačiarne, len dám dokopy pár schopných stránok, zdrojákov a vlastných skúseností a trochu opíšem ako tlačiť z pohľadu tvorcu nejakého programu, v Delphi, Visual C++ ale najmä priamou tlačou (direct print, nemá nič s DirectX)

HP PLC, HPPLC, PLC HP, direct print, escape sequences, control characters

Prečo práve HP? No HP je popredný výrobca tlačiarní, ktorí na trhu pôsobí už niekoľko rokov,.. atď, viete si určite domyslieť. Avšak moje dôvody boli oveľa prostejšie, mal som doma tlačiareň od HP, takže som nemal prečo špekulovať s inými. K HP, ale existuje celkom slušný manuál ku ovládacím a komunikačným spôsobom s ich tlačiarňami a zariadeniami. Neviem nakoľko to pochádza priamo od HP, ale ľudia už niečo zozbierali.

Tlačiť možno dvoma spôsobmi, a síce využiť už existujúce programové prostriedky a ovládače pre tlačiareň alebo sa rozhodnúť pre tlač priamo, teda posielanie dát byte po byjte do tlačiarne. Oba spôsoby pravdaže s istou mierou abstrakcie. Toto sa netýka ničoho takého, že budeme robiť nejaký komunikačný program medzi tlačiarňou a PC, a vytvárať nebodaj duplicitné ovládače ;o). Pre fanatikov mám ešte poznámky z ČP-čka.

Využitie existujúcich ovládačov sa dá predstaviť napríklad tak, že napíšete skript, ktorý niečo vytlačí napr. vo Worde. Vy nastavíte nejakým medzičlánkom, v tomto prípade zrejme cez Visual Basic vlastnosti Fontu, a o ostatné sa už postará Microsoft a ovládače tlačiarne. Ktoré vám zaručia, že vo vašom kóde netreba urobiť jedinú zmenu a na každej tlačiarni sa vytlačí alebo by sa mal vytlačiť rovnako ;o). To je výhoda ovládačov. Použijú sa proste tie správne.

Druhý spôsob, je posielanie ovládacích príkazov pre tlačiaren priamo. Musíte ich však poznať a pre každú tlačiareň od iného výrobcu a možno aj medzi sebou sa určite líšia. Tu vzniká určite otázka, tak prečo to mám sakra robiť takto, keď je to zložitejšie a ešte aj nepraktickejšie? Pretože inú možnosť niekedy nemáte. Príklad: DOS. Robíte niečo v Pascalíku a chcete tlač. Myslím, že také drivery pod DOS sa už asi sotva vyrábajú, ak sa vôbec niekedy vyrábali. Alebo zohnať vhodný DST súbor do T602 je ťiež rarita. Alebo robíte program, ktorý nebude môcť z nejakého dôvodu využívať existujúci ovládač.

Neviem presne ako to funguje v Linuxoch, ale zrejme ťiež existujú hore uvedené oba spôsoby. Ten druhý určite, ten prvý zrejme ťiež, ale neviem, ktoré vývojové nástroje vám to dovolia využívať. Tipol by som KDevelop a Kylix.

Delphi, C++ Builder
V Delphi sa tlačí asi najjednoduchšie. Stačí použiť unit Printer, a Printer ma atribút Canvas, na ktorý normálne namaľujete to čo chcete vytlačiť, presne tak, ako keď maľujete na iný Canvas. Sú tam trochu obmedzenia, ale nijako závažné to nie je. Príkladom môžu byť napr. zdrojáky z Formyka, ktorý takto tlačí.
Možno sa pri náročnejšej tlači stretnete s tým, že niektoré metódy vám nepostačia, vtedy môžete kľudne použiť niektoré štandardné API z Windowsu. Užitočná môže byť napr. funkcia GetDeviceCaps(), ktorá vám pomôže zistiť veľkosť toho Canvasu, alebo schopnosti tlačiarne.

Visual C++
Tu je zložitejšie, napokon ako hocičo, čo sa vo Visual C++ robí ;o). Najjednoduchšia cesta je podobná ako pri Delphi, a síce kresliť všetko do okna, a potom to okno dať vytlačiť. Všetky funkcie si budú podobné ako v delphi, akurát budete dávať väčši pozor na všeljaké handle, a na vracania GDI objektov. Ukážka môže byť nájdená napr. v Maľovaných Krížovkách 5.

Priama tlač
Kvôli tomuto aj celý tento dokument vlastne píšem. Preto, aby keby niekto narazil na podobný problém, ľahšie našiel potrebné informácie. Môj problém bol takýto: Mal som PSION, čo je vreckový počítač, schopný pripojiť sa na tlačiareň a aj tlačiť. Programové prostredie mi dovoľovalo posielať dáta priamo na tlačiareň. Najprv to síce nechcelo ísť, ale nakoniec sa to podarilo. Od samého štastia, že to vôbec tlačí som sa už ďalej nezaoberal tým, že by som chcel aj ovládať tlačiareň.

Môj problém prišiel vtedy, keď som už mal hotovú tlač 3 formulárov. Štandardné nastavenie tlačiarne mi dovoľovalo tlačiť iba 63 znakov do riadku. Čo sa takto môže zdať dosť, avšak pre potreby lepšej zrozumiteľnosti, a samozrejme aby to aj dobre vyzeralo som to chcel zvýšiť. Každá tlačiareň obsahuje niekoľko výrobcom „naučených“ fontov. Problémom bolo, ako tieto fonty aktivovať. Ako zmeniť parametre tlače? Ako nastaviť veľko papiera, okraje, font, kvalitu.. To všetko výrobca poskytne v ovládači tlačiarne. Avšak chudák PSION, ktorý je čosi ako lepšia kalkulačka s 2MB pamäte by z tých ovládačov veľa nemal.

Tu som začal prezerať web a našiel som pár zaujímavých stránok, ktoré nie sú práve aktuálne, ale napodiv informácie z nich stále fungujú.

Pascal
var lst:text
reset(lst) alebo rewrite(lst)
writeln lst,’Ahoj’

takto nejako by to malo ísť v Pascale, presne si už nepamätám, syntax som zabudol. Takýmto spôsobom zapíšete priamo čokoľvek na tlačiareň.

C/C++
fprintf(stdprn,”kuk”);

takto jednoducho to funguje v C. Ukážku nájdete napr. vo Faktúrke 3.1 pre DOS. Faktúrka 4 funguje kúsok inak.

Ovládacie znaky, alebo ťiež escape sequencie sú prostriedkom, ako povedať tlačiarni, že chcete niečo povedať jej a nie to vytlačiť. Escape sa volajú preto, lebo začínajú escapom, teda znakom s kódom 27. Pomocou escape sekvencíí sa toho dá spraviť veľa. S istou dávkou trpezlivosti by ste určite dokázali to, čo s ovládačom. Avšak až také ľahké to nie je. Na nete je toho len dosť stručne.

To, čo som hľadal ja bolo týchto 9 bajtov:
27 40 115 49 54 46 54 54 72
Stačí, keď ich pošlem pred tlačou a z 63 mám teraz 120 znakov na riadok. Rozdiel je badateľný, pozri obrázky.
Alebo napríklad zapnutie diakritiky je ťiež dobrá finta. V tomto môžu pomôcť súbory dst z T602.

Pri hľadaní vhodného Escape kódu pre vaše potreby je vhodné porovnať všetky stránky a tiež Pascalovský unit. A spolu so všetkými dokumentami by ste mali byť schopný nájsť tú správnu kombináciu. Ten pascalovský unit nie je zlý, avšal v niektorých procedúrach chýbajú parametre. A tie nemožu byť len tak hocijaké. Niektoré z nich sú uvedené v iných dokumentoch. Avšak úplný zoznam som nikde nenašiel. HP uvádza, že v manuáli je to na konci, ale v manuáli, ktorý mal cca 40 som našiel akurát tak, ako si mám tú tlačiareň zapojiť a ako jej dať papier a atrament.

Avšak, všetko je bez záruky, ak si všimnete, tak lepšia aktualizácia ako z roku 1996 sa tam nevyskytuje. Od vtedy už prešlo 8 rokov, čo je v oblasti IT dosť. Avšak tie základné by stále mali fungovať.

Hewlett-Packard Laser and DeskJet Printer Escape Code Sequences.htm
na tejto stránke je celkom slušná kopa escape kódov. Plus tejto stránky je, že obsahuje niektoré dôležité parametre. Napríklad, šírka fontu. Pretože darmo tlačiarni poviete, že chcete šírku fontu povedzme 100 znakov na palec, keďže ona berie ako prípustný parameter len šírky 10,12,16.66.
Nenechajte sa ťiež zmiasť znakmi, ktoré označujú escape kódy. Môžete si vybrať a namiesto ako znaky to posielať ako čísla.

HP Escape (PCL) koder.htm
v podstate skoro zhodná ako predchádzajúca.

PCLHP5 Printer Control Codes.htm
vhodná pre LaserJety

Printer Control Codes HP DeskJet 500.htm
ťiež dobrá stránka, ktorá objasní možno začiatočníkom vzťah medzi escape kódmi v znakovej a číselnej podobe, ak v tom majú chaos.

Pre tlačenie štýlom direct-print platí zásada maximálnej trpezlivosti, pretože nie vždy to výjde na prvý krát. Môže sa vám napríklad stať, tak ako sa stalo mne ;o), že som dosiahol šírku písma na 16.66 znaku na jeden palec, avšak tlačiareň si stále myslela, že počet znakov na riadok má byť 63. Takže som nevytlačil o nič viac ako predtým, akurát to bolo menšie ;o).

Medzi najdôležitejšie slová snáď patria tieto:
printer – tlačiareň
paper – papier
font – font, inými slovami, štýl tlačených písmeniek
pitch – šírka, aj keď v slovníku možno nájdete výšku
width – šírka, napr. strany
height – výška, napr. strany
offset – akýsi odskok, napr. tlačiareň je schopná tlačiť 1cm od ľavého okraju, tak jej offset zľava je 1cm
paper feed – tlačiareň si zoberie papier
eject page – „vypľuje“ papier
underline, italic, bold – štýly písma, tak ako napr. vo Worde
Tých slov je určite viacej,..

Postup pri tvorení nejakého formuláru môže byť takýto:

Vytlačte si testovaciu stranu, na prvý riadok dajte napr. 120 znakov, napr. opakújúce sa znaky 0123456789, tie vám pomôžu ľahšie spočítať, koľko ich tam bude po vytlačení, a do ďaľšich 60-70 riadkov dajte do každého len 1 znak na začiatok. Dajte tlačiarni len 1 papier a skúste vytlačiť vašim programom.

Spočítajte si koľko znakov sa vám na stranu vošlo do riadku a koľko riadkov na stranu.

Vyskúšajte si tento formulár urobiť do nejakého notepadu, alebo do akéhokoľvek text. editoru, používajte neproporcionálny font, to znamená, font v ktorom každý znak zaberá rovnakú veľkosť. To vám uľahčí robotu, a ťiež, ľahšie vytlačíte niečo zarovnané. Použite len toľko znakov, koľko ste napočítali.

Ak už máte formulár hotový, tak to dajte zhodnotiť niekomu kritickému, kto vám povie, či to vyzerá ako jeden veľký humbuch, alebo je to vcelku prijateľné.

Ak to je OK, tak máte vyhraté. Nemusíte sa prehrabávať escape kódmi len si pripraviť veci na tlač.

Ak to nie je OK, a potrebujete iný font, alebo napr. diakritiku, tak je pred vami tá tažšia ceste, lebo budete potrebovať nejeden escape kód. Tu už začnite štuvať zmienené stránky, ktore si môžete stiahnuť tu: http://www.softsklad.host.sk/hp.zip
Takisto ovládače pre T602 pre tlačiarne od HP, najmä tie nové, nájdete tu: http://www.softsklad.host.sk/hp.zip
v hp.zip nájdete:

Hewlett-Packard Laser and DeskJet Printer Escape Code S
HP Escape (PCL) koder.htm
PCLHP5 Printer Control Codes.htm
Printer Control Codes HP DeskJet 500.htm
HP.PAS
DJ128_LQ.DST
DJ128DRF.DST
DJ256_LQ.DST
DJ256DRF.DST
DJ512_LQ.DST
DJ512DRF.DST
DJ600_CS.DST
DJ660CCS.DST

Dúfam, že vám to aspoň trošku pomôže, aj keď možno takéto problémy mám asi len ja ;o). Ak som sa dopustil nejakých nepresnotí, tak mi odpustite.

Čo sa týka tlačenia v prog. jazykoch ako Delphi, Visual C++, tak užitočná stránka môže byť http://www.codeproject.com alebo http://www.codeguru.com , kde sa dá nájsť kopa zdrojákov a aj ukážok, ako vyrátať správnu veľkosť papiera v akejkoľvek mernej jednotke, v centimetroch, logických jednotkách, jednotkách zariadenia, v palcoch a všetkých možných aj nemožných dĺžkach.

Na záver sú tu 2 screenshoty, jeden je formulár s 63 znakmi na riadok, druhý so 120 znakmi na riadok. Ten druhý je nepochybne krajší a aj prehľadneší. Škoda, že som ich nedal vyplnené, tam by bolo lepšie vidno, ako to vyzerá, keď je znakov málo.


Obr�zok - Klikni a zv�?�� sa Obr�zok - Klikni a zv�?�� sa
Najnovsie clanky od tohto redaktora