Imprimați direct pe imprimantă

O interogare care apare foarte mult în diferitele forumuri Javascript întreabă cum să trimiteți pagina direct la imprimantă fără să afișați mai întâi caseta de dialog de tipărire..

În loc să vă spunem asta nu se poate face poate că o explicație a motivului pentru care o astfel de opțiune nu este posibilă ar fi mai utilă.

Ce casetă de dialog de tipărire se afișează atunci când cineva apasă butonul de imprimare din browserul său sau Javascript window.print () metoda rulează depinde de sistemul de operare și ce imprimante sunt instalate pe computer.

Întrucât majoritatea oamenilor rulează Windows pe computerul lor, să descriem mai întâi cum funcționează configurația de imprimare pe sistemul de operare. Sistemele de operare * nix și Mac diferă ușor în detalii, dar în general sunt similare.

Dialog de imprimare

În caseta de dialog pentru imprimare există două părți în Windows. Primul dintre acestea face parte din API-ul Windows (Interfață de programare a aplicațiilor). API-ul este un set de bucăți de cod comune care sunt păstrate în diferite fișiere DLL (Dynamic Link Library) care fac parte din sistemul de operare Windows. Orice program Windows poate (și ar trebui) să apeleze API-ul pentru a îndeplini funcții comune, cum ar fi afișarea casetei Dialog de imprimare, astfel încât să funcționeze la fel în toate programele și să nu aibă opțiuni diferite în locuri diferite așa cum a făcut opțiunea de imprimare înapoi în DOS zile de program. API-ul Print Dialog oferă, de asemenea, o interfață comună care permite accesul tuturor programelor la același set de drivere de imprimantă, mai degrabă decât producătorii de imprimante care trebuie să creeze software de driver pentru imprimanta lor pentru fiecare program individual care a dorit să îl folosească..

Driverele de imprimantă sunt cealaltă jumătate a dialogului de imprimare. Există mai multe limbi diferite pe care diferite imprimante înțeleg că le utilizează pentru a controla modul de imprimare a paginii (de ex. PCL5 și Postscript). Driverul de imprimantă indică API-ul de imprimare cu privire la modul de traducere a formatului standard de imprimare intern, pe care sistemul de operare îl înțelege în limbajul de marcare personalizat pe care îl înțelege imprimanta specifică. De asemenea, ajustează opțiunile afișate dialogul Print pentru a reflecta opțiunile oferite de imprimanta specifică.

Funcționarea imprimantei

Este posibil ca un computer individual să nu aibă instalate imprimante, poate avea o imprimantă locală, poate avea acces la mai multe imprimante dintr-o rețea, poate fi chiar configurat pentru a imprima în PDF sau fișier de imprimare preformatat. În cazul în care sunt definite mai multe „imprimante”, una dintre ele este desemnată imprimanta implicită, ceea ce înseamnă că aceasta este cea care afișează detaliile sale în fereastra de dialog de tipărire când apare prima dată.

Sistemul de operare ține evidența imprimantei implicite și identifică imprimanta la diferitele programe de pe computer. Acest lucru permite programelor să treacă un parametru suplimentar către API-ul de imprimare, spunându-i să imprime direct la imprimanta implicită, fără a afișa mai întâi dialogul de imprimare. Multe programe au două opțiuni de imprimare diferite - o intrare de meniu care afișează dialogul de imprimare și un buton de imprimare rapidă a barei de instrumente care trimite direct la imprimanta implicită.

Când aveți o pagină web pe internet pe care vizitatorii dvs. o să le tipărească, nu aveți alături informații despre ce imprimantă au disponibile. Majoritatea imprimantelor din întreaga lume sunt configurate pentru a tipări pe hârtie A4, dar nu puteți garanta că imprimanta este configurată la acea valoare implicită. Într-o țară nord-americană se folosește un format de hârtie care nu este standard, mai scurt și mai larg decât A4. Majoritatea imprimantelor sunt configurate pentru a tipări în modul portret (unde direcția mai restrânsă este lățimea, dar unele pot fi setate pe peisajul unde dimensiunea mai lungă este lățimea. Desigur, fiecare imprimantă are, de asemenea, diferite margini implicite în partea de sus. , partea de jos și laturile paginii chiar înainte ca proprietarii să intre și să modifice toate setările pentru a obține imprimanta așa cum vor.

Având în vedere toți acești factori, nu aveți de unde să spuneți dacă imprimanta implicită cu configurația sa implicită va imprima pagina dvs. web pe A3 cu margini neglijabile sau pe A5 cu margini imense (lăsând puțin mai mult decât o marcă poștală în zona de dimensiuni. a paginii). Puteți presupune probabil că majoritatea vor avea o zonă de tipărire pe pagina de aproximativ 16cm x 25cm (plus sau minus 80%).

Necesarul de imprimare

Deoarece imprimantele variază atât de mult între potențialii dvs. vizitatori (cineva a menționat imprimante cu laser, imprimante cu jet de cerneală, culoare sau doar alb-negru, calitate foto, mod draft și multe altele) nu aveți de unde să spuneți ce vor trebui să facă pentru a imprima afară pagina ta într-un format rezonabil. poate au o imprimantă separată sau un al doilea driver pentru aceeași imprimantă care furnizează setări total diferite special pentru paginile web.

În continuare, vine problema ce pot dori să imprime. Își doresc întreaga pagină sau au selectat doar o parte a paginii pe care vor să o tipărească? Dacă site-ul dvs. folosește cadre doresc să imprime toate cadrele așa cum apar în pagină, doresc să imprime fiecare cadru separat sau doresc doar să imprime un cadru specific?

Nevoia de a răspunde la toate aceste întrebări face să fie esențial ca dialogul de tipărire să apară ori de câte ori doresc să imprime ceva, astfel încât să se asigure că setările sunt corecte înainte de a apăsa pe butonul de imprimare. Majoritatea browserelor oferă, de asemenea, posibilitatea de a adăuga un buton de „imprimare rapidă” la una dintre barele de instrumente ale browserului, pentru a permite imprimarea paginii pe imprimanta implicită folosind setările implicite ale browserului în ceea ce privește ce trebuie să fie tipărit și cum.

Javascript

Navigatoarele nu pun la dispoziție Javascript această multitudine de setări de browser și imprimantă. Javascript este preocupat în principal de modificarea paginii web curente și astfel browserele web oferă informații minime despre browserul propriu-zis și alături de nicio informație despre sistemul de operare disponibil pentru Javascript, deoarece Javascript nu trebuie să știe acele lucruri pentru a efectua acele lucruri pe care Javascript este destinat să facă.

Securitatea de bază spune că dacă ceva de genul Javascript nu trebuie să știe despre configurația sistemului de operare și a browserului pentru a putea manipula pagina web, atunci nu ar trebui să i se furnizeze informațiile respective. Nu este ca și cum Javascript ar trebui să poată schimba setările imprimantei la valorile corespunzătoare pentru imprimarea paginii curente, deoarece acest lucru nu este pentru Javascript - aceasta este sarcina dialogului de imprimare. Prin urmare, browserele pun la dispoziție doar Javascript acele lucruri pe care Javascript trebuie să le cunoască, cum ar fi dimensiunea ecranului, spațiul disponibil din fereastra browserului pentru a afișa pagina și alte lucruri similare care ajută Javascript să rezolve modul în care pagina este expusă. Pagina web actuală este una și unică problemă de Javascript.

Intraneturile

Intranetele sunt desigur o chestiune cu totul diferită. Cu un intranet, știți că toată lumea care accesează pagina utilizează un browser specific (de obicei o versiune recentă a Internet Explorer) și are o rezoluție specifică a ecranului și acces la anumite imprimante. Aceasta înseamnă că are sens pe o intranet să poți imprima direct pe imprimantă fără a afișa dialogul de tipărire, deoarece persoana care scrie pagina web știe pe ce imprimantă va fi imprimată.

Prin urmare, Internet Explorer înlocuitor pentru Javascript (numit JScript) are ceva mai multe informații despre browser și sistemul de operare pe care Javascript îl face în sine. Calculatoarele individuale din rețeaua care rulează intranetul pot fi configurate pentru a permite JScript window.print () comanda scrie direct la imprimantă fără a afișa dialogul de imprimare. Această configurație ar trebui să fie configurată individual pe fiecare computer client și depășește cu mult un obiect al articolului Javascript.

Când vine vorba de pagini web de pe internet, nu există nicio modalitate prin care poți configura o comandă Javascript pentru a trimite direct la imprimanta implicită. Dacă vizitatorii dvs. doresc să facă asta, va trebui să-și configureze propriul buton de „imprimare rapidă” pe bara de instrumente a browserului.