7. Utilitarul hTools
7.1. Prezentare generala
In programele HAMOR Soft folosim hTools ca program
- de imprimare in mod grafic pe diverse echipamente, chiar si barcod sau QR cod
- ca legatura intre cer si pamant, adica intre Cloud si statie,sau server local (windows sau linux) si statie
- pentru vizualizare situatii, documente, grafica pe statii de lucru
- pentru lansarea unor programe pe statia de lucru.
Avantajele hTools fata de hWTools:
- este scris in tehnologie noua, in Python, ce permite incorporarea unor functii noi si permite afisarile, imprimarile pe echipamente noi
- imprima direct in pdf, nu este prin imprimanta PDFCreator
- poate rula nu numai pe statii Windows, dar si pe statii Linux/Ubuntu
- imprima grafica si in modul scalat
7.1.1. Mod de lucru
hTools acceptă la intrare două tipuri de fişiere:
Ambele categorii de liste enumerate mai sus sunt suportate de subsistemul de listare din programele HAMOR Soft şi astfel, cu toate executabilele existente puteţi tipări pe imprimante Windows și Linux, acest lucru fiind transparent pentru utilizator.
Destinaţia imprimării poate fi o imprimantă care tipăreşte în mod Esc/P, PCL sau o imprimantă Windows. Imprimanta poate fi locală sau de reţea.
hTools poate fi rulat în mod comandă sau în regim de spooler (vezi Moduri de utilizare).
Licenţă, drepturi de utilizare
hTools este un utilitar, care extinde funcţionalităţile programelor HAMOR Soft, prin urmare autorul acordă dreptul de utilizare numai împreună cu pachetele de programe HAMOR Soft, utilizatorul trebuie să fie în posesia unei licenţe de utilizare validă a programului HAMOR Soft, împreună cu care este utilizat hTools.
Începând cu versiunea V6, hTools se poate utiliza numai în posesia licenţei pentru hMENU V2 sau mai mare.
7.1.2. Conținutul pachetului hTools
hTools este furnizat fie ca utilitar inclus în pachetele HAMOR Soft, fie ca upgrade de utilitare HAMOR Soft, împreună cu hMENU V2.
După instalare, mediul HAMOR Soft necesar pentru hTools arată astfel:
INS\UTIL_W_1.00A\EXE - executabile,
\citeste.txt - instrucţiuni pentru instalare şi
implementare,
hMAIL - utilitar pentru transmitere e-mail,
hOP - utilitar pentru tiparire formulare model
"Ordin de Plata Trezorerie" sau
"Foaie de Varsamant",
DOC\hTools - documentaţie electronica,
hTools.htm
PDF - catalog pentru liste pdf,
SPOOL - catalog spooler,
TMP\TMP_CAT\ - pachet upgrade a bazelor de date,
prts.dbf,.dbt - tipuri de imprimante,
hTools.exe - programul executabil al utilitarului,
hToolsS.bat - bat pentru activare hTools în regim
spooler |
În prts.dbf, .dbt furnizăm „tipuri de imprimante“ generice pentru Windows:
WIS-P - listare pe imprimantă Windows pe pagină portret, scalat
WIS-P-A4 - similar pe A4, dar indiferent de lăţimea imprimabilă tipăreşte
80/96/133/160 caractere pe rând.
WIS-L - listare pe imprimantă Windows pe pagină peisaj, scalat
WIS-L-A4 - similar pe A4, dar indiferent de lăţimea imprimabilă tipăreşte
110/132/183/220 caractere pe rând.
WIS-L-L1/1- listarea unei pagini de Listing 1/1 pe imprimantă Windows
pe hârtie A4 peisaj în mod scalat. Indiferent de lăţimea
imprimabilă tipăreşte 136/163/226/272 caractere pe rând.
WIN-P - listare pe imprimantă Windows pe pagină portret, nescalat
WIN-P-78 - similar, dacă imprimanta poate imprima doar 78 caractere/linie
WIN-L - listare pe imprimantă Windows pe pagină peisaj, nescalat |
Observaţii:
-
la tipurile de imprimante WIS se utilizeaza modul de imprimare „scalat“
care înseamnă că, pentru o vizibilitate mai bună, în plan vertical
fonturile sunt „întinse“, păstrând distanţa dintre linii de 6lpi sau 8lpi. -
în plus, la imprimanta WIS-P-A4, pentru ca listele de lăţime standard
să încapă pe orizontală, indiferent de lăţimea imriprimabilă a hârtiei
(de ex. şi pe A4 noWide), lăţimea caracterelor (pasul orizontal) este
ajustată în funcţie de lăţimea imprimabilă a hârtiei. Astfel nu se mai
respectă pasurile standard de 10, 12, 17, 20 cpi, ci se listează 80, 133,
183, 220 caractere. - la tip imprimantă WIS-L-A4 se listează 110, 132, 183, 220 caractere.
- la tip imprimantă WIS-L-L1/1 se listează 136, 163, 226, 272 caractere.
După instalarea pachetului fişierele prts.dbf,.dbt se găsesc în catalogul TMP\TMP_CAT
Descrierile nu conţin numele imprimantei şi vor lista pe imprimanta implicită.
Fiecare tip de imprimantă are cel puţin două fonturi instalate:
- Courier New, font fix (neproporţional) pentru liste, tabele
- Times New Roman, font variabil (proporţional) pentru alte texte.
7.1.3. Implementare
În continuare prezentăm modalităţi de implementare ale utilitarului. Pentru detalii şi pentru situaţii mai complexe studiaţi capitolul 6.3.
Imprimare în regim spooler din programele HAMOR Soft
Pentru imprimare în regim spooler sunt necesare următoarele:
- 1. Existenţa unui catalog spooler, de regula SPOOL
- 2. Fişierul „prn“ direcţionat în acest catalog: SPOOL\hamor.lst
- 3. - Lansarea automată a programului hTools în regim de spooler care de regulă\\este asigurat în hMENU.bat
- 4. În Tipuri de imprimante: imprimante generice actualizate: WIN…, WIS…
- 5. Alegerea, definirea, verificarea imprimantelor:
- 5.1 Stabilirea imprimantelor pe care se va tipări.
5.2 Modul de tipărire pentru fiecare imprimantă:
- DOS: ESC/P, PCL sau
-
Windows: WIN, WIS.
De regulă pe imprimantele care suportă ESC/P sau PCL se poate tipări şi în mod Windows.
5.3 Identificarea imprimantei:
- DOS: port: LPT1:,…, UNC: \\ computer\printer
- WIN, WIS: imprimanta implicită din Windows sau nume imprimantă
-
5.4
În cazul imprimării în mod Windows, setarea corespunzătoare a diverului:
hârtie A4, calitatea imprimării, faţă/dos (duplex), culoare.
Pentru o imprimantă se pot instala mai multe drivere, cu diverse denumiri. Aceste drivere se pot seta în diverse moduri astfel încât să existe un driver pentru fiecare mod de imprimare. 5.5 Definirea unor imprimante fizice:
Tipurile de imprimante furnizate sunt descrieri de imprimante generice. \\Acestea se pot utiliza tipărirea pe imprimate implicite:
- în cazul DOS pentru imprimanta de pe portul LPT1, iar
- în cazul Windows pentru imprimanta implicită (default).
În celelalte cazuri trebuie definită o imprimantă fizică prin copierea descrierilor generice şi trebuie completată cel puţin cu informaţii de identificare a imprimantei. Pentru modul de tipărire portret şi peisaj sunt necesare descrieri distincte.
5.6 Studierea capacităţii imprimantelor:
Lansaţi > hTools /Info:TMP
Programul afişează imprimantele accesibile.
Selectaţi imprimanta pe care veţi tipări.
Programul crează în TMP cinci fişiere de test.
Listaţi cel putin fişierul :
> hTools TMP\NrImprimanta.PF
Verificaţi dacă:
- lista este bine aşezată pe pagină,
- există fontul Courier New,
- pe A4 poate imprima 80 caractere/linie la 10 cpi.
- 5.7 Testarea funcţionării întregului sistem: hUTIL/Utilitare/Test lista…
În cazul în care aţi instalat un pachet nou trebuie executat doar pct.5. Dacă aţi instalat un mediu HAMOR Soft, copiaţi bazele de date în noul mediu şi executaţi upgraderea lor pentru noul mediu. În acest caz verificaţi şi punctele 1-4.
În cap. 6.3 vezi şi:
- Utilizare ca spooler local pentru tipărirea listelor
- Utilizare ca spooler local şi tipărire alternativ pe mai multe imprimante
- Utilizare ca spooler de reţea pentru tipărirea listelor
Imprimare paralelă
Pentru imprimare paralelă sunt necesare următoarele:
- Existenţa unui catalog spooler, de regula SPOOL
- Definirea catalogului spooler „scat“ către acest catalog
- Procedura „gcmd“ PRINTA
- Pentru programele mai vechi: PRINT.BAT
- Lansarea automată a programului hTools în regim de spooler care de regulă este asigurat în hMENU.bat
Vezi şi: Utilizare hTools la imprimare paralelă din cap.6.3.
Lansarea unor programe cu hTools
Pentru executarea unor programe cu hTools sunt necesare următoarele:
- Existenţa unui catalog spooler, de regula SPOOL
- Definirea catalogului spooler „scat“ către acest catalog
-
Definirea catalogului de programe „spro“ în care sunt programele care sunt
lansate prin hTools. Definirea acestui catalog este necesară atunci când
programele nu sunt în rădăcină sau în %path%. - Procedura de generare a comenzii hTools
-
Lansarea automată a programului hTools în regim de spooler care de regulă
este asigurat în hMENU.bat
Observaţie: „scat“ şi „spro“ sunt recunoscute numai de executabilele create începând cu 2009. Pentru programe mai vechi utilizaţi cataloage dedicate.
În cap.6.3 vezi şi:
Utilizare ca spooler local pentru executarea unor acţiuni
- Utilizare ca spooler de reţea pentru executarea unor acţiuni
- Lansare hPRINT în cazul LINUX_TS
- Utilizare în cazul remote desktop
- Folosirea unei case de marcat de la două calculatoare
7.2. Descrierea limbajului de programare hTools
7.2.1. Secvențele Esc specifice hTools
Secvenţele Esc determină modul de tipărire pe imprimantă. Aceste secvenţe trebuie introduse în Tipuri de imprimante, comenzi care la tipărire vor fi inserate în fişierul text creat, în continuare transmis ca parametru utilitarului sau depus în catalogul spooler. La tiparirea efectivă secvenţele vor fi interpretate de către hTools şi se execută comenzile corespunzătoare.
a) Varianta DOS
Esc,D,O,S - identificare mod imprimare Esc,d,...,00 - destinaţie imprimare Esc,p,...,00 - nume imprimantă |
- După aceste secvenţe urmează secvenţele specifice imprimantei (Esc/P, PCL etc.);
- Dacă lipseşte atât secvenţa Esc,d,…,00, cât şi secvenţa Esc,p,…,00
se consideră imprimanta LPT1:; - Dacă secvenţa Esc,d,…,00 este prezentă, trebuie să fie precedată obligatoriu de Esc,D,O,S
- Dacă secvenţa Esc,p,…,00 este prezentă, atunci se vor trimite secvenţele
direct către imprimantă ( chiar dacă este imprimantă Windows ), similar
ca la imprimarea pe portul LPT1. - Dacă există atât secvenţa Esc,p,…,00, cât şi secvenţa Esc,d,…,00,
atunci rezultatul va fi imprevizibil.
Destinaţia imprimării poate fi:
pentru imprimante locale: LPT1:, LPT2:, ... (terminat cu :), sau pentru imprimante de reţea: ''\\''server\printer (adica UNC), sau orice tip de imprimantă care suportă secvenţe specifice (vezi Esc,p,...,00) |
La imprimante de reţea nu trebuie setat Capture Printer Port.
Începând cu hUTIL V 2.05 secvenţele Esc,D,O,S şi Esc,d,… sunt interpretate de hUTIL. Tipul imprimantei (DOS în cazul de faţă) se indică în câmpul impr. şi portul sau numele UNC în câmpul Port/UNC, caracterele Esc şi Esc,d din cele două secvenţe sunt gestionate automat de hUTIL. Aceste câmpuri sunt prezente pe fereastra de editare din Tipuri de imprimante.
b) Varianta WINDOWS
Esc,W,I,N - mod imprimare Windows Nescalat (fără scalare) Esc,W,I,S - mod imprimare Windows cu Scalare pe verticală Esc,p,...,00 - nume imprimantă Esc,r,...,00 - tip hârtie: A4, A3, LETTER, etc. |
Esc,m,T,nnn - margine sus = "nnn" sutimi de inch.
Valoarea implicită este punctul cel mai de sus unde imprimanta poate
tipări. Această valoare diferă de la o imprimantă la alta.
După fiecare secvenţă Esc,p,...,00 aceasta va fi setată automat pe
valoarea implicită a imprimantei alese. Valoarea (dacă este dată)
trebuie dată de la marginea fizică sus a hârtiei.
Pentru compatibilitate cu listele DOS, de obicei pe matriciale trebuie
utilizat 033 iar pe deskjet/laser 020, dar nu este obligatoriu.
Atenţie! De ex. ptr secvenţa Esc,m,T,000 foarte probabil o parte din
partea de sus a textului, graficii sau unei figuri geometrice să fie
invizibil(ă), dacă aceasta se află în extrema sus a hârtiei. |
Esc,m,L,nnn - margine stângă = "nnn" sutimi de inch.
Valoarea implicită este punctul cel mai din stânga unde imprimanta
poate tipări. Această valoare diferă de la o imprimantă la alta.
După fiecare secvenţă Esc,p,...,00 aceasta va fi setată automat pe
valoarea implicită a imprimantei alese. Valoarea (dacă este dată)
trebuie dată de la marginea fizică stânga a hârtiei.
Atenţie! De ex. ptr secvenţa Esc,m,L,000 foarte posibil ca o parte
din partea stângă a textului, graficii sau unei figuri geometrice să
fie invizibil(ă), dacă aceasta se află în extrema stângă a hârtiei. |
Despre margini...
Esc,o,P - orientare: portret (implicit)
L - orientare: peisaj
Esc,t,F - pitch:fix (caractere neproporţionale)
utilizaţi la listare tabele (liste)
V - pitch:variabil (caractere proporţionale)
utilizaţi la documente hMISS care nu conţin tabele
D - pitch:default
Esc,f,...,00 - nume font (implicit:Courier New) |
Esc,h,nnn - densitate pe verticală: nnn zecimi de linii pe inch
De ex: 6 lpi=060, 8lpi=080
Esc,w,nnn - densitate pe orizontală: nnn zecimi de caractere pe inch
De ex: 10 cpi=100, 12 cpi=120, 17 cpi=170, 20 cpi= 200 |
Esc,c,N - culoare:negru (culoarea implicită)
W - alb (White)
B - albastru (Blue)
R - roşu (Red)
G - verde (Green)
Y - galben (Yellow)
M - maro (Maroon)
V - Navy
O - Olive
L - Lime
P - Purple
A - Aqua
F - Fuchsia
0..9 - nuanţe de gri |
Esc,b - aldine început/sfârşit Esc,i - cursiv început/sfârşit Esc,u - subliniere început/sfârşit |
Esc, g, Cnnnn, Lnnnn, FfileName, 00 Esc, g, Wnnnn, Hnnnn, Ffilename, 00 desenare imagine grafică, de tipul .bmp, .jpg sau .jpeg. |
Cnnnn - lăţimea imaginii în zecimi de coloane la cpi curent.
Dacă este absent sau zero şi L este definit, lăţimea imaginii va fi
proporţională cu înălţimea dată.
Se poate folosi şi în combinaţie cu H.
Dacă cpi curent încă nu este definit, se va folosi cpi implicit din
program (de regulă 12cpi).
Ex: C0120 inseamnă că, imaginea se va imprima pe o lătime de 12
caractere la cpi curent.
Lnnnn - înălţimea imaginii în zecimi de linii la lpi curent.
Dacă este absent sau zero şi C este definit, înălţimea imaginii va
fi proportională cu lăţimea dată.
Se poate folosi şi în combinaţie cu W.
Dacă lpi curent încă nu este definit, se va folosi lpi implicit din
program (de regulă 6lpi).
Ex: L0060 inseamnă că imaginea se va imprima pe o înălţime de 6
linii la lpi curent.
Dacă atât C cât şi L sunt absente sau au valoarea zero, secvenţa va
fi ignorată şi nu se va tipări imaginea.
Dacă atât C cât şi L sunt prezente, atunci imaginea se dimensionează
neproporţional, în aşa fel încât să umple dreptunghiul C x L.
Wnnnn - lăţimea imaginii în sutimi de inch.
Dacă este absent sau zero şi înălţimea H este definită, lăţimea
imaginii va fi proporţională cu înălţimea dată.
Se poate folosi şi în combinaţie cu L.
Ex: W0120 înseamnă că imaginea se va imprima pe o lăţime de
1.20 inch.
Hnnnn - înălţimea imaginii în sutimi de inch.
Dacă este absent sau zero si lăţimea W este definită, înălţimea
imaginii va fi proporţională cu lăţimea dată.
Se poate folosi şi în combinaţie cu C.
Ex: H0051 înseamnă că imaginea se va imprima pe o înălţime de
0.51 inch. |
Dacă atât W cât şi H sunt absente sau au valoarea zero, secvenţa va fi ignorată şi nu se va tipări imaginea. Dacă atât W cât şi H sunt prezente, atunci imaginea se dimensionează neproporţional, în asa fel încît să umple dreptunghiul W x H.
F...,00- numele fişierului care conţine imaginea.
Se indică cu cale absolută sau relativă la catalogul curent din care
a fost lansat hTools.
Secvenţa se termină cu 00 sau cu următoarea secvenţă Esc.
Trebuie să fie ultimul parametru, altfel ceilalţi parametri vor fi
ignoraţi. |
De regulă imaginile vor fi în subcatalogul IMG din baza de date. De exemplu, dintr-o aplicaţie hMET, calea absolută la fişierul de imagine se construieşte astfel:
- dacă aplicaţia are catalog img definit:
CHR(27)+„gL0040F“+
h_TruePath(h_AddPath(„logo.bmp“,h_FilePathes[fil_img]))+
CHR(00) - dacă aplicaţia nu are catalog img definit:
CHR(27)+„gL0040F“+
h_TruePath(h_AddPath„IMG\logo.bmp“,h_FilePathes[fil_file]))+
CHR(00)
Colţul stânga sus al imaginii este dat de poziţia caracterului curent.
Dacă fişierul nu există, nu se poate deschide sau nu este un fişier de imagine corespunzător, se ignoră imprimarea imaginii. Parametrii trebuie folosiţi astfel: C împreună L sau H împreună cu W, iar lungimea lor (dacă există) va trebui sa aibă 4 cifre, altfel se citeşte integral secvenţa Esc, dar se ignoră imprimarea imaginii.
Exemple:
Secvenţa: EscgW0124H0000Fc:\poza.bmp00 va produce imprimarea
imaginii c:\poza.bmp, cu lăţimea de 1,24 inch,
înălţimea fiind proporţională cu originalul.
Secvenţa: EscgL0050C0160Fpoza.bmp00 va produce imprimarea
imaginii poza.bmp (care se află în acelaşi catalog cu hTools)
iar imaginea se dimensionează neproporţional, în aşa fel încât
să încapă într-un dreptunghi cu lăţimea de 16 caractere şi
înălţimea de 5 linii.
Secvenţa: EscgW0050H200F:\imagine.bmp00 va produce imprimarea
imaginii F:\imagine.bmp, neproporţional într-un dreptunghi cu
dimensiunile: lăţime=0,5 inch şi înălţime=2 inch. |
Exemple de secvenţe eronate:
Secvenţa: nu va produce
imprimarea imaginii F:\imagine.bmp, pentru că parametrii care
se află după numele fişierului sunt ignoraţi,
în acest caz aceştia având valorile implicite 0.
Atenţie! Textul care se află după caracterul nul de la
sfârşitul fişierului ("W0050H200") va fi imprimat !
EscgL001C0110Fpoza.bmp00 - L este compus din 3 cifre
EscgLa001C0016Fpoza.bmp00 - L este nu este compus din cifre
EscgL0013C0012Fpoza.bmp - lipseşte caracterul nul de la sfârşit
EscgL0001W0012Fpoza.bmp00 - parametri incompatibili,
L=linii şi W=inch
EscgFimagine.bmp - lipseşte atât lăţimea cât şi
înălţimea imaginii
EscL0000C0000Fpoza.bmp00 - atât lăţimea cât şi înălţimea
au valoarea 0
EscgFpoza.bmp00W0050H0020 - dimesiunile nu sunt în poziţia corectă
|
Cum putem măsura dimensiunile unei imagini?
Pe imaginea dată, click dreapta, Properties, click pe tab-ul „Summary“. Aici vom găsi o serie de date despre imagine, cum ar fi:
- Width: lăţimea in pixeli
- Height: înălţimea în pixeli
- Horizontal resolution: rezoluţie pe orizontală
- Vertical resolution: rezoluţie pe verticală
Să calculăm de exemplu înălţimea şi lăţimea unei imagini care are următoarele caracteristici:
- width: 100 pixeli
- height: 200 pixeli
- horizontal resolution: 400 dpi ( pixeli per inch )
- vertical resolution: 400 dpi ( pixeli per inch )
Dat fiind că într-un inch avem 400 pixeli atât pe orizontală cât şi pe verticală, calculul va fi foarte simplu:
lăţimea în pixeli
L = -----------------------, adică: 100 / 400
rezoluţia pe orizontală |
rezultă că lăţimea imaginii este 0.25 inch. Cunoscând raportul mm/inch = 25.4, putem calcula dimensiunea şi în mm:
L = 0,25[inch] * 25.4[mm/inch] |
rezultă că lăţimea imaginii este 6.35 mm. Analog calculăm înălţimea imaginii:
H = 400 / 200 => 0.5 inch, adică H = 0.5 * 25.4 => 12.7 mm |
Bineînţeles, programul hTools poate „întinde“ sau „comprima“ imaginea, atât pe orizontală cât şi pe verticală aşa cum este descris mai sus.
Esc,s,S,nnn - grosimea liniei simple a caracterelor semigrafice în miimi
de inch. Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Valoarea implicită: 001.
De ex: S015 înseamnă că grosimea liniei simple a caracterelor semigrafice
va fi de 0,015 inch. Dacă parametrul nnn este 0, atunci grosimea liniei
simple va fi egală cu 1 pixel, deci întotdeauna există o valoare minimă.
Esc,s,D,nnn - grosimea liniei duble a caracterelor semigrafice în miimi de inch.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Valoarea implicită: 015.
De ex: D030 înseamnă că grosimea liniei duble a caracterelor semigrafice
va fi de 0,030 inch.
Dacă parametrul nnn este 0, atunci grosimea liniei duble va fi egală cu
1 pixel, deci întotdeauna există o valoare minimă.
Esc,s,L,nnn - grosimea liniei figurilor geometrice în miimi de inch.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Valoarea implicită: 001.
Dacă parametrul nnn este 0, atunci grosimea liniei va fi egală cu
1 pixel, deci întotdeauna există o valoare minimă.
Esc,v,C,+nnn - mutarea capului imprimantei pe orizontală.
Acesta va fi mutat relativ înspre dreapta cu nnn zecimi de caractere,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,C,-nnn - mutarea capului imprimantei pe orizontală.
Acesta va fi mutat relativ înspre stânga cu nnn zecimi de caractere,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,C,nnnn - mutarea capului imprimantei pe orizontală.
Acesta va fi mutat la valoarea absolută nnnn zecimi de caractere,
faţă de marginea stângă.
Valoarea nnnn trebuie să fie reprezentată pe patru cifre.
Lăţimea unui caracter este dat de cpi curent. Dacă cpi curent
încă nu este definit,
se va folosi cpi implicit din program (de regulă 12cpi).
Esc,v,L,+nnn - mutarea capului imprimantei pe verticală.
Acesta va fi mutat relativ în jos cu nnn zecimi de caractere,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,L,-nnn - mutarea capului imprimantei pe verticală.
Acesta va fi mutat relativ în sus cu nnn zecimi de caractere,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,L,nnnn - mutarea capului imprimantei pe verticală.
Acesta va fi mutat absolut la nnnn zecimi de caractere,
faţă de marginea sus.
Valoarea nnnn trebuie să fie reprezentată pe patru cifre.
Înălţimea unui caracter este dat de lpi curent.
Dacă lpi curent încă nu este definit, se va folosi lpi
implicit din program (de regulă 6lpi).
Esc,v,W,+nnn - mutarea capului imprimantei pe orizontală.
Acesta va fi mutat relativ înspre dreapta cu nnn sutimi de inch,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,W,-nnn - mutarea capului imprimantei pe orizontală.
Acesta va fi mutat relativ înspre stânga cu nnn sutimi de inch,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,W,nnnn - mutarea capului imprimantei pe orizontală.
Acesta va fi mutat absolut la nnnn sutimi de inch,
faţă de marginea stângă.
Valoarea nnnn trebuie să fie reprezentată pe patru cifre.
Esc,v,H,+nnn - mutarea capului imprimantei pe verticală.
Acesta va fi mutat relativ în jos cu nnn sutimi de inch,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,H,-nnn - mutarea capului imprimantei pe verticală.
Acesta va fi mutat relativ în sus cu nnn sutimi de inch,
faţă de poziţia curentă.
Valoarea nnn trebuie să fie reprezentată pe trei cifre.
Esc,v,H,nnnn - mutarea capului imprimantei pe verticală.
Acesta va fi mutat absolut la nnnn sutimi de inch,
faţă de marginea sus.
Valoarea nnnn trebuie să fie reprezentată pe patru cifre.
Se pot face şi combinaţii între parametrii W, H, C, L.
De exemplu: Esc,v,W+200,L0120 înseamnă că cursorul va fi mutat
pe verticală în punctul <margine_sus> + 12 linii la LPI curent,
iar pe orizontală la punctul <poziţia_curenta> + 2.00 inch.
Esc,a,L,nnnn - numărul liniilor de text care se imprimă pe o pagină,
exprimat în zecimi de linii. Valoarea nnnn trebuie să fie reprezentată
cu patru cifre.
Textul se imprimă cu un lpi adecvat,
astfel încât să se imprime nnnn linii pe pagină.
Este utilizabil în modul WIS.
Esc,a,C,nnnn - numărul maxim al caracterelor de text care se imprimă pe un rând,
exprimat în zecimi de coloane. Valoarea nnnn trebuie să fie reprezentată
patru cifre.
Textul se imprimă cu un cpi adecvat, astfel încât să se imprime nnnn
caractere pe rând. Este utilizabil în modul WIS.
Esc,k,... - semnificaţia/traducerea caracterelor cu cod peste 127:
Esc,k,D,8,5,2- DOS codepage 852 (Central European)
Caracterele cu cod peste 127 se imprimă astfel:
- caracterele semigrafice cu linii simple şi duble,
- caracterele cu diacritice din limba română,
- caracterele diacritice din limba maghiară,
- în locul celorlalate caractere se imprimă spaţiu. |
Caractere semigrafice şi naţionale 2
Esc,k,D,4,3,7- DOS codepage 437 (USA) Caracterele cu cod peste 127 se imprimă astfel: * caracterele semigrafice cu linii simple, duble, simple-duble, * în locul celorlalate caractere se imprimă spaţiu. * Nu se imprimă caractere naţionale. Este varianta implicită. |
Caractere semigrafice
Esc,k,N - imprimă fără conversie, conform fontului curent.
Desigur cu oricare din variantele menţionate mai sus, caracterele sub 127,
adică cele englezeşti, cifrele, etc. se tipăresc la fel, în modul obişnuit. |
Esc,d,... - imprimă o figură geometrică cu linie de grosime Esc,s,L. |
- L,Cnnnn,Lnnnn - linie.
Punctul final este la distanţa relativă C, L zecimi de caractere faţă de punctul de start - L,Wnnnn,Hnnnn - linie.
Punctul final este la distanţa relativă W, H în 1/100 inch faţă de punctul de start - R,Cnnnn,Lnnnn,Rnnnn,B… - dreptunghi cu colţurile eventual rotunjite.
Colţul dreapta-jos este la distanţa relativă C,L zecimi de caractere faţă de
punctul de start. Rnnnn este raza în 1/100 inch a cercului cu care
va fi rotunjit dreptunghiul.
Setaţi 0000 pentru dreptunghi nerotunjit.
Interiorul dreptunghiului va fi colorat cu culoarea dată de parametrul B care poate avea următoarele valori:
- R roşu (Red)
- G verde (Green)
- B albastru (Blue)
- Y galben (Yellow)
- M maro (Maroon)
- N negru
- W alb (White)
- V Navy
- O Olive
- L Lime
- P Purple
- A Aqua
- F Fuchsia
- T transparent (fără culoare, valoare implicită
- 0..9 nuanţe de gri
R,Wnnnn,Hnnnn,Rnnnn,B... - dreptunghi cu colţurile eventual rotunjite.
Colţul dreapta-jos este la distanţa relativă W,H 1/100 inch
faţă de punctul de start.
Rnnnn şi B... au valorile descrise la secvenţa Esc,d,R,Cnnnn,Lnnnn,B...
E,Cnnnn,Lnnnn,B... - elipsă.
Colţul dreapta-jos este la distanţa relativă C,L zecimi de
caractere faţă de punctul de start.
Interiorul elipsei va fi colorat cu culoarea dată de parametrul B,
care poate avea una din valorile descrise la secvenţa Esc,d,R,Cnnnn,
Lnnnn,B...
E,Wnnnn,Hnnnn,B... - elipsă.
Colţul dreapta-jos este la distanţa relativă W,H 1/100 inch faţă de
punctul de start.
Interiorul elipei va fi colorat cu culoarea dată de parametrul B,
care poate avea una din valorile descrise la secvenţa
Esc,d,R,Cnnnn,Lnnnn,B...
Punctul de start este punctul în care se află capul imprimantei.
Grosimea liniei se poate defini cu secvenţa Esc,s,L...
Se pot combina parametrii C,L,W şi H. |
Exemple:
- Esc d L C0150 L0000
va imprima o linie orizontală de la poziţia curentă a capului imprimantei
cu o lungime de 15 caractere la CPI curent. - Esc d L C0200 L0040
punctul de start al liniei va fi poziţia capului imprimantei,
iar punctul final va fi:
Xfinal = Xstart + 20caractere (la CPI curent)
Yfinal = Ystart + 4caractere (la LPI curent) - Esc d R W0100 H0325 R0010
va imprima un dreptunghi rotunjit din poziţia curentă a capului imprimantei
cu o lăţime de 1.00 inch şi o înălţime de 3.25 inch.
Raza cercului cu care se rotunjesc colţurile dreptunghiului este de 0.1 inch. - Esc d E W0100 H0325
va imprima o elipsă în dreptunghiul situat între poziţia curentă a capului imprimantei
(acesta fiind colţul stânga-sus) cu lăţimea de 1.00 inch şi înălţimea de 3.25 inch. - Esc d E C0160 H0122
va imprima o elipsă în dreptunghiul situat între poziţia curentă a capului imprimantei
(acesta fiind colţul stânga-sus) cu lăţimea de 16 caractere şi înălţimea de 1.22 inch.
Esc,x,... - tipărire şablon pe document |
- R - Se imprimă câte un dreptunghi pe locul fiecărui caracter, cu densitatea
CPI şi LPI. Disponibil în metodele WIN şi WIS. - C - Se imprimă un şablon numerotat în linii şi coloane, cu densitatea CPI şi LPI.
Disponibil în metodele WIN şi WIS. - I - Se imprimă un şablon cu densitatea de 1 inch, atât pe verticală cât şi pe orizontală.
Disponibil numai în metoda WIN.
Esc,e,... - Tipărire cod de bare |
- T,xxx - Standardul codului de bare.
Parametrul este reprezentat pe trei caractere.
Dacă valoarea este mai mică de trei caractere,
atunci va fi completat cu spaţii la dreapta.
Valori acceptate în hTools:
E30 -> EAN13 E32 -> EAN13 cu cod suplimental 2 E35 -> EAN13 cu cod suplimental 5 E80 -> EAN8 3S -> Code39 fără cifră de control 3E -> Code39 Extended fără cifră de control 9 -> Code93 1A -> 128A 1B -> 128B 1C -> 128C
QR -> Cod QR
Dacă nu găsiți codul de bară dorit în listă, atunci puteți să folosiți hWTools care mai știe următoarele coduri de bare:
3SC -> Code39 cu cifră de control
3EC -> Code39 Extended cu cifră de control
E1A -> EAN128A E1B -> EAN128B E1C -> EAN128C K -> CodeBar UA0 -> UPC_A UA2 -> UPC_A cu cod suplimental 2 UA5 -> UPC_A cu cod suplimental 5 UE0 -> UPC_E 11 -> Code11 M0 -> MSI cu o cifra de control Modulo10 M00 -> MSI cu două cifre de control Modulo10 şi Modulo10 M10 -> MSI cu două cifre de control Modulo11 şi Modulo10 2S -> 2 of 5 Standard fără cifră de control 2SC -> 2 of 5 Standard cu cifră de control 2IC -> 2 of 5 Interleaved cu cifră de control 2I -> 2 of 5 Interleaved fără cifră de control
Exemplu: EsceT9 K… Este un cod de bare la standardul Code93. Observaţi că după şirul T9 se află două spaţii, pentru că tipul trebuie să fie reprezentat cu 3 caractere.
- Snnn - Grosimea unei singure bare.
Parametrul este exprimat în miimi de inch şi este opţional. Valoarea implicită: 015.
De ex: EsceS022 înseamnă că grosimea unei bare va fi de 0,022 inch. Hnnn - Înălţimea totală a codului de bare.
Parametrul este exprimat în sutimi de inch şi este opţional.
Valoarea implicită: 060.
Înălţimea totală este împărţită în trei regiuni:
- marginea sus, care este egală cu 10% din valoarea acestui parametru
- barele propriu-zise
- zona caracterelor lizibile, chiar dacă acestea nu vor fi imprimate
- Lnnn - Înălţimea totală a codului de bare.
Parametrul este exprimat în zecimi de linii la LPI curent şi este opţional.
Valoarea implicită: 0,6 inch (vezi parametrul H).
Detalii despre înălţimea totală la parametrul H. Rn - Lizibilitatea codului de bare.
Parametrul este opţional şi poate avea următoarele valori:
- 0 caracterele codului de bare nu sunt tipărite
- 1 caracterele codului de bare sunt tipărite (implicit)
On - Orientarea codului de bare.
Parametrul este opţional şi poate avea următoarele valori:
- 0 codul de bare este tipărit normal ( implicit )
- 1 codul de bare este tipărit cu o rotaţie de 90 grade
- 2 codul de bare este tipărit cu o rotaţie de 180 grade
- 3 codul de bare este tipărit cu o rotaţie de 270 grade
- B,… - culoare fundal, valori posibile:
R roşu (Red) G verde (Green) B albastru (Blue) Y galben (Yellow) M maro (Maroon) W alb (White) implicit 0..9 nuanţe de gri |
- Dn - dreptunghi în jurul codului de bare, valori posibile:
0 codul de bare nu are dreptunghi în jurul său 1 codul de bare are un dreptunghi în jurul său |
- K…,00 - Codul codului de bare.
Acest parametru este obligatoriu, se termină cu caracterul 00 sau următoarea secvenţă Esc şi trebuie să fie ultimul parametru. Defineşte un şir de caractere cu lungime variabilă, dar în unele cazuri, lungimea şi conţinutul trebuie să corespundă cu standardul dat. Caracterul de control (dacă este cazul) nu trebuie dat în nici un caz.
De exemplu, pentru un cod EAN13, lungimea şirului trebuie să fie strict de 12 cifre, pentru că acest standard conţine 12 cifre + o cifră de control. Cifra de control este calculată de program. În cazul standardelor care pot conţine şi cod suplimental 2 sau 5, codul suplimental se va adăuga după codul de bare, separat de un spaţiu. De exemplu codul EAN13 „123456789012“ cu codul suplimental 2 „12“ va fi definit astfel: EsceTE30K123456789012 1200.
În cazul altor standarde, de exemplu în codul 128B nu există restricţii la lungimea şirului, aceasta practic poate conţine oricâte caractere, chiar şi unele alfanumerice. Pentru descrierea standardelor, există numeroase articole şi descrieri, atât în manualele de specialitate, cât şi pe Internet, care pot fi consultate. În cazul în care acest şir de caractere este eronat, atunci în locul codului de bare va fi imprimat semnul „?“.
Exemple de erori:
EsceTE30K123456789012300.
Pentru acest cod EAN13 s-au definit 13 caractere şi nu 12.
Varianta corectă ar putea fi:
- EsceTE30K12345678901200
EsceTE80K594A25400
Pentru acest cod EAN8 s-au definit 7 cifre (dealtfel corect),
dar în cod se regăseşte şi un caracter alfanumeric (A), care nu este permis,
conform standardului EAN8. Un exemplu corect ar putea fi:
- EsceTE80K594625400
Culoarea codului de bare şi a codului lizibil poate fi şi el schimbat prin secvenţa Esc,c,… Pentru a tipări mai multe coduri de bare cu aceleaşi caracteristici (standard, culoare, grosimea unei bare, înălţime, lizibilitate, orientare) este suficient ca acestea să fie date o singură dată la primul cod de bare, pentru că aceste setări se vor aplica la toate celelalte coduri de bare, până la prima schimbare.
Codul de bare este imprimat în locul unde se află capul imprimantei. La poziţionare trebuie luat în considerare, că aceasta are câte o margine în stânga şi o margine dreapta, egală cu câte 15 grosimi de bară. Aceste margini sunt necesare, pentru ca ulterior să se poată citi corect de către un cititor. Deasemenea mai trebuie luat în considerare faptul, că şi în partea de sus a barelor propriu-zise există o margine, aceasta fiind documentată la descrierea parametrului H.
- Esc,z, Annn, …, 00 - Tipărire text sub un unghi dat.
Textul va fi tipărit începând din poziţia curentă sub unghiul dat de parametrul Annn care este specificat în grade (000..359) şi este reprezentat pe trei caractere. Textul se află după parametrul A şi se termină cu un caracter NUL. Setările fontului (culoare, mărime, bold ş.a.m.d.) cu care se va scrie sunt identice cu cele ale fontului de dinaintea acestei secvenţe. După imprimarea textului, imprimanta revine la scrierea care a fost setată înainte de această secvenţă (cu unghiul 0). Totodată, după terminarea secvenţei trebuie ţinut cont de faptul, că capul imprimantei va reveni în locul unde s-a aflat în momentul începerii execuţiei acestei secvenţe.
De exemplu, secvenţa:
- Esc,zA090Text sub 90 de grade,00
va afişa textul „Text sub 90 de grade“ (00 este terminatorul de şir)
scris din poziţia curentă înspre partea de sus a hârtiei.
După această operaţiune capul imprimantei va reveni
în poziţia primei litere (T) din text.
Tot ce va fi scris după această secvenţă,
va fi tipărit cu aceleaşi proprietăţi ale
setului de caractere ca şi înainte de secvenţă.
Este de preferat ca ordinea secvenţelelor să fie cea de mai sus. 00 reprezintă 00 în hexa şi înseamnă terminator de şir cu lungime variabilă.
Dacă anumite secvenţe lipsesc, atunci se consideră valoarea implicită a acestora. De exemplu: imprimantă implicită, fontul implicit, orientare implicită, caracterele aldine, cursive, subliniate se scriu simplu etc.
Începând cu hUTIL V 2.05 secvenţele Esc,W,I,N, Esc,W,I,S, şi Esc,d,… sunt interpretate de hUTIL. Tipul imprimantei (WIN sau WIS în cazul de faţă) se indică în câmpul impr. şi numele în câmpul Nume, caracterele Esc şi Esc,d din cele două secvenţe sunt gestionate automat de hUTIL. Aceste câmpuri sunt prezente pe fereastra de editare din Tipuri de imprimante.
Nume imprimantă este numele afişat în Settings/Printers sau este afişat şi la lansarea programului cu opţiunea "/INFO:<cale>". Se poate utiliza un nume mai scurt, cu condiţia ca identificarea exactă să fie posibilă. Ex: în loc de „HP Deskjet 640C Series Printer“ puteţi utiliza „HP“ dacă nu există alte imprimante a căror nume conţine „HP“. Dacă există mai multe imprimante HP:
- fie utilizaţi un nume mai lung:„HP DeskJet 640C“
- fie redenumiţi imprimanta (Click dreapta şi Rename).
Este de preferat ca aceeaşi imprimantă fizică să aibă acelaşi nume pe fiecare staţie şi chiar Share name să fie acelaşi.
Dacă utilizaţi doar o singură imprimantă nu specificaţi niciun nume de imprimantă (oricum este cea implicită).
La modul de imprimare WIS, caracterele sunt scalate pe verticală. La 17 şi 20 cpi se poate observa că înălţimea caracterelor este mai mare ca la metoda WIN. La metoda WIS setarea culorii, precum şi schimbarea densităţii de imprimare (lpi,cpi) şi a marginilor în interiorul textului, imprimarea de imagini sunt operaţii inefective.
De obicei, lăţimea caracterelor din fontul ales (chiar la TrueType) va fi puţin mai mică decât cea indicată ca densitate pe orizontală. De exemplu: o pagină A4 are lăţimea de 2400 pixeli la 8 inch. Atunci la 10 cpi lăţimea unui caracter ar trebui să fie 2400/8/10=30 pixeli. Dar după alegerea unei dimensiuni potrivite a fontului, găsim că lăţimea caracterelor este de 29 pixeli. Dacă la fonturile fixe utilizaţi pitch:F, pasul de imprimare va fi cel rezultat din dimensiunea pe orizontală (adică 30), iar dacă indicaţi pitch:D, pasul va fi lăţimea caracterului (adică 29) şi astfel lăţimea listei va fi puţin mai mică, decât cu pitch:F.
Dacă la 10 cpi pe o pagină A4/portret imprimanta poate tipări doar 78 caractere şi dorim să tipărim 80 de caractere, acesta se poate rezolva tipărind la 10.2 cpi. Astfel în Tipuri de imprimante vom înscrie:
10 cpi: Esc w 102 adică 80/78*10 = 10.26 12 cpi: Esc w 123 adică 80/78*12 = 12.31 17 cpi: Esc w 174 adică 80/78*17 = 17.44 20 cpi: Esc w 205 adică 80/78*20 = 20.52 |
Utilizaţi tipul de imprimantă: WIS-P-78 sau WIN-P-78
Dacă pe pagina A4/peisaj dorim să tipărim o listă destinată pentru pagină de listing (adică 136, 163, 226, 272 caractere pe 11„ şi 72, 96 de linii pe 8“):
10 cpi: Esc w 124 adică 136/11" = 12.36 ~ 12.4 12 cpi: Esc w 149 adică 163/11" = 14.81 ~ 14.9 17 cpi: Esc w 206 adică 226/11" = 20.54 ~ 20.6 20 cpi: Esc w 248 adică 272/11" = 24.72 ~ 24.8 06 lpi: Esc h 090 adică 72/ 8" = 9.00 08 lpi: Esc h 120 adică 96/ 8" = 12.00 |
Utilizaţi tipul de imprimantă: WIS-L-L1/1
În funcţie de antetul textului de tipărit, există următoarele variante de alegere a modului de tipărire şi a imprimantei:
Esc,W,I,N,Esc,p,...,00,... - Windows nescalat pe imprimantă specificată
Esc,W,I,N,... - Windows nescalat pe imprimantă implicită
Esc,W,I,S,Esc,p,...,00,... - Windows scalat pe imprimantă specificată
Esc,W,I,S,... - Windows scalat pe imprimantă implicită
Esc,D,O,S,Esc,d,...,00,... - imprimare DOS pe imprimantă specificată
Esc,D,O,S,... - imprimare DOS pe imprimantă LPT1:
... - nicio secvenţă specifică hTools,
imprimare DOS pe imprimantă LPT1: |
Dacă utilizaţi o singură imprimantă şi este de tip Windows, atunci această imprimantă este şi cea implicită. Deci nu specificaţi imprimanta, doar puneţi WIN-P ca implicit (UI) în Tipuri de imprimante.
Dacă utilizaţi mai multe imprimante, atunci în Tipuri de imprimante trebuie să aveţi 1-2 descrieri (una de portret şi eventual una de peisaj) pentru fiecare imprimantă astfel:
- La imprimanta care este implicită în Windows (Set as Default este bifat)
nu trebuie să specificaţi numele, dar aveţi grijă ca acesta să fie
implicită şi în Tipuri de imprimante. - La celelalte, dacă sunt imprimante DOS, cu hUTIL Tipuri de imprimante
/Identificare imprimanta în câmpul impr. înscrieţi DOS,
iar în câmpul Port/UNC protul la care este legată imprimanta
(ex.PRN, LPT1, LPT2) sau numele prin care poate fi accesat (ex. \\Server-C\Epson).
La salvarea ecranului şi la listare, conţinutul celor două câmpuri vor fi
înscrise în secvenţa de iniţializare a imprimantei
(ex. Esc,D,O,S,Esc,d,L,P,T,1,00 ….). - La celelalte, dacă sunt imprimante Windows, copiaţi tipurile generice
WIN-P şi WIN-L şi completaţi-le cu numele imprimantei. - Pentru a completa tip,nume/port imprimanta utilizaţi:
Modificare/Identificare imprimanta - Pentru adăugarea sau modificarea secvenţelor utilizaţi
Modificare/Secvente afisate in mod mixt sau
Modificare/Secvente afisate in mod hexa
Tabelul de conversie din descrierea tipurilor de imprimantă asigură conversia caracterelor ASCII/OEM (folosit în DOS) în ANSI (folosit în Windows). Codul ASCII şi ANSI diferă la caracterele care au codul mai mare de 127. Deci caracterele naţionale (caractere cu diacritice din limba română) şi caracterele semigrafice utilizate la capul de tabel trebuie convertite.
În codul ANSI nu sunt caractere semigrafice şi de aceea le convertim în semne ca |,-,+,*.
Tabelul de conversie nu este necesar, dacă fontul utilizat este de tip OEM sau se utilizează Esc,k,D,852 sau Esc,k,D,4,3,7.
Rezumatul secvenţelor esc
c) Varianta LINUX
Utilitarul hTools rulează pe stații Ubuntu lafel ca pe Windows.
7.2.2. Comenzi hTools
Comenzile hTools servesc la crearea fişierelor de comenzi, care au ca scop lansarea unor acţiuni Windows prin intermediul utilitarului.
Sintaxa generală a fişierului de comenzi creat pentru hTools este:
[RUN]
MODE= /MIN - lansare minimizată (task bar, sys tray) sau
/MAX - lansare în fereastră
DIRECTORY= indică catalogul curent la lansare
EXE= exe sau fişier cu o extensie care în Windows este ataşată
la un program (doc, xls, htm, txt)
PARAMETERS= daca exe, atunci parametri exe
SLEEP= reprezintă un număr de secunde de aşteptare după
lansarea comenzii. |
Singura comandă obligatorie dintr-o secvenţă [RUN] este EXE=. Ordinea comenzilor poate fi oarecare. Mai întâi se citesc toate comenzile din secvenţa [RUN], după care se lansează acţiunea descrisă de comenzile transmise.
Secvenţele de comenzi pot să contină şi linii de comentarii. Liniile de comentarii încep cu "//". De asemenea între liniile de comandă pot exista şi linii vide.
Un fişier de comandă poate să conţină un număr oarecare de segmente [RUN], fiecare reprezentând o acţiune de executat.
Segmentul [EXIT] termină rularea programului. [EXIT] poate fi precedat de un număr oarecare de segmente [RUN].
Exemple:
Lansare hOP:
[RUN]
// Lanseaza utilitarul hOP
MODE=/MIN
DIRECTORY=C:\HAMOR
EXE=hOP.exe
PARAMETERS=TMP\op.txt |
Lansare hMail:
[RUN]
// Lanseaza utilitarul hMail
MODE=/MIN
DIRECTORY=C:\HAMOR
EXE=hMail.exe
PARAMETERS=TMP\mail.txt |
Lansare htm:
[RUN]
// Lansarea unui fisier .htm
MODE=/MAX
DIRECTORY=C:\HAMOR\DOC
EXE=hsalar.htm
PARAMETERS= |
Lansare document word:
[RUN]
// Lansarea document word
MODE=/MAX
DIRECTORY=C:\HAMOR\TMP
EXE=abc.doc
PARAMETERS= |
Lansare document excel:
[RUN]
// Lansare document excel
MODE=/MAX
DIRECTORY=C:\HAMOR\TMP
EXE=abc.xls
PARAMETERS= |
Lansare txt:
[RUN]
// Lansare txt
MODE=/MAX
DIRECTORY=C:\HAMOR\TMP
EXE=abc.txt
PARAMETERS= |
Lansare PDF:
[RUN]
// Lansare PDF
MODE=/MAX
DIRECTORY=C:\HAMOR\TMP
EXE=abc.pdf
PARAMETERS= |
Lansare bat (ex. hRename.bat)
[RUN]
// Redenumire fisiere
MODE=/MAX
DIRECTORY=C:\HAMOR\TMP
EXE=C:\HAMOR\hRename.bat
PARAMETERS=abc.txt abc_123456.txt abc_123456.txt |
Lansare program DOS:
[RUN]
// Lansare hUTIL pentru baza de date U1_COP
DIRECTORY=C:\HAMOR
EXE=hUTIL.exe
PARAMETERS=U1_COP |
Lansare comanda si asteptare:
[RUN]
// Exemplu lansare fisier .PDF si asteplate 5 secunde
// pentru lansare Acrobat reader.
MODE=/MAX
DIRECTORY=C:\HAMOR\TMP
EXE=abc.pdf
PARAMETERS=
SLEEP=5 |
Ieşire prin comandă din hTools
// Iesire comandata din hTools
[EXIT] |
Lansare program DOS şi ieşire din utilitar:
// Lansarea unui program extern si
// iesire din utilitar
[RUN]
DIRECTORY=C:\HAMOR
EXE=hUTIL.exe
PARAMETERS=U1_COP
[EXIT] |
7.3. Moduri de utilizare
hTools este utilizat într-unul din modurile de mai jos:
- listarea imprimantelor şi a fonturilor, tipărirea paginilor de test pe una
dintre imprimantele disponibile în vederea citirii capabilităţii imprimantei, - mod linie de comandă pentru tipărirea a unui fişier pe imprimantă,
mod spooler local sau de reţea pentru:
- tipărirea pe imprimantă a unei liste lansată dintr-un program HAMOR Soft,
- executarea unei acţiuni în Windows, iniţiată de un program HAMOR Soft.
La apelarea fără parametru a utilitarului
> hTools |
utilitarul afişează o ferestră de ajutor pe care sunt înşirate modurile în care poate fi lansat:

În mod prestabilit hTools poate fi lansat într-o singură instanţă pe un calculator. Dacă din anumite motive se doreşte lansarea mai multor instanţe ale utilitarului pe acelaşi calculator (de exemplu se doreşte urmărirea mai multor cataloage spooler), acest lucru trebuie specificat explicit prin transmiterea parametrului /M în linia de comandă. După ce a fost lansat utilitarul în regim de „singură instanţă“, cu parametrul /M se admite lansarea unei instanţe noi. Este recomandabil ca cele doua instanţe lansate să fie direcţionate către cataloage spooler diferite.
7.3.1. Listarea imprimantelor și a fonturilor
Pentru a seta corect secvenţele Esc din Tipuri de imprimante este necesară crearea şi eventual imprimarea unor pagini de test. Lansaţi:
C:\HAMOR\> hTools /INFO:TMP |
Selectaţi dintre imprimantele vizibile (accesibile) imprimanta pentru care doriţi să creaţi fişiere conţinând pagina(pagini) de test:
Se vor crea fişierele:
C:\HAMOR\TMP\NrImprimanta.PF - pagină portret, fonturi fixe
NrImprimanta.PV - pagină portret, fonturi variabile
NrImprimanta.LF - pagină peisaj, fonturi fixe
NrImprimanta.LV - pagină peisaj, fonturi variabile
NrImprimanta.PR - pagină peisaj, riglă |
Listaţi fişierul/fişierele care prezintă interes cu >hTools nume_fisier
Analizaţi rezultatul şi îmbunătăţiţi descrierea din Tipuri de imprimante pentru imprimanta respectivă. La ce să fiţi atenţi ?
- margine sus: comparaţi marginea de sus a acestei liste cu marginea
unei liste DOS (de obicei este mai mare) şi vedeţi cât este diferenţa
în sutimi de inchi. Înscrieţi această diferenţă la Esc,m,T,nnn - margine stângă: comparaţi marginea stângă a acestei liste cu marginea
unei liste DOS şi vedeţi cât este diferenţa în sutimi de inch.
Înscrieţi această diferenţă la Esc,m,L,nnn - fonturi: alegeţi un font care se vede bine şi la 20 cpi
În general, fonturile la 20 cpi nu sunt suficient de înalte.
Dacă doriţi caractere mai înalte, utilizaţi modul de imprimare WIS.
7.3.2. Modul linie de comanda
În acest mod puteţi lansa programul pentru a imprima un singur fişier, sau pentru a executa comenzile dintr-un fişier de comandă.
> hTools <fisier> [/PDF_PRINTER:printer] [/PDF_PATH:cale] |
Pentru a declanşa imprimarea unei liste dedicate cu cheie rapidă procedaţi astfel:
- În hUTIL/Catalogul fişierelor modificaţi calea la „prn“ din LPT1 în
C:\HAMOR\TMP\hamor.lst - Creaţi un shortcut pentru imprimarea listei cu opţiunea ştergere şi cu cheia rapidă: Ctrl+Alt+P

Lansaţi listare pe IMPRIMANTA din programul HAMOR şi după ce se termină, tastaţi Ctrl+Alt+P pentru a declanşa imprimarea şi pe urmă ştergerea listei.
Lansaţi următoarea listare numai după ce imprimarea precedentei liste s-a terminat.
7.3.3. Crearea fișierelor pdf din programele HAMOR Soft
Din aplicaţiile HAMOR Soft se pot crea liste în format pdf prin intermediul imprimantelor (driverelor) PDF.
Imprimantele PDF practic sunt imprimante virtuale, care apar în lista imprimantelor Windows, iar la ieşire produc fişiere în format pdf. Exemple de imprimante PDF pentru Windows: PDFCreator, PDF995. Pachetele de instalare există pe Internet. Instalaţi imprimanta PDF aleasă. Documentaţia de instalare, licenţele de utilizare sunt specifice pentru fiecare pachet.
Instalare PDFCreator
Din programul HAMOR Soft listaţi pe imprimanta PDF în mod WIN sau WIS, iar la ieşire veţi obţine un fişier în format pdf.
7.3.4. Utilizarea ca spooler
a) Utilizare ca spooler local pentru tipărirea listelor
Creaţi catalogul pentru listele de tipărit: C:\HAMOR\SPOOL.
Direcţionaţi listarea pe IMPRIMANTA în loc de LPT1 în spooler. În hUTIL/Catalogul fişierelor modificaţi calea la „prn“ în SPOOL\hamor.lst sau c:\HAMOR\SPOOL\hamor.lst.
Lansaţi:
> hTools.exe /SPOOL:SPOOL/*.* |
După lansarea hTools, o icoană verde apare pe bara de taskuri în zona de notificare (în partea dreaptă-jos, zona system tray).
Cum funcţionează listarea în acest caz ?
Faza 1:
- listaţi pe IMPRIMANTA,
- programul HAMOR Soft creează lista în spoolerul aplicaţiei (c:\HAMOR\SPOOL),
Faza 2:
- fişierul creat este observat de hTools care rulează în background,
- fişierul este redenumit în xxxx.tmp,
-
după care se crează fişierul de listă în spoolerul imprimantei şi
fişierul xxxx.tmp este şters, - pe timpul prelucrării listei de hTools iconul de pe TaskBar devine roşu
Faza 3:
- driverul tipăreşte lista din spoolerul imprimantei pe imprimantă.
Observaţii:
-
hTools rulează în spate (background), iar programul HAMOR Soft în faţă
(foreground). Dacă observaţi că hTools rulează prea încet, lansaţi-l cu
prioritate ridicată:
> hTools.exe /S c:\HAMOR\SPOOL\*.* /P:HIGH
Prioritatea implicită este /P:NORMAL. - la lansarea listei alegeţi: Tip imprimanta, Tip hartie
- nu lansaţi o nouă listare decât după ce a început tipărirea precedentei
în momentul tipăririi din programul HAMOR Soft, utilitarul hTools trebuie
să fie deja lansat. \\Lansarea utilitarului poate fi făcuta în mai multe moduri:
-
la începutul lui hmenu.bat cu\\del c:\HAMOR\SPOOL\exit.cmd >NUL
start hTools.exe /S c:\HAMOR\SPOOL\*.*
În acest caz la ieşirea din hmenu.bat se poate comanda terminarea
utilitarului prin:
echo [EXIT] > c:\HAMOR\SPOOL\exit.cmd
Această comandă generează fişierul c:\HAMOR\SPOOL\exit.lst,
care conţine o singură linie: [EXIT]
Fişierul este depistat şi interpretat de utilitar, care astfel îşi termină rularea.
Nu este însă obligatorie forţarea ieşirii din hTools.
hTools poate să rămână lansat şi după ieşirea din hMENU.
Dacă se relanseză hMENU,
hTools va sesiza că există deja o instanţă lansată
a utilitarului şi nu se mai lansează încă o dată,
acest lucru fiind afişat pe o fereastră, care după 3 secunde dispare automat. - în StartUp menu
- puteţi crea un shortcut cu care să-l lansaţi manual de pe desktop
-
la începutul lui hmenu.bat cu\\del c:\HAMOR\SPOOL\exit.cmd >NUL
Programul hTools se poate termina şi manual făcând dublu click sau click dreapta pe icoana hTools şi alegând Iesire.
b) Utilizare ca spooler local şi tipărire alternativă pe mai multe imprimante
Acest mod permite tipărirea alternativă pe toate imprimantele accesibile din Windows.
Se lansează hUTIL V 2.05, Fisiere sistem/ Tipuri de imprimante şi pentru fiecare imprimantă pe care urmează să se tipărească se creează o descriere:
-
pentru imprimantele compatibile DOS, se creează o descriere cu secvenţe
de comandă specifică imprimantei (PCL, Esc/P etc.) -
pentru imprimantele Windows se creează o descriere cu secvenţe specifice
hTools, pe baza tipurilor de imprimante WIS şi WIN existente.
Folosiţi opţiunea Adaugare/ Copiere pentru crearea definiţiei pe baza unei imprimante existente, după care executaţi modificările necesare pentru imprimanta nou definită.
Noutatea în hUTIL V 2.05 este că la definirea imrimantei se poate specifica tipul imprimantei, care poate fi DOS, WIS, WIN. Dacă nu se completează tipul, implicit se consideră DOS.
Pentru imprimantele DOS se specifică Port/UNC.
Exemplu port: PRN, LPT1, LPT2,
Exemplu UNC: \\Server-C\Epson
Pentru imprimantele Windows se specifică numele imprimantei, aşa cum este disponibil în Windows.
Exemple:
PDFCreator \\Server-C\HP1320 |
hTools trebuie să fie lansat în regim spooler, conform celor prezentate în aliniatul precedent.
La tipărire se alege imprimanta dorită. Fişierul generat va conţine secvenţa pentru identificarea imprimantei şi hTools va putea tipării pe imprimanta corespunzătoare. La nivel de utilizare procedura va decurge total transparent, asigurându-se o interfaţă omogenă pentru toate imprimantele.
c) Utilizare ca spooler local pentru executarea unor acţiuni
Această modalitate de rulare se foloseşte pentru executrea unor acţiuni care nu ar putea fi făcute direct de programele HAMOR Soft. Astfel de acţiuni pot fi: deschiderea fişierelor de tip Word, Excel, PDF, HTM, etc., lansarea unor programe Windows, care prelucrează date generate de programele HAMOR Soft (ex. programe de transfer, de transmitere e-mail, etc.).
Pentru executarea unor programe cu hTools sunt necesare următoarele:
- Existenţa unui catalog spooler, de regula SPOOL
- Definirea catalogului spooler „scat“ către acest catalog
-
Definirea catalogului de programe „spro“ în care sunt programele care sunt
lansate prin hTools. Definirea acestui catalog este necesară atunci
când programele nu sunt în rădăcină sau în %path%. - Procedura de generare a comenzii hTools
- Lansarea automată a programului hTools în regim de spooler care de regulă este asigurat în hMENU.bat
În acest caz se generează un fişier de comandă în catalogul spooler, care este depistată, interpretată şi executată de utilitar. Modul de generare a fişierului de comandă este specific de la caz la caz. hTools trebuie lansat în mod spooler, asemănător ca la spooler local de tipărire.
Asemenea exemple sunt vizualizarea listelor şi transmiterea listelor prin e-mail:
PRINTB - Vizualizare lista
PRINTC - Transmite lst prin e-mail
PRINTD - Transmite pdf prin e-mail
Pentru implementare PRINTC - Transmite lst prin e-mail:
- definiţi „scat“, „spro“ şi copiaţi hMail.exe în catalogul „spro“
-
corectaţi adresa destinatarului:
Editaţi scriptul, căutaţi linia:
„ADDRESSTO=“…
şi înscrieţi adresa dorită, exemplu:
„ADDRESSTO=adresamea@domeniul.meu“+x_crlf+;
Pentru implementare PRINTD - Transmite pdf prin e-mail:
- definiţi „scat“, „spro“ şi copiaţi hMail.exe în catalogul „spro“
-
corectaţi adresa destinatarului:
Editaţi scriptul, căutaţi linia:
„ADDRESSTO=“…
şi înscrieţi adresa dorită, exemplu:
„ADDRESSTO=adresamea@domeniul.meu“+x_crlf+; -
pentru imprimanta PDF selectaţi opţiunea Auto Save,
setaţi ca numele fişierului pdf generat să fie numele fişierului original
cu extensia .PDF şi
fişierul să fie generat în catalogul PDF care se află la acelaşi
nivel cu catalogul DBF:
c:\HAMOR\DBF
PDF |
sau modificaţi în script localizarea fişierului pdf.
d) Utilizare ca spooler de reţea pentru tipărirea listelor
Diferenţa faţă de spoolerul local este că în acest caz hTools rulează pe serverul la care sunt legate imprimantele (nu local) şi tipăreşte listele provenite de la mai multe staţii (nu de la un singur utilizator).
Creaţi cataloagele:
F:\HAMOR\SPOOL_01 - listele staţiei 01
SPOOL_02 - listele staţiei 02
... |
Pe fiecare staţie faceţi o mapare:
L: <- F:\HAMOR\SPOOL_nn, unde nn este identificatorul staţiei |
În hUTIL/Catalogul fişierelor modificaţi catalogul pentru poziţia „prn“ în:
L:\hamor.lst |
Creaţi un fişier script pentru hTools cu numele:F:\HAMOR\hTools.scr şi având conţinutul:
F:\HAMOR\SPOOL_01\*.lst F:\HAMOR\SPOOL_02\*.lst ... |
Lansaţi hTools:
> hTools /S @F:\HAMOR\hTools.scr /P:HIGH |
În acest mod, chiar dacă baza de date este aceeaşi, listele de pe staţii diferite se vor crea în cataloage distincte. Utilitarul va căuta listele pe rând în fiecare catalog specificat în fişierul script.
e) Utilizare ca spooler de reţea pentru executarea unor acţiuni
În acest caz acţiunea este iniţiată pe un calculator (ex. pe staţia de lucru), iar executarea efectivă a acţiunii are loc pe un alt calculator (ex. pe server) sau invers.
Utilizarea ca spooler de reţea este util în cazul sistemelor hibride, cu mai multe tipuri de sisteme de operare (ex. server Linux, staţii de lucru Windows), sau în cazul sistemelor dispersate teritorial (ex.remote desktop) când acţiunea iniţiată pe un calculator trebuie să se execute pe un alt calculator care rulează Windows şi eventual se afla la distanţă.
Utilitarul trebuie să fie lansat pe calculatorul unde se doreşte să se execute efectiv acţiunea iniţiată. Catalogul spooler trebuie să fie accesibil de pe ambele calculatoare. Pentru accesarea catalogului spooler se pot folosii soluţii diverse:
- indicarea unei căi de acces absolute,
- maparea catalogului spooler,
- VPN (virtual private network).
Acţiunile sunt iniţiate în cadrul programelor HAMOR Soft. Acestea vor genera un fişier de comenzi pentru hTools şi depun în catalogul spooler. Utilitarul va depista existenţa fişierului de comandă şi execută acţiunea specificată.
Generarea fişierului de comandă hTools în programele HAMOR Soft poate fi în:
- scripturile comenzilor generale,
- formulele de validare din hMARFA,
- listele pe baza tipurilor de documente
Un exemplu de spooler de reţea pentru executarea unei acţiuni în Windows, este operaţia de Listare OPT/FVT din hSALAR, cazul când baza de date se află pe un server Linux, iar rularea utilitarului hOP.exe pentru listarea OPT/FVT trebuie să aibă loc pe o staţie de lucru cu Windows.
În acest caz se creează un catalog spooler, accesibil şi de pe staţia de lucru şi de pe server. Se lansează hTools pe staţia de lucru cu Windows instalat pentru catalogul spooler creat anterior. Pe serverul unde se rulează hSALAR trebuie să fie definit fişierul „scat“ şi trebuie să indice catalogul spooler.
Exemplu: Secvenţa de Editare/Listare din T6_OPT - Listare OPT/FVT
Dacă catalogul „scat“ există, la executarea opţiunii Listare OPT/FVT din hSALAR, se generează fişierul de comandă de tip hTools pentru lansarea utilitarului hOP pe staţia de lucru. hTools va depista fişierul de comandă depus şi va lansa hOP pe staţia de lucru.
O altă utilizare este lansarea de pe o staţie a unei proceduri de copie/salvare care se va executa pe server. În acest caz pe server trebuie să fie catalog spooler şi să fie lansat hTools.
Exemplu: Procedura de lansare copie
7.3.5. Utilizare în cazul remote desktop
Iniţierea unor acţiuni de la distanţă prin internet la modul de lucru prin remote desktop. Exemple:
- baza de date la distanţă şi listare pe calculatorul local,
- baza de date la distanţă şi casa de marcat pe calculatorul local,
- lansarea unui fişier Excel, Word pe calculatorul local, etc.
Se defineşte un catalog spooler şi se lansează hTools în mod spooler pe calculatorul local. Catalogul spooler poate fi pe calculatorul local sau server, important este că ambele calculatoare trebuie să aibe acces la acest catalog. Catalogul spooler în funcţie de sistemul folosit fie se poate mapa fie se poate accesa prin VPN (virtual private network).
Asiguraţi ca catalogul spooler să fie în locaţia unde se scrie în acest catalog, iar locaţia de la distanţă să citească şi eventual să şteargă fişierele. La accesul prin internet probabilitatea erorilor este mai mare şi este mai simplă observarea şi reluarea erorilor la citire decât la scriere. Dacă totuşi este necesară scriere la distanţă, includeţi în script verificarea fiecărei operaţii de scriere.
7.3.6. Folosierea unei case de marcat de la două calculatoare
Calculatoarele trebuie să fie legate în reţea. Casa de marcat este legată la una dintre cele două calculatoare. hTools se lansează în regim spooler pe calculatorul la care este legată casa de marcat. Catalogul spooler trebuie să fie accesibil de pe ambele calculatoare.
Se generează fişierul care conţine bonul şi se generează un fişier de comandă pentru hTools cu care utilitarul va putea lansa programul de transmisie spre casa de marcat.
7.4. Exploatarea programului hTools
7.4.1. Despre viteza de imprimare
Efectuaţi obligatoriu teste şi parametrizări de viteză la calculatoare cu performanţe reduse.
Imprimarea are trei faze:
- Listarea din programul HAMOR Soft într-un fişier text.
-
Execuţia programului hTools care citeşte fişierul text,
îl transformă şi îl depune în spoolerul imprimantei. - Tipărirea efectivă din spooler pe imprimantă.
Viteza poate să depindă şi de locul fişierului text de tipărit. Dacă fişierul este local, viteza este mai bună, decât dacă fişierul este undeva în reţea.
> hTools.exe /SPOOL:C:\HAMOR\SPOOL\*.* |
Dacă programul DOS ruleză în mod caracter (ecran), atunci hTools şi imprimarea se execută mai încet decât dacă programul DOS ruleză în mod grafic (în mod fereastră). Dacă rulaţi programul DOS în mod fereastră, dimensionaţi fereastra în mod convenabil:
Properties Font Alegeţi Lucida Console sau Raster Fonts Alegeţi Size convenabil Save properties for future windows ... |
7.4.2. Erori care pot apare
Cannot open resource "<cale spre imagine>" - calea imaginii este greșit
Imprimanta absenta "<Numele imprimantei>" - Numele imprimantei este greșit
