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 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ă când cineva apasă pe buton de imprimare în browserul lor sau în 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 coduri comune de cod care sunt păstrate în diferite DLL (
Biblioteca dinamică de legături) fișiere care fac parte din Windows sistem de operare. Orice program Windows poate (și ar trebui) să apeleze API-ul pentru a îndeplini funcții comune, cum ar fi afișarea casetei Print Dialog, astfel încât să o facă lucrați la fel în toate programele și nu aveți opțiuni diferite în locuri diferite așa cum a făcut opțiunea de imprimare înapoi în programul DOS zile. API-ul Print Dialog oferă, de asemenea, o interfață comună care permite mai degrabă accesul tuturor programelor la același set de drivere de imprimantă 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ă aceasta.Driverele de imprimantă sunt cealaltă jumătate a dialogului de imprimare. Există mai multe limbi diferite pe care diferite imprimante înțeleg că le folosesc 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ă că sistemul de operare înțelege în limbajul de marcare personalizat că imprimanta specifică înțelege. 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, este posibil să aibă o imprimantă locală acces la mai multe imprimante dintr-o rețea, poate fi chiar configurat să imprime în format PDF sau tipărire preformatată fişier. Î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, margini implicite diferite în partea de sus, jos și latură a pagina chiar înainte ca proprietarii să intre și să modifice toate setările pentru a obține imprimanta în modul în care vrei.
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 pe web pagina pe A3 cu margini neglijabile sau pe A5 cu margini uriașe (lăsând puțin mai mult decât o marcă poștală cu dimensiunea zonei din mijlocul pagină). 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 laser, imprimante cu jet de cerneală, culoare sau alb-negru numai, calitatea fotografiei, modul de proiectare și multe altele) nu aveți de unde să spuneți ce vor trebui să facă pentru a imprima pagina dvs. într-un mod rezonabil format. 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 vor să imprime toate cadrele așa cum apar în pagină, vor să imprime fiecare cadru separat sau vor doar să imprime un cadru specific?
Necesitatea de a răspunde la toate aceste întrebări face esențial ca dialogul de tipărire să apară ori de câte ori apar doresc să imprime ceva, astfel încât să se asigure că setările sunt corecte înainte de a atinge tipărirea buton. 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 pagina care va fi tipărită la imprimanta implicită folosind setările implicite ale browserului în ceea ce privește ce urmează 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 primul rând de modificarea curentului pagină web astfel încât browserele web să ofere informații minime despre browserul în sine și alături de nicio informație despre sistemul de operare disponibil Javascript deoarece Javascript nu trebuie să știe acele lucruri pentru a efectua acele lucruri pe care Javascript este menit să le facă.
Securitatea de bază spune că, dacă ceva ca Javascript nu trebuie să știe despre sistemul de operare și configurația browserului pentru a putea manipula pagina web, atunci nu trebuie să fie prevăzută cu asta informație. Nu este ca și cum Javascript ar trebui să poată schimba setările imprimantei la valorile corespunzătoare pentru tipărirea paginii curente pentru că nu este pentru ce este Javascript - aceasta este sarcina tipăririi dialog. Prin urmare, browserele pun la dispoziția Javascript doar acele lucruri pe care Javascript trebuie să le cunoască, cum ar fi dimensiunea ecranului, spațiu disponibil în fereastra browserului pentru a afișa pagina și 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, știi că toată lumea accesarea paginii 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 intranet să poți imprima direct pe imprimantă fără afișarea dialogului de tipărire deoarece persoana care scrie pagina web știe ce imprimantă va fi tipărit pe.
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 tipărire. 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ă absolut nicio modalitate prin care poți configura o Comanda 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.